对象导航查询(根据ID查询某个客户,在查询这个客户里面的所有联系人)
查询某个客户中的所有联系人
OID查询(根据ID查询某一条记录,返回对象)
使用session对象中的get方法实现
hql查询(操作实体类和属性,Query对象,写hql语句实现查询)
常用语句:
查所有:from 实体类名称
条件查询:from 实体类名称 where 实体类属性名称=?and实体类名称=?
或
from 实体类名称 where 实体类属性名称 like ?
排序查询:from 实体类名称 order by 实体类属性名称 ASC(升序,不写降序(或者DESC))
投影查询:select 实体类属性名称1,实体类属性名称2 from 实体类名称
聚集函数使用(如统计):select count(*) from 实体类名称
查询所有
条件查询
模糊查询:
排序查询
分页查询
投影查询(不是查询所有字段,而是部分字段的值)
聚合函数使用(count,sum,Avg,max,min等)
Hql多表查询
内连接(两个表有关联的数据)
左外链接(左边表中的所有数据,右边表只有关联数据)
右外链接(右边表所有数据,左边表只有关联数据)
实现多表查询
内连接
查询语句:from 实体类名称(一的那一方) inner join 实体类名称.集合名称
左外连接和迫切左外连接
左外连接:from 实体类名称 left outer join 实体类名称.set集合名称
迫切左外连接:from 实体类名称 left outer join fetch 实体类名称.set集合名称
右外连接
语句:from 实体类名称 right outer join 实体类名称.set集合名称
迫切内连接
语句写法:from 实体类名称(一的那一方) inner join fetch 类名称.set集合名称
QBC查询(Criteria对象,操作实体类和属性。没有语句,使用封装方法实现)
查询所有:
条件查询
排序查询
分页查询
开始位置计算公式:(当前页-1)*每页记录数
统计查询
离线查询(和session没有关系,不用session对象)
应用场景:servlet—>service—>dao,dao中用crud操作数据库,现在要直接在servlet中拼接条件