以下是用hibernate的HQL(面向对象的查询语言)实现模糊查询的3种方式,其中方式一是这三中方式中最理想的方式,至少方式一可以有效的防止由于查询条件中需要参数的增多导致的代码长度太长出现代码折行的情况(代码太长会给后期的维护和测试带来很大的不便)。但是还有比他更理想的方式,因为方式一在定义strSQL时使用String ,这就势必会造成当变量过多时strSQL自身太长的问题。一个比较有效的改进办法就是将String 改进为StringBuffer来处理。
方法一:
java 代码
- public List<Classes> listUncertainClasses(Object OId) throws Exception{
- 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();
- for(int i=0;i<result.size();i++){
- Classes classes=(Classes)result.get(i);
- String classname=classes.getClassname();
- String classno=classes.getClassno();
- String specName=classes.getSpeciality().getName();
- String departName=classes.getSpeciality().getDepartment().getName();
- System.out.println(departName+"\t"+specName+"\t"+classname+"\t"+classno);
- }
- session.getTransaction().commit();
- return result;
- }
方法二:
java 代码
- public List<Classes> listUncertainClasses_01(Object OId) throws Exception{
- Session session=HibernateUtil.getSessionFactory().getCurrentSession();
- session.beginTransaction();
- List result=session.createQuery("from Classes as a where a.classno like '%"+OId+"%'").list();
- for(int i=0;i<result.size();i++){
- Classes classes=(Classes)result.get(i);
- String classname=classes.getClassname();
- String classno=classes.getClassno();
- String specName=classes.getSpeciality().getName();
- String departName=classes.getSpeciality().getDepartment().getName();
- System.out.println(departName+"\t"+specName+"\t"+classname+"\t"+classno);
- }
- session.getTransaction().commit();
- return result;
- }
方法三:
java 代码
- public List<Classes> listUncertainClasses_02(Object OId) throws Exception{
- Session session=HibernateUtil.getSessionFactory().getCurrentSession();
- session.beginTransaction();
- List result=session.createQuery("from Classes as a where a.classno like :name").setParameter("pid",OId).list();
- for(int i=0;i<result.size();i++){
- Classes classes=(Classes)result.get(i);
- String classname=classes.getClassname();
- String classno=classes.getClassno();
- String specName=classes.getSpeciality().getName();
- String departName=classes.getSpeciality().getDepartment().getName();
- System.out.println(departName+"\t"+specName+"\t"+classname+"\t"+classno);
- }
- session.getTransaction().commit();
- return result;
- }
分享到:
相关推荐
HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得开发人员能够更加专注于业务逻辑而不用深入到SQL层面。HQL支持各种复杂的查询,...
HQL是一种面向对象的查询语言,它的语法结构与SQL类似,但更关注于对象和实体,而不是数据库表和列。HQL允许开发者直接操作Java对象,避免了直接编写SQL语句的麻烦,并且支持跨数据库的移植性。 二、HQL模糊查询...
HQL是Hibernate框架提供的一种面向对象的查询语言,它允许开发人员以一种更接近于面向对象的方式进行数据查询操作。模糊查询作为HQL中的一项重要功能,主要用于处理那些不完全确定的数据检索需求,如用户可能只记得...
**HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及关联关系的查询。 ##### 默认数据库表和数据 在本文档...
Hibernate HQL,全称为Hibernate Query Language,是Hibernate框架中用于操作对象关系映射(ORM)的查询语言。它类似于SQL,但设计目的是针对Java对象,而不是数据库表。HQL允许开发者以面向对象的方式编写查询,...
HQL是一种专门为Hibernate设计的查询语言,其语法结构接近于标准SQL,但又具有面向对象的特性。HQL允许开发者以一种更为简洁、直观的方式进行数据库查询操作。与Criteria API相比,HQL提供更丰富的特性和灵活性。 #...
【hibernate的HQL语句】是Hibernate框架中用于操作数据库的重要组成部分,它是一种面向对象的查询语言,类似于SQL,但更加强调对象的概念。HQL能够处理复杂的对象关系,如继承、多态和关联,使得在进行SSH(Spring、...
HQL是Hibernate框架提供的查询语言,它允许开发者以面向对象的方式进行数据库查询,使代码更具可读性和维护性。下面将详细介绍HQL在实际开发中常用的几种用法。 #### 1. 基本查询 - **全表查询**:`String hql = ...
Hibernate 3是Hibernate ORM框架的一个版本,它支持面向对象编程语言特性与关系型数据库之间的映射,从而使得开发者可以通过简单的对象操作而不是复杂的SQL语句来进行数据库操作。其主要特点包括: 1. **对象关系...
HQL(Hibernate Query Language)是Hibernate框架中的对象关系映射查询语言,它是对SQL的面向对象的封装,使得开发者可以使用面向对象的方式来查询数据库。HQL的强大在于它允许开发者以类和对象的角度来思考数据操作...
HQL 查询是基于 SQL 的一种面向对象的查询语言,它可以实现复杂的查询操作,同时保持代码的简洁性和可读性。 **特点:** - **面向对象**:使用 HQL 可以以面向对象的方式编写 SQL 语句。 - **语法简洁**:与原生 ...
HQL,全称Hibernate Query Language,是Hibernate框架中推荐的主要查询语言。它是面向对象的,设计用于处理持久化对象的查询,同时借鉴了SQL的语法结构,使得开发人员能够以更接近数据库操作的方式进行数据查询。HQL...
而HQL则是NHibernate提供的一种查询语言,它允许开发人员使用类似于SQL的语法来查询数据库,同时保持了面向对象的特性。 ### NHibernate HQL条件查询详解 #### QBC(Query By Criteria)与HQL对比 在NHibernate中...
Hibernate提供了一种灵活的查询语言——HQL(Hibernate Query Language),类似于SQL,但面向对象。此外,还可以使用 Criteria API 或 JPA 的 Query API 进行更复杂的查询。以模糊查询为例,我们可以通过Session的...
HQL 是 Hibernate 提供的面向对象的查询语言,它允许开发者以类和属性而非表和列进行查询。 2. `find(String queryString, Object value)` 和 `find(String queryString, Object[] values)`: 这两个方法用于带有...
Hibernate提供了HQL(Hibernate Query Language),这是一种面向对象的查询语言,类似于SQL。创建一个`Query`对象,如`query = session.createQuery(counthql)`,然后调用`query.list()`来执行查询并获取结果列表。...
4. **查询语言**:Hibernate Query Language (HQL) 是一种面向对象的查询语言,类似于SQL,但它是针对对象而非表格。此外,Criteria API和 CriteriaBuilder 提供了更高级的查询方式。 5. **缓存机制**:Hibernate...
HQL 是 Hibernate 自己的查询语言,它允许开发者用面向对象的方式来写查询,而不仅仅是基于数据库表。HQL 与 SQL 相似,但处理的是对象和类,而不是表格和列。 本章的任务主要集中在使用 Hibernate 进行各种查询...