Hibernate学习笔记之查询

hibernate提供了两中查询方式,Criteria,HQL以及SQL。


Criteria以面向对象的方式进行数据库查询操作。

通过Criteria criteria=session.createCriteria(Userbean.class);来获取实例。

Criteria生命周期与Session相同,一旦Session被销毁,那么Criteria就得重新构造。

DetachedCriteria是Criteria一种新的实现,可以独立于Session存在。

在需要查询的时候使用如下方式获得实例:

DetachedCriteria detachedCriteria=DetachedCriteria.forClass(Userbean.class);
Criteria criteria=detachedCriteria.getExecutableCriteria(session);


Criteria是一个查询容器,通过criteria.add方法为其添加查询条件。

比如要添加id=2这个查询条件:criteria.add(Expression.eq("id",2L));

更多api如下:

记录排序criteria.addOrder

分组与统计criteria.setProjection


HQL

一种更加灵活的查询方式,使用和SQL类似。

String hql="from Userbean";
Query query=session.createQuery(hql);
List<Userbean> list=query.list();

上面语句会查询Userbean以及其子类多映射表的所有数据。


查询属性,如果需要查询Userbean中的某个或几个属性:

		String hql="select user.loginName from Userbean user";
		Query query=session.createQuery(hql);
		List<String> list=query.list();
		for (String loginName : list) {
			System.out.println(loginName);
		}

hibernate3中HQL还可以用来执行更新或删除。

String hql="update Userbean set loginName=test where id =1";


如果不希望代码与HQL耦合,可以使用配置HQL的方式。

在相应的.hbm.xml中配置query

<query name="queryById">
from Userbean user where user.id=:id
</query>

:id为站位。


配置好后通过

Query query=session.getNamedQuery("queryById");
query.setParameter("id",2L);

使用。


SQL

Hibernate也支持使用原生SQL进行操作,同样这种方式也可以使用配置SQL的方式避免代码与SQL耦合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值