`
反求诸己
  • 浏览: 540830 次
  • 性别: Icon_minigender_1
  • 来自: 湖南娄底
社区版块
存档分类
最新评论

hibernate HQL 模糊查询 3种方式

阅读更多

 

hibernate HQL 模糊查询 3种方式

以下是用 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. }

分享到:
评论

相关推荐

    hql模糊查询hql模糊查询

    下面将详细介绍几种常见的HQL模糊查询方式。 ### 示例1:使用参数绑定的方式进行模糊查询 ```java // 创建HQL查询语句 String hql = "from Subject as s where s.subname like :name and s.subinfo like :info"; /...

    hibernate的HQL的模糊查询

    综上所述,Hibernate的HQL模糊查询是开发中不可或缺的工具,它提供了一种简单而强大的方式来处理数据库的模糊查询需求。通过理解并熟练掌握这些概念,可以更好地利用Hibernate进行数据操作,提升项目的开发效率和...

    Hibernate HQL查询 分页查询 模糊查询.docx

    HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得开发人员能够更加专注于业务逻辑而不用深入到SQL层面。HQL支持各种复杂的查询,...

    hibernate 模糊查询 分页

    当我们想要实现模糊查询时,可以利用`Criteria` API或者`HQL`(Hibernate Query Language)来完成。例如,如果我们要查询一个名为`User`的实体类中所有名字包含"John"的用户,可以这样做: ```java Session session...

    hibernate 中HQL语句查询学习笔记

    **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及关联关系的查询。 ##### 默认数据库表和数据 在本文档...

    hibernate-hql 资料大全

    HQL允许开发者以面向对象的方式编写查询,使得代码更加简洁,易于理解和维护。 在上述描述中,提到了几个使用Hibernate HQL进行数据查询的方法,下面将详细解释: 1. **find(String queryString)**: 这是最基础的...

    struts+hibernate分页 模糊查询

    ### Struts 1.2与Hibernate 3结合实现分页模糊查询 在Web开发领域,Struts框架一直是MVC(Model-View-Controller)架构模式的一个典型代表,它可以帮助开发者更高效地构建出结构清晰、易于维护的应用程序。而...

    hibernate hql语句

    HQL是一种专门为Hibernate设计的查询语言,其语法结构接近于标准SQL,但又具有面向对象的特性。HQL允许开发者以一种更为简洁、直观的方式进行数据库查询操作。与Criteria API相比,HQL提供更丰富的特性和灵活性。 #...

    Hibernate-Criteria_模糊查询

    Hibernate的Criteria API是一种灵活、强大的查询方式,它允许开发者构建复杂的查询条件,而不必直接编写SQL语句。Criteria API基于面向对象的方式进行查询构建,可以动态地添加各种查询条件,包括等值比较、范围查询...

    Hibernate-Criteria 模糊查询

    Hibernate作为一款优秀的Java持久层框架,提供了多种方式来进行数据库操作,其中包括HQL(Hibernate Query Language)、Criteria API以及Native SQL等。其中,Criteria API由于其简洁的API设计和强大的查询能力,受...

    hibernate的hql语句

    【hibernate的HQL语句】是Hibernate框架中用于操作数据库的重要组成部分,它是一种面向对象的查询语言,类似于SQL,但更加强调对象的概念。HQL能够处理复杂的对象关系,如继承、多态和关联,使得在进行SSH(Spring、...

    Hibernate HQL教程

    ### Hibernate HQL 教程知识点总结 #### 1.1 HQL基础 ##### 1.1.1 默认数据库表和数据 - **介绍**: 本文档以`joblog`数据库为例,该数据库包含三个表:`student`(学生表)、`course`(课程表)和`sc`(选课表)。 - **...

    Nhibernate的模糊查询

    对于Nhibernate不直接支持的模糊查询,可以编写自定义的HQL(Hibernate Query Language)来实现。 总结,Nhibernate的模糊查询提供了灵活的API,可方便地在C#代码中完成SQL的`LIKE`操作。然而,使用时要注意性能...

    Hibernate 经常用的一些HQL语句

    HQL是Hibernate框架提供的查询语言,它允许开发者以面向对象的方式进行数据库查询,使代码更具可读性和维护性。下面将详细介绍HQL在实际开发中常用的几种用法。 #### 1. 基本查询 - **全表查询**:`String hql = ...

    NHibernate HQL 条件查询

    在探讨NHibernate HQL条件查询时,我们首先要理解NHibernate框架以及HQL(Hibernate Query Language)的基本概念。NHibernate是一个开放源代码的对象关系映射(ORM)解决方案,它为.NET平台提供了一种将对象模型与...

    ssh框架的模糊查询

    模糊查询是用户输入部分关键词,系统返回匹配结果的一种检索方式。在SSH框架中,这通常通过在Hibernate的HQL(Hibernate Query Language)或者SQL语句中使用LIKE关键字实现。例如,我们可以创建一个方法,在Service...

    NHibernate hql 可用函数,函数大全

    ### NHibernate HQL 可用函数详解 #### 一、查询基本语法与示例 ...以上是NHibernate HQL查询语言的基本使用方法及相关内置函数的详细介绍。通过这些示例,你可以更好地理解和应用HQL来完成数据库操作任务。

    Hibernate3.x总结

    - **模糊查询**:使用 HQL 进行模糊查询。 - **示例代码**: ```java public List<Person> queryByLike(String cond) { String hql = "FROM Person as p WHERE p.name LIKE ?"; Query q = this.session....

    hibernate查询

    在 Hibernate 中进行查询是其核心功能之一,本文将详细介绍 Hibernate 的几种查询方式,包括 HQL (Hibernate Query Language) 查询、QBC (Query By Criteria) 查询以及 QBE (Query By Example) 查询,并结合示例代码...

Global site tag (gtag.js) - Google Analytics