HQL 是面向对象的查询语言,而 SQL 是面向二维表的查询语言
Query 接口
使用 Session 对象的 createQuery 方法可获取 Query 对象。 Query query = session.createQuery(hql);
3.1.2 SQLQuery 接口
Hibernate 进行 SQL 原生查询的接口,支持动态绑定参数的功能,是 Query 接口的子接口。
使用 Session 对象的 createSQLQuery()方法可获取 SQLQuery 对象。SQLQuery sqlQuery = session.createSQLQuery(sql);
其查询出的结果对象默认为 Object,当然,若结果为 List,则其元素为 Object。
使用 SQLQuery 的 addEntity(Xxx.class)方法,可以将其结果泛型设定为指定类型。
3.1.3 Criteria 接口
Criteria,标准、准则,Hibernate 进行 Criteria 查询的接口,与 Query 接口无关。
使用 Session 对象的 createCriteria()方法可获取 Criteria 对象。
Criteria criteria = session.createCriteria(Xxx.class);
(1)SQL 查询
String sql = "select * from 表名";
List<Student> students = session.CreatSQLQuery(sql).addEntity(Student.class).list();
(2)HQL 查询
String sql = " from 表名";
List<Student> students = session.CreatQuery(sql).list();
(3)QBC 查询
List<Student> students = session.creatCriteria(Student.class).list();
分页
(1)SQL 查询
String sql = "select * from 表名 limit ?,?";
List<Student> students = session.CreatSQLQuery(sql).addEntity(Student.class)
.setParamer(0,3)
.setParamer(1,5)
.list();
(2)HQL 查询
String sql = " from 表名";
.List<Student> students = session.CreatQuery(sql)
.setFirstResult(3)
.setMaxResult(5)
.list();
(3)QBC 查询
List<Student> students = session.creatCriteria(Student.class)
.setFirstResult(3)
.setMaxResult(5)
.list();
模糊查询
(1)SQL 查询
String sql = "select * from 表名 while sname like :tname";
List<Student> students = session.CreatSQLQuery(sql).addEntity(Student.class)
.setParamer("tname","%n%")
.list();
(2)HQL 查询
String sql = " from 表名 where name like :myname";
.List<Student> students = session.CreatQuery(sql)
.setParamter("myname","%n%")
.list();
(3)QBC 查询
List<Student> students = session.creatCriteria(Student.class)
.add(Restrictions.like("name","%n%))
.list();
标签:Hibernate5,随手,students,List,list,查询,session,sql From: https://www.cnblogs.com/iKun1003/p/17022337.html