使用hql语句查询数据库需要编写hql语句,hql语句与sql语句类似,只是操作对象变成了对类进行才做,查询的内容也是对类的属性进行查询,Hibernate框架会自动生成相应的sql语句去查询数据库,hql是属于面向对象的查询语言
- 基本查询:
// 根据hql查询所有学生信息,手动创建查询
public static void chaxunallxuesheng() {
Session session = HibernateUtil.getSession();
// HQL查询的是实体类的名称,不是数据表的名称
Query q = session.createQuery("from Xuesheng");
List<Xuesheng> list = q.list();
for (Xuesheng xs : list) {
System.out.println("姓名:" + xs.getXingming() + ",年龄:" + xs.getNianling());
}
HibernateUtil.closeSession();
}
- 带条件的sql语句查询
// 根据hql查某个信息,手动创建查询
public static void chaxunxueshengbyxingming() {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
// HQL查询的是实体类的名称,不是数据表的名称
// 按参数位置绑定,使用占位符
Query q = session.createQuery("from Xuesheng where xingming=?");
q.setString(0, "张三");
List<Xuesheng> list = q.list();
for (Xuesheng xs : list) {
System.out.println("姓名:" + xs.getXingming() + ",年龄:" + xs.getNianling());
}
tx.commit();
HibernateUtil.closeSession();
}
参数绑定方式有多种.具体看下一篇