欢迎来到天天文库
浏览记录
ID:39549163
大小:76.50 KB
页数:7页
时间:2019-07-06
《Hibernate对数据库的增删改查的操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Hibernate对于数据库表的操作首先,我们要对Hibernate在eclipse环境下进行布局配置。详情请看Hibernate配置。其次,我们了解几个查询的用法。一、CriteriaQueryCriteriaQuery通过面向对象化的设计,将数据查询条件封装为一个对象,换句话讲CriteriaQuery可以看作是传统SQL的对象化表示。如:Criteriacriteria=session.createCriteria(TUser.class);criteria.add(Expression.eq(“name”,”Erica”));criteri
2、a.add(Expression.eq(“sex”,newInteger(1)));1.Criteria查询表达式Criteria本身只是一个查询器,具体的查询条件需要通过Criteria.add方法添加到Criteria实例中。如前面的例子所示,Expression对象具体描述了查询条件。针对SQL语法,Expression提供了对应的查询限定机制。方法描述Expression.eq对应SQL”field=value”表达式如Expression.eq(“name”,”Erica”);Expression.allEq参数为一个Map对象,其中包含
3、了多个属性-值对应关系。相当于多个Expression.eq关系的叠加。Expression.gt对应SQL”field>value”表达式Expression.ge对应SQL”field>=value”表达式Expression.lt对应SQL”field4、ewInteger(50));Expression.like对应SQL”fieldlikevalue”表达式Expression.in对应SQL”fieldin…”表达式Expression.eqProperty用于比较两个属性之间的值,对应SQL中的”field=field”。如:Expression.eqProperty(“TUser.groupID”,”TGrpup.id”);Expression.gtProperty用于比较两个属性之间的值,对应SQL”field>field”Expression.geProperty用于比较两个属性之间的5、值,对应SQL”field>=field”Expression.ltProperty用于比较两个属性之间的值,对应SQL”field6、.eq(“name”,”Erica”),Expression.eq(“name”,”Emma”));Expression.sql作为补充,本方法提供了原生SQL语法的支持。我们可以通过这个方法直接通过SQL语句限定查询条件下面的代码返回所有名称以”Erica”启始的记录:Expression.sql(“lower({alias}.name)likelower(?)”,”Erica%”,Hibernate.STRING);其中的”(alias)”将由Hibernate在运行期使用当前关联的POJO别名替换。注意Expression各方法中的属性名参数7、(如Express.eq中的第一个参数),这里所谓属性名是POJO中对应实际库表字段的属性名(大小写敏感),而非库表中的实际字段名称。几个查询示例:查询名为“Erica”的用户记录:Criteriacriteria=session.createCriteria(TUser.class);criteria.add(Expression.eq(“name”,”Erica”));查询所有年龄大于18岁的用户记录:Criteriacriteria=session.createCriteria(TUser.class);criteria.add(Expres8、sion.gt(“age”,newInteger(18)));查询所有年龄大于20岁且小于30的用户记录:Criteria
4、ewInteger(50));Expression.like对应SQL”fieldlikevalue”表达式Expression.in对应SQL”fieldin…”表达式Expression.eqProperty用于比较两个属性之间的值,对应SQL中的”field=field”。如:Expression.eqProperty(“TUser.groupID”,”TGrpup.id”);Expression.gtProperty用于比较两个属性之间的值,对应SQL”field>field”Expression.geProperty用于比较两个属性之间的
5、值,对应SQL”field>=field”Expression.ltProperty用于比较两个属性之间的值,对应SQL”field6、.eq(“name”,”Erica”),Expression.eq(“name”,”Emma”));Expression.sql作为补充,本方法提供了原生SQL语法的支持。我们可以通过这个方法直接通过SQL语句限定查询条件下面的代码返回所有名称以”Erica”启始的记录:Expression.sql(“lower({alias}.name)likelower(?)”,”Erica%”,Hibernate.STRING);其中的”(alias)”将由Hibernate在运行期使用当前关联的POJO别名替换。注意Expression各方法中的属性名参数7、(如Express.eq中的第一个参数),这里所谓属性名是POJO中对应实际库表字段的属性名(大小写敏感),而非库表中的实际字段名称。几个查询示例:查询名为“Erica”的用户记录:Criteriacriteria=session.createCriteria(TUser.class);criteria.add(Expression.eq(“name”,”Erica”));查询所有年龄大于18岁的用户记录:Criteriacriteria=session.createCriteria(TUser.class);criteria.add(Expres8、sion.gt(“age”,newInteger(18)));查询所有年龄大于20岁且小于30的用户记录:Criteria
6、.eq(“name”,”Erica”),Expression.eq(“name”,”Emma”));Expression.sql作为补充,本方法提供了原生SQL语法的支持。我们可以通过这个方法直接通过SQL语句限定查询条件下面的代码返回所有名称以”Erica”启始的记录:Expression.sql(“lower({alias}.name)likelower(?)”,”Erica%”,Hibernate.STRING);其中的”(alias)”将由Hibernate在运行期使用当前关联的POJO别名替换。注意Expression各方法中的属性名参数
7、(如Express.eq中的第一个参数),这里所谓属性名是POJO中对应实际库表字段的属性名(大小写敏感),而非库表中的实际字段名称。几个查询示例:查询名为“Erica”的用户记录:Criteriacriteria=session.createCriteria(TUser.class);criteria.add(Expression.eq(“name”,”Erica”));查询所有年龄大于18岁的用户记录:Criteriacriteria=session.createCriteria(TUser.class);criteria.add(Expres
8、sion.gt(“age”,newInteger(18)));查询所有年龄大于20岁且小于30的用户记录:Criteria
此文档下载收益归作者所有