Hibernate连接数据库框架.ppt_第1页
Hibernate连接数据库框架.ppt_第2页
Hibernate连接数据库框架.ppt_第3页
Hibernate连接数据库框架.ppt_第4页
Hibernate连接数据库框架.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Hibernate重点总结和讲解,Hibernate基础,对象持久化,把数据保存在永久的存储介质中(数据库)OR/M(objectrelationmapping)对象关系映射。POJO类,就是标准的JavaBean。Hibernate就是一个可以自动的根据xml完成对象关系映射,并持久化到数据库的开源组件。Hibernate的底层也是有JDBC实现的。hibernate是通过xml文件的配置,对数据库的底层的方言,以及数据库连接所需的信息,以及连接数据库的驱动。hibernate的系统配置文件的名字一般叫做hibernate.cfg.xml,一般是映射类名加.hbm.xml。一般将映射类的xml文件和实体类放在一起。,Hibernate.cfg.xml配置文件,hibernate.cfg.xml中会设置数据库的连接信息,以及引用的其他文件的文件名,和一些其他的设置。这个文件一般放在项目的根目录下。,Hibernate.cfg.xml配置文件,truetrue.,Hibernate的持久化类的配置文件,hibernate的映射类的XXXX.hbm.xml的写法,使用hibernate的编成步骤,使用hibernate编程步骤1,配置环境,加载hibernate的jar文件,以及连接数据库连接使用的jar文件,并配置CLASSPATH环境变量。2,写hibernate所需的配置文件,hibernate.cfg.xml,Xxxxx.hbm.xml3,写POJO类4,调用hibernateAPI。1)使用Configuration对象的buildSessionFactory()方法创建SessionFactory对象2)使用SessionFactory对象openSession()方法创建Session对象。3)使用Session的相应方法来操作数据库,将对象信息持久化到数据库。,Hibernate的核心接口,Configuration,用于解析hibernate.cfg.xml文件和XXXXX.hbm.xml文件,并创建SessionFactory对象。SessionFactory,用于创建Session对象。Session,持久化管理器,对象级数据库操作Query,对对象作持久化操作或查询操作Transaction,用于管理操作事务。,三个原则,1.每个对象都要有唯一的标识。2.类对应数据库中的表。3.类中的属性要对应表中的字段。以上这些原则体现在hibernate的配置文件中。,Hilo算法id生成策略,高低位算法high_valuenext_value50,Hibernate实现类关系映射一对一关联,共享主键,也就是一方引用另一方的主键,作为自身的主键,也是外键。例子:用户和地址的一对一关系User和Address是抽象出的类,接下来看看配置文件的写法,User类的配置文件,Address类的配置文件user,一对多关联的处理,多方引用一方的主键当作外键例:班级和学生的关系体现了一对多的关系Student和Clazz分别是抽象出的类,Clazz类的配置文件指定-,Hibernate管理的对象的状态,持久化对象,即就是在数据库中存有其相对应数据的对象,并且在内存中也有这个对象,这个对象在Session的管理范围内,也就是调用过save()方法同步到数据库的对象。临时对象,即在内存中刚刚创建的对象,还没有同步到数据库,或者是数据库中信息被删除了的对象也是临时状态。游离对象,也就是在数据库中有和该对象向对应的纪录,并且在内存中的也存在该对象,但是不在Session的管理范围之内,也就是在Session关闭之后,就成了游离对象,就不会在将其改变同步到数据库中,如果要使还想令其成为持久化对象就要在把它纳入Session管理中,也就是掉用Session中的update()方法就可以了。,Lazy属性的配置,lazy=“true”延迟加载,所谓的延迟加载,就是对一端的集合属性的加载策略,就是在不使用到集合中的对象的数据就不会真正的加载集合中的对象数据,而是家在一个代理对象就相当于的一个空的容器。这也就是会出现LazyInitializationException异常,也就是没有初始化这个代理的集合对象,在事先查询到了集合中的对象就会初始化这个对象,如果Session没有关闭就会在查询加载集合中的对象信息,如果提前关闭了Session,当使用集合中的对象信息时就会有这个异常。,fetch和batch-size属性的配置,fetch=“join”,这就是使用了预先抓取策略,也就是针对关联的对象的加载策略,在使用到关联对象的信息时会再发送sql语句,如果不使用fetch=“join”,就会不使用表连接而是先查出一端的关联id再一条一条的发送sql语句查询到关联对象信息,使用了fetch=“join”就会使用表连接将关联对象信息直接查寻出来的。fetch=“lazy”这个是默认的设置。batch-size这个属性只能够写在set标签中,这个属性带表批量加载,也就是在加载一端的集合属性时会一次加载指定的数量的对象,而不是默认的一个一个的加载,会提高效率,批量加载只能用于延迟加载和立即加载策略,也就是(lazy=true或者lazy=false)。,hibernate多对多的映射实现,一般多对多关联会拆分成两个一对多的关系来实现多对多关系,也可以通过hibernate提供的解决方案来实现。其实hibernate的实现方式是通过中间表间接的实现了多对多关系,实际上也是将多对多拆分成两个双向的一对多关系。多对多关系XML文件的配置例:用户和地址的多对多关系User和Address,User类的配置文件,Address类的配置文件,Hibernate的继承关系映射,Hibernate处理继承关系的建表策略所有类建一个表只为具体类建表每个类建一个表,例:/hibernate-mapping,hibernat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论