18.01.06,web学习第三十八天,还有一年,努力吧青年 hibernate第四天 HQL,Criteria,离线对象,查询策略
2018-01-06 17:32
507 查看
38.hibernate第四天
1. Number类型,所有数字类型的父类抽取。所有数字类型都可以使用Number接收,如接下来的聚合函数:Hierarchy:分层,集成体系(ctrl+t)
Hibernate的聚合查询:count,sum,max,min,avg,他们返回的类型, 有的是double有的是long,所以使用父类Number接收。 String sql=”select count(cust_id) from 完整类名 ”; Query q= session.createQuery(sql); Number n=(Number)q.uniqueResult(); |
1)查询一个属性(查询一列) 2)查询多个属性(查询多列)(返回值是一个集合List<Object[]>里面泛型是数组),我们希望将查询出来的数据封装到对象中,那么,给该对象给定一个构造函数(含有要查询的列)(再手动给定无参构造)。 |
复习sql的多表查询: 交叉连接: Select * from a,b;(避免无用) 内联: 隐式内联: Select * from A ,B where b.aid=a.aid; 显式内联: Select * from A inner join B on a.cid=b.cid; 左外联: Select * from A left join B on b.aid=a.aid; 又外联: Select * from A right join B on b.aid=a.aid; HQL的多表查询; 内联: String sql=”from Custmer c inner join c.Linkmans”; Query q=session.create Query(sql); List l=q.list();//返回的是查询出来的两张表对应的两个对象组成一个数组放到集合中。所以list泛型为Object[]数组 迫切内链接是返回的结果是查询出来的每一条记录的两个对象没有放在数组中,而是拼在了from 后面这个对象中(第二个对象直接放进了第一个对象的属性集合里)。语法: String sql=”from Custmer c inner join fetch c.Linkmans”; 它的泛型是Custmer。 外联:(也存在迫切查询用法与上面相同) String sql=”from Customer c left join c. linkmans”;left变right就是右连接。 |
基本语法: Criteria c=session.createCriteria(); List<类> l=c.list(); 条件: Criteria c=session.createCriteria(); c.add(Restriations.eq(“”,)); 分页: Criteria c=session.createCriteria(); c.setFirstResult(0); c.setMaxResult(2); 排序: Criteria c=session.createCriteria(); c.addOrder(Order.asc(“属性”)); 统计: Criteria c=session.createCriteria(); c.setProjection(Projections.rowCount()); Long l=(Long)c.UniqueResult(); |
Detach:分离,拆开,使派遣。 核心:DetachedCriteria dc |
1)类级别查询: Fetch:接来,抵达,拿取 注意:懒加载在查询数据库时关联session不能为空。 懒加载,延迟加载: 对于session.get()方法无延时加载。 对于session.load()方法,默认是延时加载(返回给一个对象,但是没有查询,等到对象被使用时才去查询对象)。 配置文件:lazy属性:默认true,加载时不查询,使用对象时才查询。 改成fasle和get()方法没有任何区别。 懒原理:如果debug中出现$$说明是代理对象。 所以延迟加载时会返回一个代理对象(没查数据库)。 2)关联级别查询(懵了) 批量抓取: |
相关文章推荐
- 17.12.22,web学习第三十一天,还有一年,努力吧青年 商城项目第四天订单提交在线支付
- 17.11.15,web学习第四天,还有一年,努力吧青年!
- 17.11.14,web学习第四天,还有一年,努力吧青年!
- 18.01.04,web学习第三十七天,还有一年,努力吧青年 hibernate第三天 一对多,多对多
- 17.12.09,web学习第二十一天,还有一年,努力吧青年商品条件查询和分页查询
- 17.11.12,web学习第二天,还有一年,努力吧青年!
- 17.11.16,web学习第五天,还有一年,努力吧青年!
- 17.12.11,web学习第二十三天,还有一年,努力吧青年Listener
- 17.11.26,web学习第十二天,还有一年,努力吧青年HTTp协议和TomCat服务器
- 17.12.14,web学习第二十六天,还有一年,努力吧青年 Linux入门
- 17.12.19,web学习第二十九天,还有一年,努力吧青年ajax,cookie,分类分页显示
- 18.01.11,web学习第四十天,还有一年,努力吧青年 struts2第二天 action创建+result处理+获取数据方式
- 17.11.18,web学习第六天,还有一年,努力吧青年
- 17.11.28,web学习第十四天,还有一年,努力吧青年HttpServletResponse
- 17.12.06,web学习第二十天,还有一年,努力吧青年商城增删改查记忆
- 17.11.13,web学习第三天,还有一年,努力吧青年!
- 17.12.12,web学习第二十四天,还有一年,努力吧青年过滤器Filter
- 18.02.01,web学习第五十天,还有半年,努力吧青年 crm第四天 弹窗,联系人列表,添加以及修改
- 18.01.08,web学习第三十九天,还有一年,努力吧青年 struts2第一天 搭建框架
- 17.11.21,web学习第八天,还有一年,努力吧青年