hibernate持久化数据库第三天

hibernate持久化数据库第三天

ID:39945245

大小:311.50 KB

页数:62页

时间:2019-07-15

hibernate持久化数据库第三天_第1页
hibernate持久化数据库第三天_第2页
hibernate持久化数据库第三天_第3页
hibernate持久化数据库第三天_第4页
hibernate持久化数据库第三天_第5页
资源描述:

《hibernate持久化数据库第三天》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、hibernate持久化数据第三天概述知识点一:各种标签中的检索策略知识点二:HQL查询HQL(Hibernatequerylanguage)1、查询实体2、查询实体属性3、参数绑定4、排序5、分组6、分页7、命名查询8、本地SQL查询9、联接查询知识点三:QBC查询QBC(QueryByCriteria)知识点一:检索策略知识点1:初始化测试数据publicvoidinitdata(){Sessionsession=sessionFacoty.openSession();Transactiontx=s

2、ession.beginTransaction();Customerc=newCustomer();c.setName("xxxx");c.setAge(20+newRandom().nextInt(12));session.save(c);for(inti=1;i<=10;i++){Ordero=newOrder();o.setOrderNumber("NO"+i);o.setPrice(5000+i*10d);c.getOrders().add(o);o.setCustomer(c);session

3、.save(o);}tx.commit();session.close();}知识点2:区分立即检索和延迟检索查询编号为1的客户Class标签中lazy=false立即检索publicvoidloadCustomerfalse(){Sessionsession=sessionFacoty.openSession();Transactiontx=session.beginTransaction();//该行代码让hibernate执行select语句,查询数据库Customerc=(Customer)se

4、ssion.load(Customer.class,1);c.getAge();tx.commit();session.close();}class标签中lazy=true延迟检索publicvoidloadCustomertrue(){Sessionsession=sessionFacoty.openSession();Transactiontx=session.beginTransaction();Customerc=(Customer)session.load(Customer.class,1);

5、//该行代码让hibernate执行select语句,//查询数据库(需要用的时候查数据库)c.getAge();tx.commit();session.close();}立即检索:立即加载检索方法指定的对象延迟检索:延迟加载检索方法指定的对象classcom.demo.pojo.Role_$$_javassist_0Hibernate的代理检索知识点3:理解延迟检索中的代理publicvoidloadCustomertrueProxy(){Sessionsession=sessionFacoty.op

6、enSession();Transactiontx=session.beginTransaction();//此时查询到的c对象是一个代理对象Customerc=(Customer)session.load(Customer.class,1);System.out.println(c.getClass());//代理对象c.getClass();//hibernate不会执行select语句c.getId();//hibernate不会执行select语句c.getAge();//该行hibernate

7、会执行select语句tx.commit();session.close();}只有延迟检索会产生代理对象,立即检索不会产生代理对象Hibernate使用javassist-3.9.0.GA.jar包创建代理Customer对象Customer对象代理对象(初始化oid的值,其他的值不初始化)Hibernate的延迟检索知识点3:初始化延迟检索中的代理//初始化代理对象publicvoidloadRoleTrueProxyInit(){Sessionsession=sessionFacoty.openS

8、ession();Transactiontx=session.beginTransaction();//此时查询到的r对象是一个代理对象Roler=(Role)session.load(Role.class,1);System.out.println(r.getClass());//代理对象//判断代理对象是否被初始化对集合对象也适用if(!Hibernate.isInitialized(r)){System.out.println(r.g

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

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

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