J2EE框架学习——Hibernate(一)

Hibernate重新开始学习,这一部分对于查询以及更新数据库。

数据查询与检索是 Hibernate 中的一个亮点。相对其他 ORM 实现而言,Hibernate提供了灵活多样的查询机制。其中包括:

1. Criteria Query

2. Hibernate Query Language (HQL)

3. SQL

首先讲一下Criteria Query:

Criteria Query 通过面向对象化的设计,将数据查询条件封装为一个对象。简单来讲,Criteria Query 可以看作是传统 SQL 的对象化表示,如:
Criteria criteria = session.createCriteria(TUser.class);
criteria.add(Expression.eq("name","Erica"));
criteria.add(Expression.eq("sex",new Integer(1)));

Criteria 本身只是一个查询容器,具体的查询条件需要通过 Criteria.add方法添加到 Criteria 实例中。
[table]
|Expression.eq|对应 SQL“field = value”表达式。如 Expression.eq("name","Erica")
|Expression.allEq|参数为一个 Map 对象,其中包含了多个属性-值对应关系。相当于多个 Expression.eq 关系的叠加
|Expression.gt|对应 SQL 中的 “field > value ” 表达式
|....|....
[/table]

Criteria 提供了更加符合面向对象编程模式的查询封装模式。不过, HQL(Hibernate
Query Language)提供了更加强大的功能,在官方开发手册中,也将 HQL 作为推荐的查询
模式。
相对 Criteria,HQL 提供了更接近传统 SQL 语句的查询语法,也提供了更全面的特性。
最简单的一个例子:
String hql = "from org.hibernate.sample.TUser";
Query query = session.createQuery(hql);
List userList = query.list();

上面的代码将取出 TUser 的所有对应记录。
如果我们需要取出名为“Erica”的用户的记录,类似 SQL,我们可以通过 SQL 语句加
以限定:
String hql ="from org.hibernate.sample.TUser as user where user.name='Erica'";
Query query = session.createQuery(hql);
List userList = query.list();

其中我们新引入了两个子句“as” “where” as 子句为类名创建了一个别名, where和
子句指定了限定条件。
HQL 子句本身大小写无关,但是其中出现的类名和属性名必须注意大小写区分。
关于HQL, Hibernate 官方 开发手 册中已 经提供了 极其详尽 的说明 和示例 ,详 见Hibernate 官方开发手册(Chapter 11)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值