以下是用 hibernate的HQL(面向对象的查询语言)实现模糊查询的3种方式,其中方式一是这三中方式中最理想的方式,至少方式一可以有效的防止由于查询条 件中需要参数的增多导致的代码长度太长出现代码折行的情况(代码太长会给后期的维护和测试带来很大的不便)。但是还有比他更理想的方式,因为方式一在定义 strSQL时使用String ,这就势必会造成当变量过多时strSQL自身太长的问题。一个比较有效的改进办法就是将String 改进为StringBuffer来处理。
方法一:
java 代码
1.public List listUncertainClasses(Object OId) throws Exception{
2. Session session=HibernateUtil.getSessionFactory().getCurrentSession();
3. session.beginTransaction();
4. String strSQL="from Classes as a where a.classno like :name";
5. Query query = session.createQuery(strSQL);
6. query.setString("name", "%"+OId+"%");
7. List result=query.list();
8.for(int i=0;i
9. Classes classes=(Classes)result.get(i);
10. String classname=classes.getClassname();
11. String classno=classes.getClassno();
12. String specName=classes.getSpeciality().getName();
13. String departName=classes.getSpeciality().getDepartment().getName();
14. System.out.println(departName+"\t"+specName+"\t"+classname+"\t"+classno);
15. }
16. session.getTransaction().commit();
17.return result;
18.}
方法二:
java 代码
1.public List listUncertainClasses_01(Object OId) throws Exception{
2. Session session=HibernateUtil.getSessionFactory().getCurrentSession();
3. session.beginTransaction();
4. List result=session.createQuery("from Classes as a where a.classno like '%"+OId+"%'").list();
5.for(int i=0;i
6. Classes classes=(Classes)result.get(i);
7. String classname=classes.getClassname();
8. String classno=classes.getClassno();
9. String specName=classes.getSpeciality().getName();
10. String departName=classes.getSpeciality().getDepartment().getName();
11. System.out.println(departName+"\t"+specName+"\t"+classname+"\t"+classno);
12. }
13. session.getTransaction().commit();
14.return result;
15.}
方法三:
java 代码
1.public List listUncertainClasses_02(Object OId) throws Exception{
2. Session session=HibernateUtil.getSessionFactory().getCurrentSession();
3. session.beginTransaction();
4. List result=session.createQuery("from Classes as a where a.classno like :name").setParameter("pid",OId).list();
5.for(int i=0;i
6. Classes classes=(Classes)result.get(i);
7. String classname=classes.getClassname();
8. String classno=classes.getClassno();
9. String specName=classes.getSpeciality().getName();
10. String departName=classes.getSpeciality().getDepartment().getName();
11. System.out.println(departName+"\t"+specName+"\t"+classname+"\t"+classno);
12. }
13. session.getTransaction().commit();
14.return result;
15.}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/DL88250/archive/2007/10/09/1816121.aspx
分享到:
相关推荐
综上所述,Hibernate的HQL模糊查询是开发中不可或缺的工具,它提供了一种简单而强大的方式来处理数据库的模糊查询需求。通过理解并熟练掌握这些概念,可以更好地利用Hibernate进行数据操作,提升项目的开发效率和...
HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得开发人员能够更加专注于业务逻辑而不用深入到SQL层面。HQL支持各种复杂的查询,...
下面将详细介绍几种常见的HQL模糊查询方式。 ### 示例1:使用参数绑定的方式进行模糊查询 ```java // 创建HQL查询语句 String hql = "from Subject as s where s.subname like :name and s.subinfo like :info"; /...
当我们想要实现模糊查询时,可以利用`Criteria` API或者`HQL`(Hibernate Query Language)来完成。例如,如果我们要查询一个名为`User`的实体类中所有名字包含"John"的用户,可以这样做: ```java Session session...
**HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及关联关系的查询。 ##### 默认数据库表和数据 在本文档...
HQL允许开发者以面向对象的方式编写查询,使得代码更加简洁,易于理解和维护。 在上述描述中,提到了几个使用Hibernate HQL进行数据查询的方法,下面将详细解释: 1. **find(String queryString)**: 这是最基础的...
### Struts 1.2与Hibernate 3结合实现分页模糊查询 在Web开发领域,Struts框架一直是MVC(Model-View-Controller)架构模式的一个典型代表,它可以帮助开发者更高效地构建出结构清晰、易于维护的应用程序。而...
HQL是一种专门为Hibernate设计的查询语言,其语法结构接近于标准SQL,但又具有面向对象的特性。HQL允许开发者以一种更为简洁、直观的方式进行数据库查询操作。与Criteria API相比,HQL提供更丰富的特性和灵活性。 #...
Hibernate的Criteria API是一种灵活、强大的查询方式,它允许开发者构建复杂的查询条件,而不必直接编写SQL语句。Criteria API基于面向对象的方式进行查询构建,可以动态地添加各种查询条件,包括等值比较、范围查询...
Hibernate作为一款优秀的Java持久层框架,提供了多种方式来进行数据库操作,其中包括HQL(Hibernate Query Language)、Criteria API以及Native SQL等。其中,Criteria API由于其简洁的API设计和强大的查询能力,受...
【hibernate的HQL语句】是Hibernate框架中用于操作数据库的重要组成部分,它是一种面向对象的查询语言,类似于SQL,但更加强调对象的概念。HQL能够处理复杂的对象关系,如继承、多态和关联,使得在进行SSH(Spring、...
### Hibernate HQL 教程知识点总结 #### 1.1 HQL基础 ##### 1.1.1 默认数据库表和数据 - **介绍**: 本文档以`joblog`数据库为例,该数据库包含三个表:`student`(学生表)、`course`(课程表)和`sc`(选课表)。 - **...
对于Nhibernate不直接支持的模糊查询,可以编写自定义的HQL(Hibernate Query Language)来实现。 总结,Nhibernate的模糊查询提供了灵活的API,可方便地在C#代码中完成SQL的`LIKE`操作。然而,使用时要注意性能...
在Spring框架与Hibernate技术结合使用时,HQL(Hibernate Query Language)作为对象查询语言被广泛应用于数据查询操作之中。本文将详细解析Spring框架中常用的HQL查询方法及其应用场景。 #### 一、find(String ...
HQL是Hibernate框架提供的查询语言,它允许开发者以面向对象的方式进行数据库查询,使代码更具可读性和维护性。下面将详细介绍HQL在实际开发中常用的几种用法。 #### 1. 基本查询 - **全表查询**:`String hql = ...
在探讨NHibernate HQL条件查询时,我们首先要理解NHibernate框架以及HQL(Hibernate Query Language)的基本概念。NHibernate是一个开放源代码的对象关系映射(ORM)解决方案,它为.NET平台提供了一种将对象模型与...
模糊查询是用户输入部分关键词,系统返回匹配结果的一种检索方式。在SSH框架中,这通常通过在Hibernate的HQL(Hibernate Query Language)或者SQL语句中使用LIKE关键字实现。例如,我们可以创建一个方法,在Service...
### NHibernate HQL 可用函数详解 #### 一、查询基本语法与示例 ...以上是NHibernate HQL查询语言的基本使用方法及相关内置函数的详细介绍。通过这些示例,你可以更好地理解和应用HQL来完成数据库操作任务。
- **模糊查询**:使用 HQL 进行模糊查询。 - **示例代码**: ```java public List<Person> queryByLike(String cond) { String hql = "FROM Person as p WHERE p.name LIKE ?"; Query q = this.session....
在 Hibernate 中进行查询是其核心功能之一,本文将详细介绍 Hibernate 的几种查询方式,包括 HQL (Hibernate Query Language) 查询、QBC (Query By Criteria) 查询以及 QBE (Query By Example) 查询,并结合示例代码...