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());
相关文章推荐
- Spring Hibernate sqlquery 查询结果 缓存问题
- Hibernate的createSQLQuery查询的问题
- hibernate 的createSQLQuery()查询 及 标量查询 及 存储过程查询
- hibernate 用SQLQuery/HQL查询的 查询 记录是否存在。
- 关于Hibernate createSQLQuery模糊查询结果和数据库里查询结果不一致的问题
- jpa或bernate使用原生sql进行关联查询org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join
- Hibernate HQL与Native_SQL_查询_Query接口_iterate方法
- Hibernate的createSQLQuery查询的小例子
- hibernate使用HibernateCallback 回调的方法查询SQL时could not execute query--作怪的别名
- Hibernate createSQLQuery 查询Oracle char类型结果为一个字符解决方法汇总
- Hibernate HQL与Native_SQL_查询_Query接口_list方法
- hibernate查询某一个对象后,执行createSQLQuery查询出现的问题
- Hibernate的createSQLQuery查询的问题
- Hibernate HQL与Native_SQL_查询_Query接口_分页
- Hibernate SQLQuery查询返回空List,在mysql命令下直接执行sql语句可以正常得到记录
- Hibernate的createSQLQuery 查询数据库类型为char的字段时要注意
- Hibernate HQL与Native_SQL_查询_Query接口_获取唯一记录
- Hibernate HQL与Native_SQL_查询_Query接口_选择list方法和iterate方法
- Hibernate的createSQLQuery 查询数据库类型为char的字段时要注意
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1