一个数据库的Schema模型设计影响它的可用性和性能,因此应该对设计一个符合用户需求的数据库及时地做一个初始的投资和研究。这里不是提供一个详细的数据库设计指南,只是说一说设计数据库模型应该考虑的一些观点。
- 一个良好设计的Schema模型应该做些什么考虑?
- 什么是事实表和维度表?
数据库的Schema设计很重要的是主键的设计:
- 如何选择Primary Key: Natural or Surrogate?Naural由真实世界存在的属性而组成,含有业务意义;Surrogate没有业务意义。
- 选择什么数据类型的主键?
- 是否显示主键给用户?
- 用什么策略生成主键?
- 做错了选择怎么办?
那么到底应该怎么设计主键呢?
Oracle 10G有Enterprise Manager Console可以方便地管理Oracle,但是在无法访问Enterprise Manager Console或者在Oracle10G以前的版本怎么办呢?
如何进行Java EE程序调试,国内普遍的做法好像是,修改代码——>编译——>部署——>重启应用服务器——>手工访问程序验证结果。
但是我总结一下其实有好几种办法提高和改善程序调试的效率:
- 基于单元测试开发,单元测试可以脱离应用服务器环境来运行
- 基于JPDA使用Eclipse等IDE的Debug功能进行远程调试
- 使用支持热部署的应用开发框架,如Tapestry5等;或者使用JavaRebel JVM插件技术来实时刷新代码修改
- 学习开发技术和API的基础知识,尽量减少调试次数。
我个人觉得终结的解决方法还是测试驱动开发。
- Lucene Payload 的研究与应用
- EJB 3: From legacy technology to secret weapon - JavaWorld
- Using a seam-gen project in JBoss Tools
- Using a seam-gen project in JBoss Tools
- Aptana
- 基于Eclipse的开发工具,支持Ajax,RIA
- 驯服 Tiger: 并发集合
- jqgrid - Google Code
- jqgrid - jquery grid
- java.util.concurrent系列文章--(1)JDK1.5 并发集合_生活,奋斗,快乐!
- Web爬行工具HBase-Writer 0.18.1发布 , hbase,heritrix2,writer,hadoop,工具,hdfs,发布,爬行,表,存储, , - CSDN 新闻
- google-collections - Google Code
- j2eedevtools - Google Code - HibernateTemplate
- 实现saveOrUpdate方法将为空Null的字段不做Update,避免误将非空的字段更新Update为Null. 通过SessionFactory.getClassMetadata方法获得ClassMetadata ,取Entity的主键标识属性
- WAP建站不容易!WAP(wml)开发FAQ | wap建站服务网
- WML Tutorial: Learn How to Submit Form Data to the Server in WML
- 一个WML文档例子
- WML Reference
- WML参考文档
- [jvm-l] Calling non-Java languages from JavaScript
- 通过web页面上的 JavaScript调用页面上任何的applets
- 脚本调试工具 Microsoft Script Debugger - 河之堤 - CSDNBlog
- Bug ID: 6358034 NPE in Win32GraphicsEnvironment.displayChanged when switching display mode
- awt-eventqueue-0 win32graphicsenvironment
- Seam Tutorial/Tips : Weblog
- Raible Designs | RESTful Web Applications with Subbu Allamaraju
- 剖析CTI软件产品(下) - 客户世界 - 呼叫中心 | 客户管理 | 数据营销 | 服务外包 - [http://www.ccmw.net]
- 剖析CTI软件产品(上) - 客户世界 - 呼叫中心 | 客户管理 | 数据营销 | 服务外包 - [http://www.ccmw.net]
- JavaPassion 中文站 - 激情无限
- 国际:什么是程序员的优秀品质? , 开发者,程序员,实践,代码,测试者,技术,编程,方法,知识,语言, , - CSDN 新闻
- 探秘Google数据中心:运行服务器远超20万台 - 百度通站长资讯网 通天下站长
- InfoQ: 辩论:Maven是正确的构建工具吗?
- 整理了一天的JAVA面试题(先保存下) - admin - JavaEye技术网站
- Flexigrid for jQuery : Web 2.0 Javascript Data Grid
- Java IDL: Interoperable Naming Service (INS) Example - JDK 5 Documentation v1.4.1, Java 2 SDK 英文文档 - 在线文档 - JAVA 编程资料牛鼻站
- 基于JAVA实现CORBA应用--oofrank的博客 oo java .Net
- Eclipse中corba环境的建立 - 企业应用 - Java - JavaEye论坛
- 应用CIM模型进行系统集成 - 输配电设备网
- ConcurrentModificationException | Zeal Blog - 泽欧里的网络日志
- java.util.ConcurrentModificationException异常
- ConcurrentModificationException (Java 2 Platform SE 5.0)
- java.util.ConcurrentModificationException异常
- InfoQ: 讨论:衡量程序员的工作效率
- 用J2ME收发短信 -- Wireless Messaging API - 中国JAVA手机网
- JBoss - Jetty - Codehaus
- Jetty JBoss Integration.
- InfoQ: 缓存系统MemCached的Java客户端优化历程
- 50个Windows软件的免费替代品 | 精华之家|HIGHTHOUSE
- Windows系统必备的30个免费开源软件 (转载) - Free Programming - 博客园
在Java API里已经解释了这个ConcurrentModificationException异常的来历:
当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。
例如,某个线程在 Collection 上进行迭代时,通常不允许另一个线程修改该 Collection。通常在这些情况下,迭代的结果是不明确的。如果检测到这种行为,一些迭代器实现(包括 JRE 提供的所有通用 collection 实现)可能选择抛出此异常。执行该操作的迭代器称为快速失败 迭代器,因为迭代器很快就完全失败,而不会冒着在将来某个时间任意发生不确定行为的风险。
注意,此异常不会始终指出对象已经由不同 线程并发修改。如果单线程发出违反对象协定的方法调用序列,则该对象可能抛出此异常。例如,如果线程使用快速失败迭代器在 collection 上迭代时直接修改该 collection,则迭代器将抛出此异常。
注意,迭代器的fail-fast快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败操作会尽最大努力抛出 ConcurrentModificationException。因此,为提高此类操作的正确性而编写一个依赖于此异常的程序是错误的做法,正确做法是:ConcurrentModificationException 应该仅用于检测 bug。
Iterator 是工作在一个独立的线程中,并且拥有一个 mutex 锁。 Iterator 被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,所以当索引指针往后移动的时候就找不到要迭 代的对象,所以按照 fail-fast 原则 Iterator 会马上抛出 java.util.ConcurrentModificationException 异常。
所以 Iterator 在工作的时候是不允许被迭代的对象被改变的。但你可以使用 Iterator 本身的方法 remove() 来删除对象, Iterator.remove() 方法会在删除当前迭代对象的同时维护索引的一致性。
有意思的是如果你的 Collection / Map 对象实际只有一个元素的时候, ConcurrentModificationException 异常并不会被抛出。这也就是为什么在 javadoc 里面指出: it would be wrong to write a program that depended on this exception for its correctness: ConcurrentModificationException should be used only to detect bugs.
下面的代码没有问题:
- import java.util.*;
- public class TryIteratorRemove {
- public static void main(String [] args){
- Collection<String> myCollection = new ArrayList<String>(10);
- myCollection.add("123");
- myCollection.add("456");
- myCollection.add("789");
- int i=0;
- for(Iterator it = myCollection.iterator();it.hasNext();) {
- String myObject = (String)it.next();
- System.out.println(myObject);
- i++;
- if(i==1){
- //myCollection.remove(myObject); //这行代码有问题,会抛出ConcurrentModificationException
- it.remove();
- }
- }
- System.out.println("After remove,the size of myCollection is: " +
- myCollection.size()+" \n and its content is: ");
- for(String s : myCollection){
- System.out.println(s);
- }
- }
- }
- InfoQ: Grails做足功夫 全力迈向1.0版
- 让Thunderbird成为GTD工具 at live@haliluya
- Solidot | 用Gmail做GTD管理
- 100_Linux_Tips_And_Tricks
- 开发技术以及IT书籍
- Javascript Graphical / Virtual Keyboard Interface
- JavaScript Virtual Keyboard (Study)
- Abhi On Java: Using Quartz Scheduler in a cluster
- Tools for Getting Things Done - Getting Things Done Wiki
- Tools for GTD (Getting Things Done)
- 七大搜索引擎博客搜索的博客提交入口网址 - 菠菜博
- Web 领域25个最有影响力的人(上) , huffington,bezos,创办,创业,领域,baker,ballmer,投资,ceo,微软, , - CSDN 新闻
- InfoQ: 好的测试应该具备哪些特质?
- hipergate :. Free Open Source CRM Groupware and Intranet Software
- RUP与Scrum的对话
- B-Trees
- jdbm开源文件数据库在全文检索中的使用 - gdsean的专栏 - CSDNBlog
- API: treeview YAHOO.widget.TextNode (YUI Library)
- yui tree组件 API
- 2008年(第五届)《世界品牌500强》排行榜
- 2008年《世界品牌500强》排行榜 名单
- The ultimate jQuery Plugin List | Kollermedia.at
- jquery插件
- Aptana Studio | Aptana
虽然在Quartz上有配置Quartz集群Clustering ,但是在Spring中使用Quartz任务调度并支持集群系统却有些问题,下面介绍解决办法:
- FORMATTING DECIMAL NUMBERS
- 格式化数字,科学计数法
- Internet Explorer - User-Agent test and override registry scripts
- 存储空间不足 无法完成此操作:
- reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform" /f
- reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Post Platform" /f
- reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform" /f
- reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Post Platform" /f
- Open Source Native XML Database
- The 7 Stages of Scaling Web Apps | High Scalability
- 【原】Java Reflection 之 Method - pengpenglin - BlogJava
- Java反射 Reflection
- IBM WebSphere Developer Technical Journal: The top Java EE best practices
- IBM WebSphere Developer Technical Journal: The top 10 (more or less) J2EE best practices
- Top 10 Concepts That Every Software Engineer Should Know - ReadWriteWeb
- 南方网-广州市人口准入基本条件(二)
- 南方网-广州市人口准入基本条件(一)
- 1 Minute HOWTO Guides
- ubuntu,fedora,centos,freebsd如何升级安装软件包,设置操作系统语言
- Clean up your Web pages with HTML TIDY
- weeker.org » Blog Archive » Ubuntu 源列表
- squid3.0反向代理 apache+squid_蒜头网
- lighttpd+tomcat+squid3.0_蒜头网
- 高并发高流量网站架构 - 技术门户 | ITPUB |
- 使用 Nginx 提升网站访问速度
- Nginx是一个web 服务器
- Java performance tuning tips
- Java性能调优
- Ana's Lair: crt1.o: No such file: No such file or directory
- 解决下面的问题: C compiler cannot create executables /usr/bin/ld: crt1.o: No such file: No such file or directory
- Linux下./configure错误详解-王琬的BLOG-搜狐博客
- 解决下面的问题: C compiler cannot create executables /usr/bin/ld: crt1.o: No such file: No such file or directory
- 每个项目最重要的十件事 - 软件 - JavaEye新闻
- MG4J: Managing Gigabytes for Java™
- lucene的第二选择,一个搜索引擎
- memcached-tool
- memcached monitor 监视
- 十个最好的Java性能故障排除工具 - Java - JavaEye新闻
- 敏捷质疑: 持续集成 - 切尔斯基 - BlogJava
- SpringSource Team Blog » Dynamic DataSource Routing
- Spring+Hibernate多数据源解决方案
- Horizontal Database Partitioning with Spring and Hibernate - ... - JavaEye技术网站
- Spring+Hibernate框架下,多数据源Datasource,多sessionFactory的水平数据库分区分割解决方案
- spring之多SessionFactory - Spring - Java - JavaEye论坛
- Spring+Hibernate框架下,多数据源Datasource,多sessionFactory的水平数据库分区分割解决方案
- Oracle10g学习笔记 | 专注.NET 、JAVA技术
- yanfs: yanfs
- 文件系统,远程访问驱动器
- 站长日志 - 面向网站站长的专业网络开发、网站运营博客
- css 参考
质检总局建议停止食用以前购买的无法确定是否含三聚氰胺的奶粉
2008年9月21日,质检总局官方网站发布的关于乳制品安全相关问题答复新闻中,第三点《关于查询消费者已购买的婴儿配方奶粉是否合格的问题》指出
“打消家长顾虑的最好办法,是停止食用以前购买的奶粉,孩子的健康毕竟比几袋奶粉贵重多了”。