Spring中常用的hql查詢方法(getHibernateTemplate())(轉(zhuǎn))

          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");//必須 符合的條件但是這兩個條件時并列的(象當(dāng)于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");//必須 符合的條件但是這兩個條件時并列的(象當(dāng)于sql中的and)    

                      u.setName("bb");    

                      list=this.getHibernateTemplate().findByExample(u,start,max);    

                返回:滿足用戶名為bb密碼為123,自start起共max個User對象。(對象從0開始計數(shù))

           

          ---------------------------------------------------

          六、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對象的條數(shù)

           

          七、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"><!--此查詢被調(diào)用的名字-->

                                 <![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"><!--此查詢被調(diào)用的名字-->

                                 <![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"><!--此查詢被調(diào)用的名字-->

                                 <![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"><!--此查詢被調(diào)用的名字-->

                                 <![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) 

           示例:

                  1、首先需要在User.hbm.xml中定義命名查詢

                       <hibernate-mapping>

                            <class>......</class>

                            <query name="queryByNameAndPassword"><!--此查詢被調(diào)用的名字-->

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

           

                       this.getHibernateTemplate().findByNamedQuery("queryByNameAndPassword" , names, values);

           

           十三、findByValueBean(String queryString , Object value);

           示例:

                1、定義一個ValueBean,屬性名必須和HSQL語句中的:后面的變量名同名,此處必須至少有兩個屬性,分別為myName和myPassword,使用setter方法設(shè)置屬性值后

                    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"><!--此查詢被調(diào)用的名字-->

                                 <![CDATA[

                                      from bean.User u where u.name =:myName and u.password=:myPassword

                                  ]]>

                            </query>

                       </hibernate-mapping>

                2、定義一個ValueBean,屬性名必須和User.hbm.xml命名查詢語句中的:后面的變量名同名,此處必須至少有兩個屬性,分別為myName和myPassword,使用setter方法設(shè)置屬性值后

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

          posted on 2009-03-10 10:58 jumliang 閱讀(8909) 評論(4)  編輯  收藏

          評論

          # re: Spring中常用的hql查詢方法(getHibernateTemplate())(轉(zhuǎn)) 2009-06-13 17:15 小屋

          好啊,一直到找,終于逮著了  回復(fù)  更多評論   

          # re: Spring中常用的hql查詢方法(getHibernateTemplate())(轉(zhuǎn)) 2010-02-25 16:10 tt

          tt  回復(fù)  更多評論   

          # re: Spring中常用的hql查詢方法(getHibernateTemplate())(轉(zhuǎn)) 2010-02-25 16:10 tt

          @tt
          g  回復(fù)  更多評論   

          # re: Spring中常用的hql查詢方法(getHibernateTemplate())(轉(zhuǎn)) 2014-06-10 15:51 mao

          謝謝分享!  回復(fù)  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2009年6月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(1)

          隨筆檔案(4)

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 通海县| 刚察县| 广东省| 泰兴市| 景谷| 长汀县| 凤山市| 肥乡县| 新昌县| 莫力| 吴桥县| 乌拉特中旗| 固原市| 临泉县| 福安市| 友谊县| 陵水| 山丹县| 潮安县| 固始县| 五莲县| 新密市| 西乌珠穆沁旗| 南平市| 深水埗区| 呈贡县| 乐陵市| 原平市| 隆回县| 南投县| 宁波市| 增城市| 华池县| 武川县| 安阳市| 革吉县| 长白| 承德市| 泰和县| 高唐县| 临清市|