Hibernate Criteria实现SQL语句定制.docVIP

  • 10
  • 0
  • 约4.74千字
  • 约 12页
  • 2017-07-05 发布于天津
  • 举报
Hibernate Criteria实现SQL语句定制.doc

Hibernate Criteria对象详解 序言 Hibernate框架是目前JavaEE软件开发的企业主流框架, 学习Hibernate必然要掌握ORM(对象关系映射Object/Relation Mapping创建(Create)、更新(Update)、读取(Read)和删除(Delete)CriteriaSpecification接口规范用来完成面向对象的条件查询,Criteria 就是CriteriaSpecification的子接口。 创建数据库环境 我们以 部门(Department)和员工(Employee) 案例,来讲解Criteria的详细使用 部门表 department 使用mysql5.x数据库 数据库 hibernate3 用户名 root 密码 abc 部门表 employee CREATE TABLE `department` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 员工表 department CREATE TABLE `employee` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) default NULL, `age` int(11) NOT NULL, `birthday` date default NULL, `department_id` int(11) default NULL, PRIMARY KEY (`id`), FOREIGN KEY (`department_id`) REFERENCES `department` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 使用JPA注解配置实体类 部门类 Department 员工类 Employee 使用Crteria查询所有部门和所有员工 查询所有部门 产生的SQL语句 查询所有员工 产生的SQL语句 当session.createCriteria(实体类.class) 就会产生一条 select 所有列 from 表; SQL语句, 查询实体类对应数据表的所有记录, 然后我们就可以在这个Criteria对象上进行条件查询、分页查询、多表关联查询、投影查询、子查询 等一系列操作 ... Criteria SQL定制详解 对查询添加条件对象Criterion org.hibernate.criterion.Criterion是Hibernate提供的一个面向对象查询条件接口,一个单独的查询就是Criterion接口的一个实例, 用于限制Criteria对象的查询, 在Hibernate中Criterion对象的创建通常是通过Restrictions 工厂类完成的。 Restrictions 提供条件查询方法 例如: 1、 查询姓”张”的所有员工信息 产生的SQL 语句 2、 查询年龄大于24的所有员工 产生的SQL语句 3、 查询年龄小于28的 姓“王”的员工 产生的SQL语句 对于多个查询条件, Restrictions 提供了逻辑组合查询方法 and(Criterion lhs, Criterion rhs) 用于生成多个条件and关系SQL语句 or(Criterion lhs, Criterion rhs) 用于生成多个条件or关系SQL语句 not(Criterion expression) 用于查询与条件相反的数据,生成not取反查询语句 分页操作 firstResult和maxResults Criteria 接口提供 用于分页查询的方法,实现数据库SQL物理级别的分页操作 setFirstResult(int firstResult) 设置记录的其实位置 0 代表第一条记录 setMaxResults(int maxResults) 设置查询记录的长度 例如: 我要查询 1-10条件记录 firstResult为0 , maxResult为10 产生的SQL语句 排序操作 Order Hibernate 提供org.hibernate.criterion.Order 用于排序操作 , Criteria 接口提供addOrder(Order order)用于生成排序SQL 例如: 查询所有员工信息,按照年龄

文档评论(0)

1亿VIP精品文档

相关文档