知识大全 hibernate的多条件动态查询
Posted 条件
篇首语:休言女子非英物,夜夜龙泉壁上鸣。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 hibernate的多条件动态查询相关的知识,希望对你有一定的参考价值。
在hibernate中是支持多条件动态查询的 这种问题是非常实用的 比如说你做一个项目要实现一个复合查询
例如有这么一个界面
那么要实现这个查询 对于用户来说他的查询条件可能不健全 有可能只填写其中的 项 那么要实现这个查询 我们可以用hibernate的动态条件查询
下面我写一个例子
我有一张表叫user表
package fish testdao;
import java sql Date;
public class User
int id;
String name;
int age;
Date brithday;
public String getName()
returnname;
public void setName(String name)
this name = name;
public int getAge()
returnage;
public void setAge(int age)
this age = age;
public Date getBrithday()
returnbrithday;
public void setBrithday(Date brithday)
this brithday = brithday;
public int getId()
returnid;
public void setId(int id)
this id = id;
User hbm xml
<?xmlversion= encoding= UTF ?>
<!DOCTYPEhibernate mapping PUBLIC
//Hibernate/HibernateMapping DTD //EN
hiber/hibernate mapping dtd >
<hibernate mapping>
<classname= fish testdao User >
<idname= id type= integer >
<generatorclass= increment ></generator>
</id>
<propertyname= name ></property>
<propertyname= age ></property>
<propertyname= brithday ></property>
</class>
</hibernate mapping>
在XXX cgf xml注册一下
然后我们写一个测试类
package fish domain;
import java sql Date;
import java util List;
import hibernate Criteria;
import hibernate Session;
import hibernate Transaction;
import hibernate criterion DetachedCriteria;
import hibernate criterion Restrictions;
import fish testdao User;
import fish util HibernateSessionFactory;
public class Test
public static void main(String[] args)
// addData();
queryData();
// 添加数据
public static void addData()
Session session = HibernateSessionFactory getSession();
Transaction transaction = session beginTransaction();
transaction begin();
for (int i = ; i < ; i++)
User user = new User();
user setAge( + i);
user setName( 张 + i);
user setBrithday(Date valueOf( ));
session save(user);
mit();
session close();
// 查询数据
public static void queryData()
String outName = 张 ;
int outAge = ;
Date outDate = null;
Session session = HibernateSessionFactory getSession();
DetachedCriteria dc = DetachedCriteria forClass(User class);
if (outName !=null)
dc add(Restrictions eq( name outName));
if (outAge > )
dc add(Restrictions eq( age outAge));
if (outDate !=null)
dc add(Restrictions eq( brithday outDate));
Criteria c = dc getExecutableCriteria(session);
List<User> list = c list();
for (User i : list)
System out println(i getName() + + i getAge());
看看测试类中的查询方法 如果String outName = 张 ;
intoutAge = ;
DateoutDate = null;
这三个条件是通过从前台或者是用户输入的那么就实现了多条件的动态查询
我们看看数据库的信息
显然这个里面有一条记录是符合的 我们看看输出的结果是什么
张
cha138/Article/program/Java/ky/201311/28511相关参考
这几天在学习使用IBATIS突然要使用模糊查询以及动态多个条件查询按照自己的想法试了很久都没解决这个问题 首先是模糊查询的问题开始时我使用如下条件:select*fromuserwherenam
Hibernate的多对一和一对多操作实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Hib
Hibernate本地SQL查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本地SQL查询来
Hibernate复合主键查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Hibernate
Hibernate数据查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! HibernateQu
Hibernate高级查询技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 集合过滤: 对于
Hibernate高级查询实战 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 大家知道在Hibe
Hibernate属性查询简介 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文向大家介绍Hi
Hibernate命名查询NamedQuery 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 例
Hibernate查询方法之探析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! :QBE(Que