用户登录
用户注册

分享至

hibernate多条件模糊查询

  • 作者: 冰雨云
  • 来源: 51数据库
  • 2020-10-27

一、绑定参数法:


Sql代码

Session session=HibernateUtil.getSessionFactory

().getCurrentSession();

session.beginTransaction();

String strSQL="from Classes as a where a.classno like :name";

Query query = session.createQuery(strSQL);

query.setString("name", "%"+OId+"%");

List result=query.list();

[sql] view plaincopyprint?

Session session=HibernateUtil.getSessionFactory  ().getCurrentSession();   

session.beginTransaction();  

String strSQL="from Classes as a where a.classno like :name";  


Query query = session.createQuery(strSQL);  


query.setString("name", "%"+OId+"%");  


List result=query.list();  

Session session=HibernateUtil.getSessionFactory ().getCurrentSession(); session.beginTransaction(); 

String strSQL="from Classes as a where a.classno like :name"; Query query = session.createQuery(strSQL); query.setString("name", "%"+OId+"%");       

List result=query.list();

二、在面向对象的查询语言 HQL 中


Sql代码

Session session = HibernateUtil.getSessionFactory().getCurrentSession();

session.beginTransaction();

List result=session.createQuery("from Classes as a where a.classno

like " '%"+OId+"%'").list();

[sql] view plaincopyprint?

Session session = HibernateUtil.getSessionFactory().getCurrentSession();   

session.beginTransaction();  

List result=session.createQuery("from Classes as a where a.classno   like " '%"+OId+"%'").list();  

Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 

session.beginTransaction(); 

List result=session.createQuery("from Classes as a where a.classno like " '%"+OId+"%'").list();

三、模糊查询参数化


Sql代码

Session session=HibernateUtil.getSessionFactory().getCurrentSession();

session.beginTransaction();

List result=session.createQuery("from Classes as a where a.classno

like :name").setParameter("pid",OId).list();

[sql] view plaincopyprint?

Session session=HibernateUtil.getSessionFactory().getCurrentSession();  

session.beginTransaction();  

List result=session.createQuery("from Classes as a where a.classno    like :name").setParameter("pid",OId).list();

0

最新回答 (3条回答)

头像

上瘾i1级

2016-10-18 回答

用不用框架思路都差不多 遍历所有需要判断的属性 如果有值就添加条件  无值就下一个



for(属性 xxx:全部属性)

{

    if(xxx!=null)

        criteria.add(restrictions.like(xxx,yyyy));

}

criteria.list();

10

头像

匿名用户1级

2011-05-14 回答

// 条件查询用户信息,

public List<User> searchUser(final String username, final int userId,

final String lastVisitIP, final Date fromCreateDate,

final Date toCreateDate, final Date fromVisitDate,

final Date toVisitDate, final String isdesc) {

List<User> users = (List<User>) this.hibernateTemplate

.execute(new HibernateCallback() {

public Object doInHibernate(Session session)

throws HibernateException, SQLException {

Criteria cr = session.createCriteria(User.class);

System.out.println("用户ID" + userId);

if (userId > 0) {

cr.add(Expression.eq("id", userId));

} else {

if (username != null && !username.equals("")) {

cr.add(Expression.like("username", "%"

+ username + "%"));

}

if (lastVisitIP != null && !lastVisitIP.equals("")) {

cr.add(Expression.like("lastVisitIP",

lastVisitIP + "%"));

}

System.out.println("时间" + fromCreateDate + " || "

+ toCreateDate + " || " + fromVisitDate

+ " || " + toVisitDate);

Date fromdate = new Date();

fromdate.setYear(02);

Date todate = new Date();

todate.setYear(998);

if (!fromCreateDate.before(fromdate)

&& !toCreateDate.after(todate)) {

cr.add(Restrictions.between("registTime",

fromCreateDate, toCreateDate));

}

if (!fromVisitDate.before(fromdate)

&& !toVisitDate.after(todate)) {


cr.add(Restrictions.between("lastVisitTime",

fromVisitDate, toVisitDate));

}


if (isdesc != null && !isdesc.equals("")) {

if (isdesc.equals("true")) {

cr.addOrder(Order.desc("id"));

} else {

cr.addOrder(Order.asc("id"));


}

}


}


return cr.list();


}

});

for (User user : users) {

System.out.println(user.getUsername() + "  封妻荫子" + user.getId());

}

return users;

}


曾经做的多条件查询,觉得有用的,就研究下吧!

这是模糊的 cr.add(Expression.like("username", "%" + username + "%"));


软件
前端设计
程序设计
Java相关