欢迎来到天天文库
浏览记录
ID:10006251
大小:590.00 KB
页数:12页
时间:2018-05-20
《hibernate criteria实现sql语句定制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、HibernateCriteria对象详解1.序言Hibernate框架是目前JavaEE软件开发的企业主流框架,学习Hibernate必然要掌握ORM(对象关系映射Object/RelationMapping)的概念思想,Hibernate拥有完全的ORM理念,我们在操作数据库时,可以通过面向对象的方式就可以完成数据库的CRUD(创建(Create)、更新(Update)、读取(Read)和删除(Delete))操作。企业在使用Hibernate进行软件开发进行数据查询时,主要基于HQL(Hibernate面向对象的查询语言,语法类似SQL)、Criteria(面向对象的条件查询对象)
2、、SQL(原生态SQL语句)几种方式,本文重点讲解Criteria这种完全面向对象编程查询方式,详细分析Crieria各种使用与SQL生成关系。2.Criteria牛刀小试Criteria是一个完全面向对象,可扩展的条件查询API,通过它完全不需要考虑数据库底层如何实现、SQL语句如何编写,是Hibernate框架的核心查询对象。Hibernate定义了CriteriaSpecification接口规范用来完成面向对象的条件查询,Criteria就是CriteriaSpecification的子接口。2.1.创建数据库环境我们以部门(Department)和员工(Employee)案例,
3、来讲解Criteria的详细使用部门表department使用mysql5.x数据库数据库hibernate3用户名root密码abc部门表employeeCREATETABLE`department`(`id`int(11)NOTNULLauto_increment,`name`varchar(255)defaultNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;员工表departmentCREATETABLE`employee`(`id`int(11)NOTNULLauto_increment,`name`varchar(
4、255)defaultNULL,`age`int(11)NOTNULL,`birthday`datedefaultNULL,`department_id`int(11)defaultNULL,PRIMARYKEY(`id`),FOREIGNKEY(`department_id`)REFERENCES`department`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;1.1.使用JPA注解配置实体类部门类Department员工类Employee1.1.使用Crteria查询所有部门和所有员工1.1.1.查询所有部门产生的SQL语句1.1.2.查询所有员
5、工产生的SQL语句当session.createCriteria(实体类.class)就会产生一条select所有列from表;SQL语句,查询实体类对应数据表的所有记录,然后我们就可以在这个Criteria对象上进行条件查询、分页查询、多表关联查询、投影查询、子查询等一系列操作...1.CriteriaSQL定制详解1.1.对查询添加条件对象Criterionorg.hibernate.criterion.Criterion是Hibernate提供的一个面向对象查询条件接口,一个单独的查询就是Criterion接口的一个实例,用于限制Criteria对象的查询,在Hibernate中C
6、riterion对象的创建通常是通过Restrictions工厂类完成的。Restrictions提供条件查询方法例如:1、查询姓”张”的所有员工信息产生的SQL语句2、查询年龄大于24的所有员工产生的SQL语句3、查询年龄小于28的姓“王”的员工产生的SQL语句对于多个查询条件,Restrictions提供了逻辑组合查询方法and(Criterionlhs,Criterionrhs)用于生成多个条件and关系SQL语句or(Criterionlhs,Criterionrhs)用于生成多个条件or关系SQL语句not(Criterionexpression)用于查询与条件相反的数据,生成
7、not取反查询语句1.1.分页操作firstResult和maxResultsCriteria接口提供用于分页查询的方法,实现数据库SQL物理级别的分页操作setFirstResult(intfirstResult)设置记录的其实位置0代表第一条记录setMaxResults(intmaxResults)设置查询记录的长度例如:我要查询1-10条件记录firstResult为0,maxResult为10产生的SQL语句1.1.排序操
此文档下载收益归作者所有