Hibernate连接数据库框架.ppt

上传人:wuy****n92 文档编号:70272938 上传时间:2023-01-18 格式:PPT 页数:25 大小:211.99KB
返回 下载 相关 举报
Hibernate连接数据库框架.ppt_第1页
第1页 / 共25页
Hibernate连接数据库框架.ppt_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《Hibernate连接数据库框架.ppt》由会员分享,可在线阅读,更多相关《Hibernate连接数据库框架.ppt(25页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

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

2、起。Hibernate.cfg.xml配置文件l中会设置数据库的连接信息,以及引用的其他文件的文件名,和一些其他的设置。这个文件一般放在项目的根目录下。Hibernate.cfg.xml配置文件lllltrueltruel.l .ll.l .ll.lllllHibernate的持久化类的配置文件lhibernate的映射类的的写法lll llllllllllll l l使用hibernate的编成步骤l使用hibernate编程步骤l1,配置环境,加载hibernate的jar文件,以及连接数据库连接使用的jar文件,并配置CLASSPATH环境变量。l2,写hibernate所需的配置文件,

3、hibernate.cfg.xml,l3,写POJO类l4,调用hibernate API。l 1)使用Configuration对象的buildSessionFactory()方法创建SessionFactory对象l 2)使用SessionFactory对象openSession()方法创建Session对象。l 3)使用Session的相应方法来操作数据库,将对象信息持久化到数据库。Hibernate的核心接口lConfiguration,用于解析文件和文件,并创建SessionFactory对象。lSessionFactory,用于创建Session对象。lSession,持久化管理器

4、,对象级数据库操作lQuery,对对象作持久化操作或查询操作lTransaction,用于管理操作事务。三个原则l1.每个对象都要有唯一的标识。l2.类对应数据库中的表。l3.类中的属性要对应表中的字段。l以上这些原则体现在hibernate的配置文件中。Hilo算法id生成策略l高低位算法lllhigh_valuellnext_valuell50lllHibernate实现类关系映射一对一关联l共享主键,也就是一方引用另一方的主键,作为自身的主键,也是外键。l例子:用户和地址的一对一关系lUser和Address是抽象出的类,l接下来看看配置文件的写法User类的配置文件!-cascade属

5、性设置为除了none以外任何有意义的值,它将把特定的操作传递到关联对象中。这个值就代表着Hibernate基本操作的名称,persist,merge,delete,save-update,evict,replicate,lock,refresh,以及特别的值delete-orphan和all,并且可以用逗号分隔符 来组合这些操作,例如,cascade=persist,merge,evict或 cascade=all,delete-orphan。Address类的配置文件 user 一对多关联的处理l多方引用一方的主键当作外键l例:l班级和学生的关系体现了一对多的关系lStudent和Clazz

6、分别是抽象出的类Clazz类的配置文件!-column(可选):外键字段的名称。也可以通过嵌套的 指定-Hibernate管理的对象的状态l持久化对象,即就是在数据库中存有其相对应数据的对象,并且在内存中也有这个对象,这个对象在Session的管理范围内,也就是调用过save()方法同步到数据库的对象。l临时对象,即在内存中刚刚创建的对象,还没有同步到数据库,或者是数据库中信息被删除了的对象也是临时状态。l游离对象,也就是在数据库中有和该对象向对应的纪录,并且在内存中的也存在该对象,但是不在Session的管理范围之内,也就是在Session关闭之后,就成了游离对象,就不会在将其改变同步到数据

7、库中,如果要使还想令其成为持久化对象就要在把它纳入Session管理中,也就是掉用Session中的update()方法就可以了。Lazy属性的配置llazy=“true”l延迟加载,所谓的延迟加载,就是对一端的集合属性的加载策略,就是在不使用到集合中的对象的数据就不会真正的加载集合中的对象数据,而是家在一个代理对象就相当于的一个空的容器。l这也就是会出现LazyInitializationException异常,也就是没有初始化这个代理的集合对象,在事先查询到了集合中的对象就会初始化这个对象,如果Session没有关闭就会在查询加载集合中的对象信息,如果提前关闭了Session,当使用集合中

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

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com