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

hql的三种查询方式模糊查询(转)

阅读更多

Hibernate 中实现模糊查询

1 HQL 查询语句

String hql = "from Subject as s where s.subname like :name and s.subinfo like :info"; // 调用 session 的获得数据列表方法,传递 HQL 查询语句
Query query = session.createQuery(hql);
query.setString("name","%"+name+"%");
query.setString("info","%"+info+"%");

2 HQL 查询语句(查询条件只能为英文或数字,汉字在传递到 hibernate 内部时出现乱码问题)

String hql = "from Subject as s where s.subname like '%"+name+"%' and s.subinfo like '%"+info+"%'" // 调用 session 的获得数据列表方法,传递 HQL 查询语句

Query query = session.createQuery(hql);

注: Subject 为数据库表 subject 映射的类;它有相应的属性 subname subinfo 及相应的 get set 方法; sub Subject 的一个实例化对象。

 

/*********

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();  

分享到:
评论

相关推荐

    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支持各种复杂的查询,...

    Spring中常用的hql查询方法

    该方法支持通过参数化的方式执行查询,即可以向HQL语句中添加单个参数值。这对于简单的条件查询非常有用。 **示例代码**: ```java List<User> userList = this.getHibernateTemplate().find("from bean.User u ...

    NHibernate HQL 条件查询

    在NHibernate中,除了HQL之外,还提供了另一种查询方式——QBC(Query By Criteria)。QBC是一种基于API的查询构建方法,它通过一系列的API调用来构造查询条件,相比于HQL,QBC更加强调类型安全和延迟绑定,使得查询...

    hibernate 中HQL语句查询学习笔记

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

    HQL语句详解Select/update/deletefromwhere...

    在探讨HQL(Hibernate Query Language)时,我们首先要了解它是一种用于Hibernate框架中的查询语言,其语法结构与标准SQL查询语言非常相似,但又针对对象关系映射(ORM)进行了优化。本文将详细介绍HQL的基本用法...

    03-HQL实用技术.pdf

    - **任务**: 包括实现基于标题和面积的租房信息查询、优化用户登录验证、多条件模糊查询租房信息以及租房信息分页显示等。 - **目标**: 掌握HQL数据查询技术、实体查询、属性查询、参数绑定、查询排序、查询分组及...

    HQL简易介绍(DOC文档)

    总结来说,HQL是Hibernate中用于对象-关系映射查询的强大工具,它简化了与数据库的交互,允许开发者以更面向对象的方式处理数据查询、更新和删除操作,提高了代码的可读性和可维护性。理解并熟练掌握HQL是每个使用...

    hibernate-hql 资料大全

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

    Nhibernate的模糊查询

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

    ssh框架的模糊查询

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

    Hibernate-Criteria_模糊查询

    Criteria API基于面向对象的方式进行查询构建,可以动态地添加各种查询条件,包括等值比较、范围查询、模糊查询等,使得查询操作更加直观和易于管理。 ### 模糊查询的意义 模糊查询是数据库操作中常见的一种需求,...

    hibernate 模糊查询 分页

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

    HQL语言大全 跳楼分值

    HQL(Hibernate Query Language)是Hibernate框架中的对象关系映射查询语言,它是对SQL的面向对象的封装,使得开发者可以使用面向对象的方式来查询数据库。HQL的强大在于它允许开发者以类和对象的角度来思考数据操作...

    SSH+模糊查询+分页+增删改查

    模糊查询是在数据库中进行的一种查询方式,允许用户使用通配符来搜索部分或不精确的关键词。在SSH框架中,我们可以利用Hibernate的HQL(Hibernate Query Language)或JPA(Java Persistence API)的 Criteria API 来...

    ssh框架实现登录增删改查和分页怎样实现模糊查询

    - 在Service层,可以使用Hibernate的`like()`函数或在HQL中使用`%`通配符构建模糊查询语句。 - 例如,如果用户搜索关键词"张三",查询语句可能是`from User where username like '%张三%'`。 - 注意在实际开发中...

    Hibernate 经常用的一些HQL语句

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

    模糊查询示例

    在IT行业中,模糊查询是一种非常实用的技术,尤其是在数据库管理和数据检索方面。模糊查询允许用户使用通配符或者不精确的关键词来搜索数据,这在处理大量数据时特别有用,因为用户可能记不清确切的词句或者关键字。...

    NHibernate hql 可用函数,函数大全

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

Global site tag (gtag.js) - Google Analytics