- 浏览: 822015 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
Hibernate持久化类使用的是JavaBean的风格,为要被访问的属性提供了一套get和set方法,这两个方法也叫做Hibernate 持久化类的访问方法.记得曾经在接触JavaBean 的时候我很迷糊,总觉得提供这两个方法,倒不如把Bean的属性设置public,然后直接调用对象.属性,这样来的方便.但是后来,有一个这样的需求,就是一个人名字可以被查看,但是不可以修改.这个时候如果用set方法的话,只需要把set方法的修饰符换为private就OK了.如果是用对象.属性的形式调用就麻烦了。
而且最重要的一个有点是JavaBean的风格可以简化Hibernate通过JAVA反射机制来获得Hibernate持久化类的访问方法的过程,至于JAVA的反射机制我也是了解一些皮毛.据说很深奥.有兴趣的朋友可以Google一下.有一点值得注意,就是JAVA应用程序不能访问 JavaBean持久化类的private类型的get,set方法.而Hibernate没有这个限制,可以访问所有的级别.包括private default,protected,public.
Java有8种基本类型:byte,short,char,int,long,float,double,boolean,还有8种与之对应的包装类型,Byte,Short,Character,Integer,Long,Float,Double,Boolean包装类型就是把基本类型包装成对象的意思.基本类型于包装类型之间可以方便的转换,例如:
1. int i = 0;
2. Integer ie = new Integer(i);
3. //基本类型转换成包装类型
4. i = ie.intValue();
5. //包装类型转化成基本类型
注意,直接转换也是可以的.例如i = ie; JAVA会自动把包装类型转换成基本类型.或者ie = i; JAVA会自动把基本类型转换成包装类型.在Hibernate持久化类中,既可以把属性定义为基本类型,也可以定义为包装类型,他们对应的 Hibernate映射类型int和Integer都对应int类型,这个表示不是很明显,在用JAVA对象类型字符串举例String,数据库是 varhcar(50),在hibernate的*.hbm.xml 映射文件里一律写为string。
其实使用基本类型或者包装类型来定义Hibernate持久化类中的属性是各有优缺点的.基本类型就是使用方便,简单,在需要数字运算的时候直接可以运算.而包装类型就要麻烦的先转换成基本类型,然后在进行运算,但是包装类型的优点在于能表达null值,每一个包装类型的对象创建的时候默认值都是 null类型的.而基本类型是不可以表达null的,它们的默认值是0.为什么要表达null值呢.因为SQL中.所有类型的数据,默认值都是 null的。
当进入insert的时候,没有赋值的属性,默认值就是null,所以说JAVA的包装类型和数据库之间的对应关系更直接.这里建议Hibernate的OID设置为包装类型,其他的属性就根据业务需要和个人习惯来定吧.
Hibernate在初始化阶段会根据映射文件的信息,为所有的Hibernate持久化类预定义insert语句,update语句where ID,delete语句where ID,select语句where ID,这里所说的语句就是标准的SQL增,删,改,查.语句,参数用?代表JDBC PreparedStatement中的参数,这里就不举例了.这些SQL语句都存放在SessionFactory的缓存中,当执行Session的 save(),update(),delete(),load()方法时,将会从SessionFactory的缓存中读取这些预定义的SQL语句,在把具体的参数值绑定到SQL语句中,这就是Hibernate的基本原理.在默认的情况下这些语句表达的是所有的字段.当然Hibernate还允许我们在映射文件里控制insert和update语句的内容。
比如在映射文件中<property 元素中的update属性设置成为false,那么这个字段,将不被包括在基本的update语句中,修改的时候,将不包括这个字段了.insert同理.dynamic动态SQL语句的配置也是很常用的.下面介绍配置SQL语句的具体属性:
1)<property>元素 insert属性:设置为false,在insert语句中不包含这个字段,表示永远不会被插入,默认true
2)<property>元素 update属性:设置为false,在update语句中不包含这个字段,表示永远不会被修改,默认true
3)<class>元素 mutable属性:设置为false就是把所有的<property>元素的update属性设置为了false,说明这个对象不会被更新,默认true
4)<property>元素 dynamic-insert属性:设置为true,表示insert对象的时候,生成动态的insert语句,如果这个字段的值是null就不会加入到insert语句当中.默认false
5)<property>元素 dynamic-update属性,设置为true,表示update对象的时候,生成动态的update语句,如果这个字段的值是null就不会被加入到update语句中,默认false
6)<class>元素 dynamic-insert属性:设置为true,表示把所有的<property>元素的dynamic-insert属性设置为true,默认false
7)<class>元素 dynamic-update属性:设置为true,表示把所有的<property>元素的dynamic-update属性设置为true,默认false
Hibernate生成动态SQL语句的消耗的系统资源(比如CPU,内存等)是很小的,所以不会影响到系统的性能,如果表中包含N多字段,建议把 dynamic- update属性和insert属性设置为true,这样在插入和修改数据的时候,语句中只包括要插入或者修改的字段.可以节省SQL语句的执行时间,提高程序的运行效率.
而且最重要的一个有点是JavaBean的风格可以简化Hibernate通过JAVA反射机制来获得Hibernate持久化类的访问方法的过程,至于JAVA的反射机制我也是了解一些皮毛.据说很深奥.有兴趣的朋友可以Google一下.有一点值得注意,就是JAVA应用程序不能访问 JavaBean持久化类的private类型的get,set方法.而Hibernate没有这个限制,可以访问所有的级别.包括private default,protected,public.
Java有8种基本类型:byte,short,char,int,long,float,double,boolean,还有8种与之对应的包装类型,Byte,Short,Character,Integer,Long,Float,Double,Boolean包装类型就是把基本类型包装成对象的意思.基本类型于包装类型之间可以方便的转换,例如:
1. int i = 0;
2. Integer ie = new Integer(i);
3. //基本类型转换成包装类型
4. i = ie.intValue();
5. //包装类型转化成基本类型
注意,直接转换也是可以的.例如i = ie; JAVA会自动把包装类型转换成基本类型.或者ie = i; JAVA会自动把基本类型转换成包装类型.在Hibernate持久化类中,既可以把属性定义为基本类型,也可以定义为包装类型,他们对应的 Hibernate映射类型int和Integer都对应int类型,这个表示不是很明显,在用JAVA对象类型字符串举例String,数据库是 varhcar(50),在hibernate的*.hbm.xml 映射文件里一律写为string。
其实使用基本类型或者包装类型来定义Hibernate持久化类中的属性是各有优缺点的.基本类型就是使用方便,简单,在需要数字运算的时候直接可以运算.而包装类型就要麻烦的先转换成基本类型,然后在进行运算,但是包装类型的优点在于能表达null值,每一个包装类型的对象创建的时候默认值都是 null类型的.而基本类型是不可以表达null的,它们的默认值是0.为什么要表达null值呢.因为SQL中.所有类型的数据,默认值都是 null的。
当进入insert的时候,没有赋值的属性,默认值就是null,所以说JAVA的包装类型和数据库之间的对应关系更直接.这里建议Hibernate的OID设置为包装类型,其他的属性就根据业务需要和个人习惯来定吧.
Hibernate在初始化阶段会根据映射文件的信息,为所有的Hibernate持久化类预定义insert语句,update语句where ID,delete语句where ID,select语句where ID,这里所说的语句就是标准的SQL增,删,改,查.语句,参数用?代表JDBC PreparedStatement中的参数,这里就不举例了.这些SQL语句都存放在SessionFactory的缓存中,当执行Session的 save(),update(),delete(),load()方法时,将会从SessionFactory的缓存中读取这些预定义的SQL语句,在把具体的参数值绑定到SQL语句中,这就是Hibernate的基本原理.在默认的情况下这些语句表达的是所有的字段.当然Hibernate还允许我们在映射文件里控制insert和update语句的内容。
比如在映射文件中<property 元素中的update属性设置成为false,那么这个字段,将不被包括在基本的update语句中,修改的时候,将不包括这个字段了.insert同理.dynamic动态SQL语句的配置也是很常用的.下面介绍配置SQL语句的具体属性:
1)<property>元素 insert属性:设置为false,在insert语句中不包含这个字段,表示永远不会被插入,默认true
2)<property>元素 update属性:设置为false,在update语句中不包含这个字段,表示永远不会被修改,默认true
3)<class>元素 mutable属性:设置为false就是把所有的<property>元素的update属性设置为了false,说明这个对象不会被更新,默认true
4)<property>元素 dynamic-insert属性:设置为true,表示insert对象的时候,生成动态的insert语句,如果这个字段的值是null就不会加入到insert语句当中.默认false
5)<property>元素 dynamic-update属性,设置为true,表示update对象的时候,生成动态的update语句,如果这个字段的值是null就不会被加入到update语句中,默认false
6)<class>元素 dynamic-insert属性:设置为true,表示把所有的<property>元素的dynamic-insert属性设置为true,默认false
7)<class>元素 dynamic-update属性:设置为true,表示把所有的<property>元素的dynamic-update属性设置为true,默认false
Hibernate生成动态SQL语句的消耗的系统资源(比如CPU,内存等)是很小的,所以不会影响到系统的性能,如果表中包含N多字段,建议把 dynamic- update属性和insert属性设置为true,这样在插入和修改数据的时候,语句中只包括要插入或者修改的字段.可以节省SQL语句的执行时间,提高程序的运行效率.
发表评论
-
Hibernate工作原理
2010-10-03 10:34 4093Hibernate工作原理 图 ... -
Hibernate基础
2010-09-19 09:43 1132Hibernate基础 Part 1 1. ... -
hibernate一对一映射外键关联
2010-09-17 11:24 1308hibernate一对一映射外键关联 一对一外键关联 外键关 ... -
在Hibernate中使用JDBC事务
2010-09-16 14:21 1281在Hibernate中使用JDBC事务 Hibernate ... -
hibernate事务,一级缓存,二级缓存
2010-09-16 12:34 1156hibernate主要从以下几个 ... -
Hibernate的五个核心接口介绍
2010-09-16 12:14 1003所有的Hibernate应用中都会访问Hibernate的 ... -
Hibernate缓存配置/批量处理
2010-09-16 12:01 1186Hibernate缓存配置/批量处 ... -
hibernate知识点总结
2010-09-16 08:48 1282hibernate知识点总结 1.hibernate的优缺点 ... -
项目缓存方案总结
2010-09-16 08:42 841项目缓存方案总结 一 ... -
hibernate缓存总结
2010-09-16 08:30 965hibernate缓存总结: 缓存是位于应用程序与 ... -
Hibernate中一级缓存、二级缓存及查询缓存的技术性总结
2010-09-15 22:54 867一、 一级缓存 1. 一级缓存只缓存整个对象 ... -
Hiberante3 一级缓存总结
2010-09-15 22:53 438Hiberante3 一级缓存总结 1. ... -
Hibernate中的缓存总结
2010-09-15 22:51 982Hibernate中的缓存总结 Hibernate ... -
hibernate缓存相关
2010-09-15 22:49 807hibernate缓存相关 hibernat ... -
hibernate技术面试相关
2010-09-13 20:51 1147Hibernate 中数据表映射关 ... -
hibernate 相关面试题
2010-09-13 20:50 10071.在数据库中条件查询 ... -
hibernate get()与load()的区别
2010-09-13 15:36 818hibernate get()与load()的区别 s ... -
Hibernate持久化对象的生命周期
2010-09-13 11:06 1052持久化对象的状态: ... -
Hibernate中持久化类实例的三种状态
2010-09-13 10:59 2126在Hibernate中持久化类实 ... -
hibernate参考文档下载
2010-09-13 10:41 1172hibernate参考文档下载 这是一个非常有用改的hibe ...
相关推荐
《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...
总的来说,这本书和配套文档为Java开发者提供了全面的Hibernate学习资源,无论你是初学者还是有经验的开发者,都能从中受益匪浅,提升你在J2EE开发中的对象持久化能力。通过深入理解和实践,你可以更加自如地应对...
在文档中,首先介绍了如何在Tomcat服务器中快速启动和配置Hibernate,包括创建第一个可持久化类、映射实体以及执行基本操作。开发者可以通过这些步骤快速入门,体验Hibernate带来的便利。 接下来,文档深入讨论了...
《精通Hibernate:Java对象持久化技术详解》这本书深入探讨了Java世界中的对象持久化技术,主要聚焦于Hibernate框架。Hibernate是一种流行的开源ORM(对象关系映射)解决方案,它为Java开发者提供了一种方便的方式来...
通过学习以上知识点,你可以全面掌握Hibernate的使用,实现Java习惯下的关系数据库持久化,提高开发效率并减少与数据库交互的复杂性。在实际项目中,结合最佳实践,Hibernate能帮助你构建稳定、高效的数据访问层。
总的来说,《精通Hibernate:Java對象持久化技術詳解》是一本全面且深入的Hibernate指南,适合所有希望提升Java ORM能力的开发者。通过阅读这本书,读者不仅可以掌握Hibernate的核心概念和技术,还能了解到最佳实践...
本文将探讨iBATIS、Hibernate以及Java Persistence API (JPA)这三种流行的持久化框架,并进行对比分析。 首先,持久层(Persistence Layer)是指能够长久存储数据的层次,它保证了即使应用程序关闭,数据依然可以被...
1. Hibernate基本概念:介绍Hibernate的核心思想,如实体、持久化类、对象状态管理、事务处理等,帮助初学者建立对ORM框架的基本认识。 2. Hibernate配置:讲解如何配置Hibernate的XML文件,包括hibernate.cfg.xml...
北京动力节点教育培训公司提供的Hibernate5讲义,不仅对Hibernate框架进行了全面的介绍,而且通过实例演示了如何使用Hibernate进行基本的数据库操作。该讲义涵盖了Hibernate的基本技术、配置方法以及如何开发一个...
《符合Java习惯的关系数据库持久化Hibernate3.2.0_Reference_zh_CN》是针对Java开发者的一份详尽的中文API文档,它详细介绍了如何利用Hibernate 3.2.0框架进行关系数据库的持久化操作。Hibernate作为一个开源的对象...
《精通 Hibernate:Java 对象持久化技术详解(第2版)》是一本深入解析Java对象持久化技术的权威著作,特别适合JavaWeb开发者学习。Hibernate作为Java领域中最流行的ORM(对象关系映射)框架,它简化了数据库操作,...
Hibernate 是一个强大的 Java 持久化框架,它简化了数据库与对象之间的交互。通过提供一组丰富的API,Hibernate使得开发者能够在应用中轻松地管理和操作数据库数据。以下是对这些API的详细解析: 1. **访问数据库...
《Hibernate持久化框架开发文档》是一份详尽的教程,旨在引导开发者深入理解并熟练运用Hibernate框架。Hibernate是一个流行的Java对象关系映射(ORM)工具,它为Java开发者提供了便捷的方式来管理和操作数据库。以下...
在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别在应用层管理和数据持久化方面发挥着关键作用。本文将详细解析如何利用Spring和Hibernate来实现一个通用的DAO(Data Access Object)层,以提高代码...
本资源提供了对Hibernate 3.1全面且深入的讲解,旨在帮助开发者掌握如何利用Hibernate来实现关系数据库的持久化。 Hibernate作为一个ORM框架,它的核心目标是简化Java应用程序与数据库之间的交互。通过提供一个对象...
Hibernate是一个用于简化Java数据库编程的开源框架,它提供了一种在Java应用程序中持久化对象的方式,避免了直接编写SQL语句,提高了开发效率。 **1. Hibernate基本概念** - **对象关系映射(ORM)**: ORM是将...