Hibernate连接数据库框架.ppt

上传人:牧羊曲112 文档编号:6507049 上传时间:2023-11-07 格式:PPT 页数:25 大小:211.99KB
返回 下载 相关 举报
Hibernate连接数据库框架.ppt_第1页
第1页 / 共25页
Hibernate连接数据库框架.ppt_第2页
第2页 / 共25页
Hibernate连接数据库框架.ppt_第3页
第3页 / 共25页
Hibernate连接数据库框架.ppt_第4页
第4页 / 共25页
Hibernate连接数据库框架.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《Hibernate连接数据库框架.ppt》由会员分享,可在线阅读,更多相关《Hibernate连接数据库框架.ppt(25页珍藏版)》请在三一办公上搜索。

1、Hibernate重点总结和讲解,Hibernate基础,对象持久化,把数据保存在永久的存储介质中(数据库)OR/M(object relation mapping)对象关系映射。POJO类,就是标准的Java Bean。Hibernate就是一个可以自动的根据xml完成对象关系映射,并持久化到数据库的开源组件。Hibernate的底层也是有JDBC实现的。hibernate是通过xml文件的配置,对数据库的底层的方言,以及数据库连接所需的信息,以及连接数据库的驱动。hibernate的系统配置文件的名字一般叫做,一般是映射类名加.hbm.xml。一般将映射类的xml文件和实体类放在一起。,H

2、ibernate.cfg.xml配置文件,中会设置数据库的连接信息,以及引用的其他文件的文件名,和一些其他的设置。这个文件一般放在项目的根目录下。,Hibernate.cfg.xml配置文件,truetrue.,Hibernate的持久化类的配置文件,hibernate的映射类的的写法,使用hibernate的编成步骤,使用hibernate编程步骤1,配置环境,加载hibernate的jar文件,以及连接数据库连接使用的jar文件,并配置CLASSPATH环境变量。2,写hibernate所需的配置文件,hibernate.cfg.xml,3,写POJO类4,调用hibernate API。

3、1)使用Configuration对象的buildSessionFactory()方法创建SessionFactory对象 2)使用SessionFactory对象openSession()方法创建Session对象。3)使用Session的相应方法来操作数据库,将对象信息持久化到数据库。,Hibernate的核心接口,Configuration,用于解析文件和文件,并创建SessionFactory对象。SessionFactory,用于创建Session对象。Session,持久化管理器,对象级数据库操作Query,对对象作持久化操作或查询操作Transaction,用于管理操作事务。,三

4、个原则,1.每个对象都要有唯一的标识。2.类对应数据库中的表。3.类中的属性要对应表中的字段。以上这些原则体现在hibernate的配置文件中。,Hilo算法id生成策略,高低位算法high_valuenext_value50,Hibernate实现类关系映射一对一关联,共享主键,也就是一方引用另一方的主键,作为自身的主键,也是外键。例子:用户和地址的一对一关系User和Address是抽象出的类,接下来看看配置文件的写法,User类的配置文件,Address类的配置文件 user,一对多关联的处理,多方引用一方的主键当作外键例:班级和学生的关系体现了一对多的关系Student和Clazz分别

5、是抽象出的类,Clazz类的配置文件指定-,Hibernate管理的对象的状态,持久化对象,即就是在数据库中存有其相对应数据的对象,并且在内存中也有这个对象,这个对象在Session的管理范围内,也就是调用过save()方法同步到数据库的对象。临时对象,即在内存中刚刚创建的对象,还没有同步到数据库,或者是数据库中信息被删除了的对象也是临时状态。游离对象,也就是在数据库中有和该对象向对应的纪录,并且在内存中的也存在该对象,但是不在Session的管理范围之内,也就是在Session关闭之后,就成了游离对象,就不会在将其改变同步到数据库中,如果要使还想令其成为持久化对象就要在把它纳入Session

6、管理中,也就是掉用Session中的update()方法就可以了。,Lazy属性的配置,lazy=“true”延迟加载,所谓的延迟加载,就是对一端的集合属性的加载策略,就是在不使用到集合中的对象的数据就不会真正的加载集合中的对象数据,而是家在一个代理对象就相当于的一个空的容器。这也就是会出现LazyInitializationException异常,也就是没有初始化这个代理的集合对象,在事先查询到了集合中的对象就会初始化这个对象,如果Session没有关闭就会在查询加载集合中的对象信息,如果提前关闭了Session,当使用集合中的对象信息时就会有这个异常。,fetch和batch-size属性

7、的配置,fetch=“join”,这就是使用了预先抓取策略,也就是针对关联的对象的加载策略,在使用到关联对象的信息时会再发送sql语句,如果不使用fetch=“join”,就会不使用表连接而是先查出一端的关联id再一条一条的发送sql语句查询到关联对象信息,使用了fetch=“join”就会使用表连接将关联对象信息直接查寻出来的。fetch=“lazy”这个是默认的设置。batch-size这个属性只能够写在set标签中,这个属性带表批量加载,也就是在加载一端的集合属性时会一次加载指定的数量的对象,而不是默认的一个一个的加载,会提高效率,批量加载只能用于延迟加载和立即加载策略,也就是(lazy

8、=true或者lazy=false)。,hibernate多对多的映射实现,一般多对多关联会拆分成两个一对多的关系来实现多对多关系,也可以通过hibernate提供的解决方案来实现。其实hibernate的实现方式是通过中间表间接的实现了多对多关系,实际上也是将多对多拆分成两个双向的一对多关系。多对多关系XML文件的配置例:用户和地址的多对多关系User和Address,User类的配置文件,Address类的配置文件,Hibernate的继承关系映射,Hibernate处理继承关系的建表策略所有类建一个表只为具体类建表每个类建一个表,例:/hibernate-mapping,hibernate组件映射,组件不会生成唯一标识,但是也需要对应实体类。hibernate中可以把一个类的对象当作一个属性组件来使用,并且在使用时会自动创建,所以同一组件对象是不会被两次引用的。,pk_table id_value,练习一下:,pk_table id_value,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号