Hibernate学习——查询方式(HQL、Criteria、SQL)

版权声明: https://blog.csdn.net/hu18315778112/article/details/84767381

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();  // 查询并返回结果

猜你喜欢

转载自blog.csdn.net/hu18315778112/article/details/84767381