坚持每天写博文,积累下开发中的点点滴滴
当我们需要查询数据库时,除了使用session.get()通过传入一个id进行查询还可以创建一个查询对象来传入sql语句进行查询。
HQL是Hibernate Query Language的缩写,可以理解成:除了关键字,其他内容都是java的类名,属性名
比如这一句:“SELECT o FROM User o;”【User】是java的domain对象,后面的o是给User起的别名,SELECT o 相当于sql的SELECT *
SELECT o FROM User o = FROM User
- 代码演示:
public void selectAll(){
Session session = HibernateUtils.getSession();
//创建一个查询对象:sql (除了关键字,其他内容都是java的类名,属性名)
String hql = "SELECT o FROM User o";
//SELECT o FROM User o = FROM User
Query query = session.createQuery(hql);
List<User> list = query.list();
System.out.println(list);
session.close();
}
- 带条件查询
public void find(){
Session session = HibernateUtils.getSession();
//创建一个查询对象:sql (除了关键字,其他内容都是java的类名,属性名)
String hql = "SELECT o FROM User o WHERE o.id>?";//此id属性是java属性
//JDBC 索引从1开始
//hibernate 索引从0开始
Query query = session.createQuery(hql).setLong(0, 2L);
List<User> list = query.list();
System.out.println(list);
session.close();
}
未完待续