总结Hibernate经验_JSP教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
推荐:解读java的命名习惯java的命名习惯: 包(package)名一律小写; 变量名和方法名:第一单词小写,后面的单词首字母大写; 类名,接口名:每一个单词的首字母大写; 常量名:所有字母大写.
0、双向关联中最好是设置一端inverse=true,一端inverse=false。一般inverse=false会放在多的一端,即由多的一方来维护关系,并在多的一方设置cascade="save-update",在单的一方设置cascade="all" 。1、使用Hibernate的id generator来生成无业务意义的主键,不使用有业务含义的字段做主键,不使用assigned。
2、使用对象类型(String/Integer/Long/...)来做主键,而不使用基础类型(int/long/...)做主键。
3、在用Integer做主键时,需设置unsaved-value="0" 而不是null或none,因为在程序中它被默认设置成了0.
4、不使用composite-id来处理复合主键的情况,而使用UserType来处理该种情况。 Gavin King并不提倡使用composite-id,如果你不是基于已有的数据库编程,而是重新设计数据库结构,那么建议使用UserType。你可以自定义一个UserType,包括User和Goods,并且在hbm中定义该UserType为unique的,同样可以达到目的。而这种方式的好处则是不需要你来手工维护id,而由Hibernate自动维护。UserType的使用方法参考手册5.2.4节和Hibernate自带的示例中的net.sf.hibernate.test.DoubleStringType。
5、在使用HQL的地方,结果一般不会受XML中设置的影响。
6、fetch参数为select方式时先查询返回要查询的主体对象(列表),再根据关联外键id,每一个对象发一个select查询,获取关联的对象,形成n+1次查询;
而join方式,主体对象和关联对象用一句外键关联的sql同时查询出来,不会形成多次查询。
如果你的关联对象是延迟加载的,它当然不会去查询关联对象。
另外,在hql查询中配置文件中设置的join方式是不起作用的
7、使用full join fetch 与 right join fetch是没有意义的。
8、添加数据、删除、更新操作时,将同时更新二级缓存。这就是Hibernate做批处理的时候效率不高的原因,原来是要维护二级缓存消耗大量时间的缘故
9、unsaved-value 属性在Hibernate3中几乎不再需要。
10、单向关联更加难于查询。在大型应用中,几乎所有的关联必须在查询中可以双向导航。
11、在两层结构中,把Hibernate Session从JDBC连接中脱离开,下次需要用的时候再连接上。绝不要把一个Session用在多个应用程序事务(Application Transaction)中,否则你的数据可能会过期失效。
12、在系统中对性能要求很严格的一些部分,某些操作也许直接使用JDBC会更好。但是请先确认这的确是一个瓶颈,并且不要想当然认为JDBC一定会更快。如果确实需要直接使用JDBC,那么最好打开一个 Hibernate Session 然后从 Session获得connection,按照这种办法你仍然可以使用同样的transaction策略和底层的connection provider。
13、当异常发生的时候,必须要回滚 Transaction ,关闭Session。
14、多对多连接用得好的例子实际上相当少见。大多数时候你在“连接表”中需要保存额外的信息。这种情况下,用两个指向中介类的一对多的连接比较好。
15、绝大多数的查询并不能从查询缓存中受益,所以Hibernate默认是不进行查询缓存的。如若需要进行缓存,请调用 Query.setCacheable(true)方法。这个调用会让查询在执行过程中时先从缓存中查找结果, 并将自己的结果集放到缓存中去。
分享:解析java的==和equals区别在java中数据类型分为两大类:一类是基本数据类型,另一类是引用数据类型.其中基本数据类型又分为8种分别是:四种整数类型(byte、short、int、long),两种浮点数类型(float、double),一种字符类型(char),一种布尔类型(boolean) 引用数据类型也就是我们常说的类了,
相关JSP教程:
- jsp response.sendRedirect不跳转的原因分析及解决
- JSP指令元素(page指令/include指令/taglib指令)复习整理
- JSP脚本元素和注释复习总结示例
- JSP FusionCharts Free显示图表 具体实现
- 网页模板:关于jsp页面使用jstl的异常分析
- JSP页面中文传递参数使用escape编码
- 基于jsp:included的使用与jsp:param乱码的解决方法
- Java Web项目中连接Access数据库的配置方法
- JDBC连接Access数据库的几种方式介绍
- 网站图片路径的问题:绝对路径/虚拟路径
- (jsp/html)网页上嵌入播放器(常用播放器代码整理)
- jsp下显示中文文件名及绝对路径下的图片解决方法
- 相关链接:
- 教程说明:
JSP教程-总结Hibernate经验。