`

Spring中常用的hql查询方法

阅读更多

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");//必须 符合的条件但是这两个条件时并列的(象当于sql中的and)    

             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");//必须 符合的条件但是这两个条件时并列的(象当于sql中的and)    

            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"};

分享到:
评论

相关推荐

    Spring中hql语句的常用方法

    - 这里假设`bean.User`是HQL中的实体类名称,查询结果为所有`User`对象的列表。 2. **find(String queryString, Object value)**:此方法接受一个HQL字符串及一个值作为参数,返回符合条件的结果列表。 - 示例...

    Spring--HQL-chaxun.zip_HQL

    在这个名为“Spring--HQL-chaxun.zip_HQL”的压缩包中,包含的文档“Spring中常用的HQL查询方法.doc”会详细讲解如何在Spring环境中使用HQL进行数据查询。 1. **HQL的基本概念**: HQL允许开发者用类和属性名称来...

    SpringData如何实现查询的代码

    在这个例子中,`JpaRepository`提供了基本的CRUD操作,而`findByUsername`方法是自定义的查询方法,SpringData会自动解析其名称并生成对应的SQL(对于JPA)或其他查询语言(对于其他数据存储)。这种方法的优点在于...

    Spring Data JPA中文文档[1.4.3]_springdatajpa_erlang_waitxpf_

    Spring Data JPA 提供了内置的支持,可以在查询方法中通过 `Pageable` 参数实现分页和排序。 5. **Auditing**:Spring Data JPA 提供了审计功能,可以自动记录实体的创建时间和修改时间。这可以通过 `@CreatedDate`...

    Spring Data JPA中文文档[1.4.3]

    2. **自动查询生成**:Spring Data JPA可以根据方法签名自动构建SQL或HQL查询,例如,`findAll()`返回所有实体,`findByUsername(String username)`则会生成一个根据用户名查找的查询。 3. **Pageable和Sort接口**...

    Spring Data JPA中文文档[1.4.3].zip

    4. **查询方法命名**:Spring Data JPA支持根据方法名自动生成SQL查询,如`findByFirstName(String firstName)`,会对应生成查找firstName等于指定值的查询。 5. **自定义查询**:当默认的命名查询不满足需求时,...

    spring boot query查询

    本篇文章将深入探讨Spring Boot中使用`@Query`注解进行自定义查询的方法,包括Spring Data JPA和Template两种模式。 首先,让我们了解Spring Data JPA。这是一个强大的ORM(对象关系映射)框架,它简化了与数据库的...

    Spring Data JPA入门项目02

    1. 查询操作:Spring Data JPA支持多种查询方式,包括使用JPA的`@Query`注解编写自定义SQL或HQL(Hibernate Query Language),以及使用方法命名查询。例如,我们可以通过在Repository接口中定义一个方法名,让...

    struts2 spring hibernate常用jar包

    在这个"struts2 spring hibernate常用jar包"中,包含了这三个框架的核心库和其他相关依赖,使得开发者能够快速搭建开发环境。 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它旨在简化...

    Spring MVC+Spring+Spring data JPA

    Spring Data JPA 还支持自动查询生成,例如,根据方法名自动执行对应的操作。 **SpringSide 示例项目** "SSJ" 可能指的是 SpringSide 示例项目,这是一个基于 Spring Boot 的现代化 Java 开发脚手架,它包含了 ...

    hibernate通用查询

    HQL中的占位符(如`:param1`)对应于传递的参数,通过`setParameter`方法设置这些参数值。 总结,Hibernate通用查询为Java开发者提供了极大的便利,通过封装后的CommonDaoImpl类,我们可以轻松地处理各种查询需求,...

    Spring Boot整合SpringDataJPA

    Spring Data JPA还支持更复杂的查询,如使用`@Query`注解编写自定义SQL或者HQL,或者使用` Specifications`进行动态查询。此外,它还提供了事务管理、懒加载、级联操作等特性,使得数据访问更加灵活和强大。 在实际...

    Spring Data JPA从入门到精通

    7. **Query方法**:Spring Data JPA允许通过方法名自动推断查询逻辑,如findByXXX(),同时支持自定义@Query注解写入SQL或HQL查询。 8. **事务管理**:Spring Data JPA利用Spring的事务管理能力,通过@Transactional...

    springmvc+hibernate+spring maven案例(包含分页查询)

    - 在此案例中,可能使用了Hibernate的`Criteria`或`HQL`查询语言配合`PageRequest`或自定义分页实现,通过指定页码和每页大小来获取特定范围的数据。 6. **文件名:user** - "user"可能是数据库中的一个表名,...

    spring4.2,spring mvc,spring data,jpa,hibernate的程序构架

    此外,Spring Data JPA 提供了Repository接口,通过简单的声明式方法,即可实现复杂的查询操作,大大提高了开发效率。 Hibernate是JPA的一个具体实现,它是一个功能丰富的ORM框架。在Spring项目中,我们通常结合...

    hibernate annotation spring 中文参考文档

    在IT行业中,Hibernate、Spring和Hibernate Annotations是三个非常重要的框架,尤其在Java企业级应用开发中扮演着核心角色。这些框架极大地简化了数据库操作、对象关系映射(ORM)以及应用程序的依赖注入和管理。 ...

    struts+spring+hibernate通用分页方法

    3. 在Service层中,调用DAO的分页方法,处理业务逻辑,比如根据查询条件动态构建HQL。 4. Struts的Action接收请求,解析参数,然后调用Service方法,最后将分页结果传给视图层。 5. 视图层(可能是JSP或FreeMarker等...

    struts2+spring2+hibernate3注册查询搜索分页实例

    在查询和搜索功能中,Hibernate3通过HQL(Hibernate查询语言)或 Criteria API来执行SQL查询,简化了数据库操作。在分页功能中,Hibernate3的Criteria API可以配合Pageable接口实现数据的分页检索。 在分页功能上,...

Global site tag (gtag.js) - Google Analytics