Hibernate的三种api对象查询

本文介绍了Hibernate的三种API对象查询方式:Query对象使用HQL语句进行查询;Criteria对象无需写语句,直接调用方法;SQLQuery对象则允许直接写SQL,但查询结果需手动转换为实体类对象。
摘要由CSDN通过智能技术生成

Hibernate的查询除了默认的使用session进行查询,还额外的提供了三种对象的查询

1.Query对象

2.Criteria对象

3.SQLQuery对象

一:Query对象进行查询

使用Query对象进行查询的时候,不需要写标准的 sql 语句,写的是 hql(hibernate query language)语句,sql 语句和 hql 语句的区别是:sql 语句是对数据库中的表和字段进行操作,而 hql 语句是对表对应的实体类以及实体类中的属性进行操作,select * from 表名 变为 from 实体类

操作:

创建 Query 对象,调用 Query 对象的方法

先获取到session,通过 session 对象获取到 Query 对象

Query query = session.createQuery( hql 语句)

再执行 Query 对象中的 list 方法,获取所有的记录

List<T> list = query.list

例:

Query query = session.createQuery("from User")

List<User> list = query.list

二:Criteria对象进行查询

使用 Criteria 对象进行查询的时候,不需要写语句,直接调用 Criteria 对象的方法实现。在创建 Criteria 对象的时候,需要传入实体类,对那个表进行操作,就传入哪个表对应的实体类。

操作:

创建 Criteria 对象,调用 Criteria 对象的方法

通过 session 获取到 Criteria 对象

Criteria criteria = session.createCriteria(实体类.class)

执行 Criteria 对象的 list 方法

List<T> list = criteria.list()

例:

Criteria criteria = session.createCriteria(User.class)

List<User> list = criteria.list()

三:SQLQuery对象进行查询

当使用 SQLQuery 对象进行查询的时候,写的就是普通的 sql 语句,但是当使用 SQLQuery 对象执行查询的时候,返回的 list 集合中是一个个的数组,而不是实体类的对象,需要我们进行其他操作,将数组转换成对象

操作:

SQLQuery sqlQuery = session.createSQLQuery("select * from t_user")

sqlQuery.addEntity(User.class)

List<User> list = sqlQuery.list()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值