您的位置:首页 > 产品设计 > UI/UE

7、Hibernate的SQLQuery查询

2019-01-16 17:07 169 查看

一.SQLQuery简介

SQLQuery接口用于接受一个sql语句进行查询,然后调用list()或uniqueResult()进行查询。但是sql语句不会直接封装到实体对象里,需要手写代码才可以封装到实体中。

二.SQLQuery常用接口方法

  • addEntity()方法:该方法用于将查询到的结果集转换为你设置的实体类
  • setter()方法:Query接口中提供了一系列的setter方法用于设置条件查询中的语句的参数,针对不同的数据类型,需要用到不同的setter方法。
  • list()方法:该方法用于返回多条查询结果
  • uniqueResult()方法:该方法用于返回唯一的结果,在确保只有一条记录的查询是可以使用该方法。

三.SQLQuery使用步骤

1.获取Hibernate的session对象
2.编写sql语句
3.通过Session对象获取SQLQuery实例
4.如果sql语句带有参数,则调用SQLQuery的setXx方法设置参数
5.执行SQLQuery接口list()方法或uniqueResult()获得结果。
多结果查询

//获取Session对象
Session session = HibernateUtil.getCurrentSession();
//获取事务
Transaction tx = session.beginTransaction();
//SQL语句
String sql = "SELECT * FROM person";
//获取SQLQuery对象
SQLQuery sqlQuery = session.createSQLQuery(sql);
//执行查询
List<Object[]> list = sqlQuery.list();
//打印
for (Object[] object : list) {
System.out.println(Arrays.toString(object));
}

条件查询:

//获取Session对象
Session session = HibernateUtil.getCurrentSession();
//获取事务
Transaction tx = session.beginTransaction();
//SQL语句
String sql = "SELECT * FROM person WHERE id = ? and name = ?";
//获取SQLQuery对象
SQLQuery sqlQuery = session.createSQLQuery(sql);
//添加占位符
sqlQuery.setParameter(0, 3);
sqlQuery.setParameter(1, "林某");
//将返回结果设置为Person对象
sqlQuery.addEntity(Person.class);
//执行查询
Person person = (Person) sqlQuery.uniqueResult();
//打印
System.out.println(person.toString());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: