对持久化对象的操作.ppt

对持久化对象的操作.ppt

ID:56432800

大小:1.34 MB

页数:24页

时间:2020-06-18

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

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

1、第8章Hibernate对持久化对象操作刘高原主要内容Session常用方法12HQL查询5持久对象的生命周期3Session的常用方法Session的save()方法Session的save()方法用来对持久化对象进行保存,对应到数据库中就是向数据库表中插入一条记录。例如,在第一个Hibernate的程序中有以下代码片段://插入一条记录方法publicvoidsaveUser(){Transactiont1=session.beginTransaction();Useruser=newUser();user.setUsername("Jack");user.setPassword("

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

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

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

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

6、r)session.get(User.class,1);user.setUsername("Jacy");session.update(user);t2.commit();}事务提交后,执行SQL语句:updateuserTablesetusername=?,password=?whereSession的saveOrUpdate()方法Session的saveOrUpdate()方法用于根据对象的不同情况来分别进行处理。如果指定对象是临时建立的一个对象(new出来的对象),即数据库中没有相应记录,执行saveOrUpdate()方法就相当于执行save()方法;如果指定对象是游离对象,即

7、数据库中取出对象在数据库中存在,执行saveOrUpdate()方法就相当于执行update()方法。例如:publicvoidsaveOrUpdate(){Transactiont3=session.beginTransaction();Useruser;user=(User)session.get(User.class,2);if(user==null){user=newUser();//如果没有就创建一个新的,将被保存user

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

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

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