Spring中常用的hql查询方法(getHibernateTemplate())
---------------------------------
一、find(String queryString);
示例:this.getHibernateTemplate().find("from bean.User");
返回所有User对象
二、find(String queryString , Object value);
示例:this.getHibernateTemplate().find("from bean.User u where u.name=?", "test");
或模糊查询:this.getHibernateTemplate().find("from bean.User u where u.name like ?", "%test%");
返回name属性值为test的对象(模糊查询,返回name属性值包含test的对象)
三、find(String queryString, Object[] values);
示例:String hql= "from bean.User u where u.name=? and u.password=?"
this.getHibernateTemplate().find(hql, new String[]{"test", "123"});
返回用户名为test并且密码为123的所有User对象
---------------------------------
四、findByExample(Object exampleEntity)
示例:
User u=new User();
u.setPassword("123");
u.setName("bb");
list=this.getHibernateTemplate().findByExample(u,start,max);
返回:用户名为bb密码为123的对象
五、findByExample(Object exampleEntity, int firstResult, int maxResults)
示例:
User u=new User();
u.setPassword("123");
u.setName("bb");
list=this.getHibernateTemplate().findByExample(u,start,max);
返回:满足用户名为bb密码为123,自start起共max个User对象。(对象从0开始计数)
---------------------------------------------------
六、findByNamedParam(String queryString , String paramName , Object value)
使用以下语句查询:
String queryString = "select count(*) from bean.User u where u.name=:myName";
String paramName= "myName";
String value= "xiyue";
this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);
System.out.println(list.get(0));
返回name为xiyue的User对象的条数
七、findByNamedParam(String queryString , String[] paramName , Object[] value)
示例:
String queryString = "select count(*) from bean.User u where u.name=:myName and u.password=:myPassword";
String[] paramName= new String[]{"myName", "myPassword"};
String[] value= new String[]{"xiyue", "123"};
this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);
返回用户名为xiyue密码为123的User对象
八、findByNamedQuery(String queryName)
示例:
1、首先需要在User.hbm.xml中定义命名查询
<hibernate-mapping>
<class>......</class>
<query name="queryAllUser"><!--此查询被调用的名字-->
<![CDATA[
from bean.User
]]>
</query>
</hibernate-mapping>
2、如下使用查询:
this.getHibernateTemplate().findByNamedQuery("queryAllUser");
九、findByNamedQuery(String queryName, Object value)
示例:
1、首先需要在User.hbm.xml中定义命名查询
<hibernate-mapping>
<class>......</class>
<query name="queryByName"><!--此查询被调用的名字-->
<![CDATA[
from bean.User u where u.name = ?
]]>
</query>
</hibernate-mapping>
2、如下使用查询:
this.getHibernateTemplate().findByNamedQuery("queryByName", "test");
十、findByNamedQuery(String queryName, Object[] value)
示例:
1、首先需要在User.hbm.xml中定义命名查询
<hibernate-mapping>
<class>......</class>
<query name="queryByNameAndPassword"><!--此查询被调用的名字-->
<![CDATA[
from bean.User u where u.name =? and u.password =?
]]>
</query>
</hibernate-mapping>
2、如下使用查询:
String[] values= new String[]{"test", "123"};
this.getHibernateTemplate().findByNamedQuery("queryByNameAndPassword" , values);
十一、findByNamedQueryAndNamedParam(String queryName, String paramName, Object value)
示例:
1、首先需要在User.hbm.xml中定义命名查询
<hibernate-mapping>
<class>......</class>
<query name="queryByName"><!--此查询被调用的名字-->
<![CDATA[
from bean.User u where u.name =:myName
]]>
</query>
</hibernate-mapping>
2、如下使用查询:
this.getHibernateTemplate().findByNamedQuery("queryByName" , "myName", "test");
十二、findByNamedQueryAndNamedParam(String queryName, String[] paramName, Object[] value)
this.getHibernateTemplate().findByNamedQuery("queryByNameAndPassword" , names, values);
十三、findByValueBean(String queryString , Object value);
示例:
1、定义一个ValueBean,属性名必须和HSQL语句中的:后面的变量名同名,此处必须至少有两个属性,分别为myName和myPassword,使用setter方法设置属性值后
ValueBean valueBean= new ValueBean();
valueBean.setMyName("test");
valueBean.setMyPasswrod("123");
2、
String queryString= "from bean.User u where u.name=:myName and u.password=:myPassword";
this.getHibernateTemplate().findByValueBean(queryString , valueBean);
十四、findByNamedQueryAndValueBean(String queryName , Object value);
示例:
1、首先需要在User.hbm.xml中定义命名查询
<hibernate-mapping>
<class>......</class>
<query name="queryByNameAndPassword"><!--此查询被调用的名字-->
<![CDATA[
from bean.User u where u.name =:myName and u.password=:myPassword
]]>
</query>
</hibernate-mapping>
2、定义一个ValueBean,属性名必须和User.hbm.xml命名查询语句中的:后面的变量名同名,此处必须至少有两个属性,分别为myName和myPassword,使用setter方法设置属性值后
ValueBean valueBean= new ValueBean();
valueBean.setMyName("test");
valueBean.setMyPasswrod("123");
3、
String queryString= "from bean.User u where u.name=:myName and u.password=:myPassword";
this.getHibernateTemplate().findByNamedQueryAndValueBean("queryByNameAndPassword", valueBean);
示例:
1、首先需要在User.hbm.xml中定义命名查询
<hibernate-mapping>
<class>......</class>
<query name="queryByNameAndPassword"><!--此查询被调用的名字-->
<![CDATA[
from bean.User u where u.name =:myName and u.password=:myPassword
]]>
</query>
</hibernate-mapping>
2、如下使用查询:
String[] names= new String[]{"myName", "myPassword"};
String[] values= new String[]{"test", "123"};
分享到:
相关推荐
- 这里假设`bean.User`是HQL中的实体类名称,查询结果为所有`User`对象的列表。 2. **find(String queryString, Object value)**:此方法接受一个HQL字符串及一个值作为参数,返回符合条件的结果列表。 - 示例...
在这个名为“Spring--HQL-chaxun.zip_HQL”的压缩包中,包含的文档“Spring中常用的HQL查询方法.doc”会详细讲解如何在Spring环境中使用HQL进行数据查询。 1. **HQL的基本概念**: HQL允许开发者用类和属性名称来...
在这个例子中,`JpaRepository`提供了基本的CRUD操作,而`findByUsername`方法是自定义的查询方法,SpringData会自动解析其名称并生成对应的SQL(对于JPA)或其他查询语言(对于其他数据存储)。这种方法的优点在于...
Spring Data JPA 提供了内置的支持,可以在查询方法中通过 `Pageable` 参数实现分页和排序。 5. **Auditing**:Spring Data JPA 提供了审计功能,可以自动记录实体的创建时间和修改时间。这可以通过 `@CreatedDate`...
2. **自动查询生成**:Spring Data JPA可以根据方法签名自动构建SQL或HQL查询,例如,`findAll()`返回所有实体,`findByUsername(String username)`则会生成一个根据用户名查找的查询。 3. **Pageable和Sort接口**...
4. **查询方法命名**:Spring Data JPA支持根据方法名自动生成SQL查询,如`findByFirstName(String firstName)`,会对应生成查找firstName等于指定值的查询。 5. **自定义查询**:当默认的命名查询不满足需求时,...
本篇文章将深入探讨Spring Boot中使用`@Query`注解进行自定义查询的方法,包括Spring Data JPA和Template两种模式。 首先,让我们了解Spring Data JPA。这是一个强大的ORM(对象关系映射)框架,它简化了与数据库的...
1. 查询操作:Spring Data JPA支持多种查询方式,包括使用JPA的`@Query`注解编写自定义SQL或HQL(Hibernate Query Language),以及使用方法命名查询。例如,我们可以通过在Repository接口中定义一个方法名,让...
在这个"struts2 spring hibernate常用jar包"中,包含了这三个框架的核心库和其他相关依赖,使得开发者能够快速搭建开发环境。 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它旨在简化...
Spring Data JPA 还支持自动查询生成,例如,根据方法名自动执行对应的操作。 **SpringSide 示例项目** "SSJ" 可能指的是 SpringSide 示例项目,这是一个基于 Spring Boot 的现代化 Java 开发脚手架,它包含了 ...
HQL中的占位符(如`:param1`)对应于传递的参数,通过`setParameter`方法设置这些参数值。 总结,Hibernate通用查询为Java开发者提供了极大的便利,通过封装后的CommonDaoImpl类,我们可以轻松地处理各种查询需求,...
Spring Data JPA还支持更复杂的查询,如使用`@Query`注解编写自定义SQL或者HQL,或者使用` Specifications`进行动态查询。此外,它还提供了事务管理、懒加载、级联操作等特性,使得数据访问更加灵活和强大。 在实际...
7. **Query方法**:Spring Data JPA允许通过方法名自动推断查询逻辑,如findByXXX(),同时支持自定义@Query注解写入SQL或HQL查询。 8. **事务管理**:Spring Data JPA利用Spring的事务管理能力,通过@Transactional...
- 在此案例中,可能使用了Hibernate的`Criteria`或`HQL`查询语言配合`PageRequest`或自定义分页实现,通过指定页码和每页大小来获取特定范围的数据。 6. **文件名:user** - "user"可能是数据库中的一个表名,...
此外,Spring Data JPA 提供了Repository接口,通过简单的声明式方法,即可实现复杂的查询操作,大大提高了开发效率。 Hibernate是JPA的一个具体实现,它是一个功能丰富的ORM框架。在Spring项目中,我们通常结合...
在IT行业中,Hibernate、Spring和Hibernate Annotations是三个非常重要的框架,尤其在Java企业级应用开发中扮演着核心角色。这些框架极大地简化了数据库操作、对象关系映射(ORM)以及应用程序的依赖注入和管理。 ...
3. 在Service层中,调用DAO的分页方法,处理业务逻辑,比如根据查询条件动态构建HQL。 4. Struts的Action接收请求,解析参数,然后调用Service方法,最后将分页结果传给视图层。 5. 视图层(可能是JSP或FreeMarker等...
在查询和搜索功能中,Hibernate3通过HQL(Hibernate查询语言)或 Criteria API来执行SQL查询,简化了数据库操作。在分页功能中,Hibernate3的Criteria API可以配合Pageable接口实现数据的分页检索。 在分页功能上,...