大家都知道使用本地SQL进行模糊查询用关键字 LIKE 对于在Hibernate里怎么实现呢?
一、绑定参数法:
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 中
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 :name").setParameter("pid",OId).list();
Hibernate模糊查询参数化的问题
from Project o where 1=1 and o.isDeleted=? and o.prjName like ?; query.setString(i, "%"+实际查询条件+"%"); 注意参数中第一个百分号的左边与第二个百分号的右边都没有单引号,这和平时写SQL语句是不同的,要特别关注一下。另外还应该了解一下俩点的区别
HQL:from Project o where 1=1 and PRJ_NAME like '%strCond%';//这里PRJ_NAME 应该是数据库表中的实际字段名
HQL:from Project o where 1=1 and o.PRJ_NAME like '%strCond%';//这里PRJ_NAME 应该是实体类的属性名
HQL:from Project o where 1=1 and PRJ_NAME like '?';//这里的?不视为占位参数HQL:from Project o where 1=1 and PRJ_NAME like ?;//设置参数值时会自动在参数值两边加上单引号。
分享到:
相关推荐
本篇文章将深入探讨如何使用Hibernate实现模糊查询和分页功能,这对于任何需要处理大量数据的应用程序来说都是至关重要的技能。 首先,让我们了解Hibernate的核心概念。Hibernate是一个开源的JPA(Java Persistence...
- 在DAO层的`findItemsByPage`方法中添加条件判断,使用LIKE实现模糊查询。 2. **修改Action层**: - 在Action层中增加接收模糊查询关键字的参数。 - 调用DAO层的方法时传入关键字。 3. **视图层处理**: - 在...
在Hibernate中,`Criteria`接口支持使用`Expression`类及其子类来实现模糊查询。例如,使用`like`表达式来进行模糊匹配: ```java Criteria criteria = session.createCriteria(User.class); criteria.add...
通过上述介绍,我们可以看到,利用Hibernate的Criteria API进行模糊查询不仅提供了极大的灵活性,还极大地简化了查询语句的编写过程,使得开发者能够更加专注于业务逻辑的实现。当然,随着项目的复杂度增加,可能还...
通过将用户输入的关键字转化为HQL的`like`表达式,可以实现动态的、灵活的模糊查询,提高用户体验。 五、注意事项 - 使用HQL模糊查询时,注意防止SQL注入,确保传入的参数是安全的。 - 大量的模糊查询可能导致性能...
在Hibernate中,可以通过`like`操作符结合通配符实现模糊查询: ```java String hql = "from User as user where user.id like :id"; factory = DBHelper.getSessionFactory(); Session session = factory....
在`IQueryOver`中,你可以使用`WhereRestriction.On()`方法配合`NHibernate.Criterion.Restrictions`类的`Like`方法来实现模糊查询。例如: ```csharp var query = session.QueryOver() .Where(Restrictions....
此外,Spring还可以与Hibernate集成,实现数据访问层的事务管理。 **Hibernate** Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作,将Java对象和数据库记录进行映射,使得开发者可以使用面向对象的...
在这个场景中,我们将深入探讨如何利用SSH框架实现模糊查询、分页以及增删改查(CRUD)功能,并与Oracle 10g数据库进行交互。 **一、SSH框架简介** SSH框架由三个主要部分组成: 1. **Struts2**:这是一个基于MVC...
5. **Action与Service层交互**: 在Action中调用Service层的方法,传递用户输入的搜索条件,Service层再通过Hibernate执行模糊查询,并将结果返回给Action,最后由Action将结果显示在页面上。 6. **错误处理与事务...
在这个主题中,我们将探讨如何在SSH框架下实现登录功能、增删改查操作以及分页和模糊查询。 1. **登录功能实现**: - Struts2作为前端控制器,处理用户的HTTP请求,通过Action类接收登录表单的数据。 - Spring...
在"ssh框架的模糊查询"这个主题中,我们将深入探讨如何在SSH框架下实现对数据的增删改查(CRUD)操作,以及模糊查询和分页显示功能。 首先,让我们来理解增删改查的基础。在SSH框架中,Struts2作为前端控制器处理...
在SSH框架中,我们可以利用Hibernate的HQL(Hibernate Query Language)或JPA(Java Persistence API)的 Criteria API 来实现模糊查询。例如,我们可能在用户搜索时,使用LIKE关键字配合通配符%来找到包含特定字串...
Hibernate 模板方法是 Hibernate 框架中用于简化数据访问操作的重要工具,它提供了一系列预定义的方法,方便开发者在实际的软件开发中执行常见的数据库查询和操作。这些方法主要集中在 `HibernateTemplate` 类中,...
例如,使用Critiera的createCriteria方法配合Restrictions的like方法,就可以实现模糊查询。同时,Struts2的Action类中也可以使用注解定义方法,接收来自页面的参数,然后调用Service层的方法进行查询。 分页功能...
在Hibernate中,我们可以使用LIKE操作符配合通配符%实现模糊查询。例如,如果用户输入的关键词为"test",我们的查询语句可以写成`from Table where column like '%test%'`。在Struts中,我们可以把关键词作为参数...
在模拟百度模糊查询的场景中,Struts2接收Ajax请求,调用Spring的服务方法,然后将返回的数据转换为JSON格式,以便前端JavaScript处理。 **4. Hibernate ORM框架** Hibernate是一个对象关系映射(ORM)工具,它简化...
1. **模糊匹配**:通过`MatchMode`和`FuzzyOptions`可以实现模糊匹配,提高用户搜索的灵活性。 2. **排序**:使用`Sort`对象,可以根据相关性或其他字段对结果进行排序。 3. **过滤和分页**:可以添加`...