Hibernate框架的批量查询有三种实现方式:
-
HQL
-
Criteria
-
SQL
这三种方式无论过程有什么不同,最终结果都是通过sql语句实现查询操作。
HQL是Hibernate框架封装好的一种查询语言
基本操作:
// String hql="select * from com.huhu.domain.Customer "; // 书写HQL语句
String hql="from com.huhu.domain.Customer ";
// String hql="from Customer ";
Query query = session.createQuery(hql); // 根据HQL语句创建Query 查询操作对象
List<Customer> list = query.list(); // 查询并返回集合
上面的操作就是查询数据库中所有 Customer的信息。如果前面是select * (查询所有),则可以省略不写。
- 注意:HQL语句中,不会出现表的任何表名、列名等字段信息,而是出现对象的实体类名和属性名,HIbernate会根据配置文件中的配置来转换为对应的表名和列名,如果实体类名在项目中没有与其重复的类,可以简写实体类名,而不写全包名
Criteria查询(无语句查询方式)
基本操作:
Criteria criteria = session.createCriteria(Customer.class); // 创建面向对象查询对象,注意:此种创建方法已经过时,新方法还在学习中-- -.- --
List<Customer> list = criteria.list(); // 查询所有对象信息并返回集合
以上同样是实现查询数据库中所有 Customer的信息。当然还可以添加查询条件(相当于sql中的where):如
criteria.add(Restrictions.eq("cust_id" , 1l )); // 查询id为1的Customer对象(因为cust_id类型为Long所以写1l)
获取自以下页面:https://www.cnblogs.com/deng-cc/p/6428599.html
Sql查询就写个例子吧,不多说:
基本操作:
String sql = "select * from cst_customer "; // 创建sql查询语句
SQLQuery query = session.createSQLQuery(sql); // 根据sql语句创建查询方式
query.addEntity(Customer.class); // 添加查询对象
List<Customer> list = query.list(); // 查询并返回结果