Java私塾《深入浅出学Hibernate4》——系列精品教程n系统的、循序渐进的学习Hibernate4的开发知识n第一部分:Hibernate入门包括:是什么、ORMapping原理、能干什么、有什么、体系结构、怎么做、HelloWorldn第二部分:Hibernate的基本配置包括:cfg配置、mapping配置、类型映射、组件映射、事务配置、缓存配置等n第三部分:Hibernate基本开发包括:持久类、Hibernate的对象状态、使用Hibernate实现增删改查、HQL语句、条件查询、NativeSQL、批量处理、过滤器等n第四部分:关系映射包括:集合映射、关联关系映射、父子关系、复杂的映射等n第五部分:JavaEE的事务包括:事务产生的动机、事务的模型、分布式事务、声明性事务、事务传播性、编程性事务、事务的隔离级《深入浅出学Hibernate4开发》——系列精品教程真正高质量培训签订就业协议网址::460190900整体课程概览n第六部分:Hibernate的事务和并发n第七部分:性能提升和二级缓存包括:抓取策略、集合的性能、二级缓存、查询缓存、管理缓存等n第八部分:基本实现原理包括:分增删改查的操作说明Hibernate基本的实现原理n第九部分:最佳实践n第十部分:零配置《深入浅出学Hibernate4开发》——系列精品教程真正高质量培训签订就业协议网址::460190900整体课程概览nHibernate的基本概念Hibernate是什么nORMaping的基本理论《深入浅出学Hibernate4开发》——系列精品教程真正高质量培训签订就业协议网址::460190900本节课程概览真正高质量培训签订就业协议网址::460190900第一部分:Hibernate入门《深入浅出学Hibernate4开发》——系列精品教程nHibernate是什么Hibernate是一个轻量级的ORMapping框架nORMapping原理(ObjectRelationalMapping)真正高质量培训签订就业协议网址::460190900Hibernate是什么-1《深入浅出学Hibernate4开发》——系列精品教程nORMapping基本对应规则:1:类跟表相对应2:类的属性跟表的字段相对应3:类的实例与表中具体的一条记录相对应4:一个类可以对应多个表,一个表也可以对应对个类5:DB中的表可以没有主键,但是Object中必须设置主键字段6:DB中表与表之间的关系(如:外键)映射成为Object之间的关系7:Object中属性的个数和名称可以和表中定义的字段个数和名称不一样nORMapping的基本实现方式:使用JDBC,用SQL来操作数据库,只是看动态生成还是人工写代码来实现。大家想想,我们实现过ORMapping吗?真正高质量培训签订就业协议网址::460190900Hibernate是什么-2《深入浅出学Hibernate4开发》——系列精品教程ObjectUserModelRelationalDBMappingJDBC+手工写sql真正高质量培训签订就业协议网址::460190900Hibernate是什么-3《深入浅出学Hibernate4开发》——系列精品教程ObjectMappingRelationDataBase各种实体对象和对象实例Hibernate由Hibernate来实现对象和关系型数据库的相互映射(Hibernate怎么知道如何映射呢?)数据表XXX.cfg.xmlXXX.hbm.xml真正高质量培训签订就业协议网址::460190900本节课程小结《深入浅出学Hibernate4开发》——系列精品教程nHibernate是什么nORMapping的基本理论n作业:复习和掌握这些理论知识nHibernate的基本概念Hibernate能干什么、Hibernate有什么《深入浅出学Hibernate4开发》——系列精品教程真正高质量培训签订就业协议网址::460190900本节课程概览真正高质量培训签订就业协议网址::460190900第一部分:Hibernate入门《深入浅出学Hibernate4开发》——系列精品教程真正高质量培训签订就业协议网址::460190900Hibernate能干什么《深入浅出学Hibernate4开发》——系列精品教程nHibernate能干什么:Hibernate主要用来实现Java对象和表之间的映射,除此之外还提供还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate可能不是最好的解决方案;对于那些在基于Java的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate是最有用的。Hibernate可以帮助你消除或者包装那些针对特定厂商的SQL代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去。应用程序HibernateOracleMySqlSqlServer真正高质量培训签订就业协议网址::460190900Hibernate有什么-1《深入浅出学Hibernate4开发》——系列精品教程n一个非常简要的Hibernate体系结构的高层概要图真正高质量培训签订就业协议网址::460190900Hibernate有什么-2《深入浅出学Hibernate4开发》——系列精品教程nHibernate运行时体系结构“最小”的体系结构方案,要求应用程序提供自己的JDBC连接并管理自己的事务。这种方案使用了HibernateAPI的最小子集.真正高质量培训签订就业协议网址::460190900Hibernate有什么-3《深入浅出学Hibernate4开发》——系列精品教程n“全面解决”的体系结构方案,将应用层从底层的JDBC/JTAAPI中抽象出来,而让Hibernate来处理这些细节。真正高质量培训签订就业协议网址::460190900Hibernate有什么-4《深入浅出学Hibernate4开发》——系列精品教程nSessionFactory(org.hibernate.SessionFactory)针对单个数据库映射关系经过编译后的内存镜像,是线程安全的(不可变)。它是生成Session的工厂,本身要用到ConnectionProvider。nSession(org.hibernate.Session)表示应用程序与持久储存层之间交互操作的一个单线程对象,此对象生存期很短,隐藏了JDBC连接,也是Transaction的工厂。nTransaction(org.hibernate.Transaction)应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的JDBC、JTA以及CORBA事务隔离开。nConnectionProvider(org.hibernate.connection.ConnectionProvider)生成JDBC连接的工厂(有连接池的作用)。它通过抽象将应用从底层的Datasource或DriverManager隔离开。仅供开发者扩展/实现用,并不暴露给应用程序使用。nTransactionFactory(org.hibernate.TransactionFactory)生成Transaction对象实例的工厂。仅供开发者扩展/实现用,并不暴露给应用程序使用。真正高质量培训签订就业协议网址::460190900本节课程小结《深入浅出学Hibernate4开发》——系列精品教程nHibernate能干什么nHibernate有什么、Hibernate的体系结构n作业:复习和掌握这些理论知识nHibernate的HelloWorld《深入浅出学Hibernate4开发》——系列精品教程真正高质量培训签订就业协议网址::460190900本节课程概览真正高质量培训签订就业协议网址::460190900第一部分:Hibernate入门《深入浅出学Hibernate4开发》——系列精品教程真正高质量培训签订就业协议网址::460190900HelloWorld-1《深入浅出学Hibernate4开发》——系列精品教程n要研究怎么做,先得搞清楚需要做什么根据刚才的学习,做基本的Hibernate应用程序,要完成下面的工作:Object、数据库的表、两种配置文件、客户端程序来调用Hibernate的接口进行操作。n构建环境最简单的方法:把hibernate-release-4.0.0.Beta4.zip包里面lib/required下的jar包全部添加到工程的library里面,另外还需添加slf4j的实现包slf4j-log4j12-1.5.8.jar和log4j的实现包log4j-1.2.16.jar,还有别忘了把JDBC的驱动jar包也加入到library里面nObject怎么做1:就是前面学过的vo的写法(规则同样是那四点)2:要求必须有一个public为空参的构造方法,现在写vo一般不写构造方法,默认就有一个,但是写构造方法的时候要注意写上一个public为空参的构造方法3:要求提供一个标识属性(identifier)4:使用非final的类(因为要使用代理来延迟实体的装载)5:设若构建一个对象:cn.javass.h4.hello.UserModel,有四个属性:uuid,userId,name,age真正高质量培训签订就业协议网址::460190900HelloWorld-2《深入浅出学Hibernate4开发》——系列精品教程n在数据库中建表设若构建一个表为tbl_user,字段:uuid,userId,name,agen配置xxx.cfg.xml1:缺省名称为hibernate.cfg.xml2:存放在当前classes的根目录下,开发的时候在src根下就可以了3:主要有如下四部分配置:(1)与DB的连接(2)可选配置(3)资源文件注册(4)二级缓存4:配置的时候可以到Hibernate发行包里面找个hibernate.cfg.xml的例子,比如可以用“\project\hibernate-documentation\quickstart\tutorials\basic\src\test\resources”下面的hibernate.cfg.xml作例子5:示例如下:真正高质量培训签订就业协议网址::460190900HelloWorld-3《深入浅出学Hibernate4开发》——系列精品教程?xmlversion='1.0'encoding='ut