第10章 Hibernate对持久化对象的.ppt

第10章 Hibernate对持久化对象的.ppt

ID:48722845

大小:535.50 KB

页数:40页

时间:2020-01-26

第10章  Hibernate对持久化对象的.ppt_第1页
第10章  Hibernate对持久化对象的.ppt_第2页
第10章  Hibernate对持久化对象的.ppt_第3页
第10章  Hibernate对持久化对象的.ppt_第4页
第10章  Hibernate对持久化对象的.ppt_第5页
资源描述:

《第10章 Hibernate对持久化对象的.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章Hibernate对持久化对象的操作10.1Session的常用方法10.2HQL查询10.3Hibernate的批量操作10.4持久对象的生命周期10.1Session的常用方法10.1.1Session的save()方法Session的save()方法用来对持久化对象进行保存,对应到数据库中就是向数据库表中插入一条记录。例如,在第一个Hibernate的程序中有以下代码片段://插入一条记录方法publicvoidsaveUser(){Transactiont1=session.beginTransaction();Useruser=newUser();user.setUse

2、rname("Jack");user.setPassword("123456");session.save(user);t1.commit();}如果在Hibernate的核心配置文件中加入语句:true运行程序时,就会在控制台显示出对应执行的SQL语句,该段代码对应显示的SQL语句为:insertintouserTable(username,password)values(?,?)10.1.2Session的get()和load()方法Session的get()和load()方法都是用来加载持久

3、化类对象的,例如:Useruser=(User)session.get(User.class,1);//或Useruser=(User)session.load(User.class,1);用来获取id为1的User的对象,但两者是有区别的。当数据库表中不存在id为1的值时,使用get()方法返回null,而用load()方法则会抛出异常。load()查询会先到缓存中去查,如果没有则返回一个代理对象(不马上到数据库中查找),等到后面使用这个代理对象的时候,才到数据库中查找相应的信息。若还是没有找到就抛出异常。get()查询则是先到缓存中去查,如果没有就直接到数据库中查询,还没有的话就

4、返回null。load()查询支持延迟加载,所谓延迟加载就是用到后才到数据库中查询,从上面一条的查询方式中也可以看出,load()支持延迟加载,而get()查询不支持。延迟加载是由映射文件中class标签的lazy属性控制的,默认值为true,即延迟加载,如果设置该属性为false,即立即加载。10.1.3Session的delete()方法Session的delete()方法用来对持久化对象进行删除操作,对应数据库中就是删除数据库表的一条记录。在进行删除之前,必须先得到要删除的持久化对象。例如://删除一条记录publicvoiddeleteUser(){Transactiont3=

5、session.beginTransaction();Useruser=(User)session.get(User.class,1);session.delete(user);t3.commit();}事务提交后,执行SQL语句:deletefromuserTablewhereid=?完成对数据库表记录的删除操作。10.1.4Session的update()方法Session的update()方法用于对持久化对象进行修改操作,对应数据库中就是修改数据库表的一条记录。在进行修改之前,必须先得到要修改的持久化对象。例如://修改一条记录publicvoidupdateUser(){Tran

6、sactiont2=session.beginTransaction();Useruser=(User)session.get(User.class,1);user.setUsername("Jacy");session.update(user);t2.commit();}事务提交后,执行SQL语句:updateuserTablesetusername=?,password=?where10.1.5Session的saveOrUpdate()方法Session的saveOrUpdate()方法用于根据对象的不同情况来分别进行处理。如果指定对象是临时建立的一个对象(new出来的对象),即数

7、据库中没有相应记录,执行saveOrUpdate()方法就相当于执行save()方法;如果指定对象是游离对象,即数据库中取出对象在数据库中存在,执行saveOrUpdate()方法就相当于执行update()方法。例如:publicvoidsaveOrUpdate(){Transactiont3=session.beginTransaction();Useruser;user=(User)session.get(User.class

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。