命名SQL查询

1.常用情形:

xml 代码
  1. <sql-query name="articlesql">  
  2.         <return alias="articleList" class="cn.com.dreamtech.news.domain.JsAcArticle"/>  
  3.             select article.js_ac_art_id,article.js_ac_art_title from Js_Ac_Article as article left join Js_Ac_Catalog catalog on article.js_Ac_art_Catalog=catalog.js_Ac_Catalog_Id   
  4. sql-query>   
java 代码
  1. List list = session.getNamedQuery("articlesql").setString("articleId""4028829316ccff530116ccffe53e0001").list();   
  2. JsAcArticle article = (JsAcArticle)list.get(0);   
  3. System.out.println(article.getJsAcArtTitle());  

2.多表联合查询:

xml 代码
  1. <sql-query name="articlesql">  
  2.         <return-scalar type="java.lang.String" column="js_ac_art_id"/>  
  3.         <return-scalar type="java.lang.String" column="js_ac_catalog_title"/>  
  4.          
  5.             select article.js_ac_art_id,catalog.js_ac_catalog_title from Js_Ac_Article as article left join Js_Ac_Catalog catalog on article.js_Ac_art_Catalog=catalog.js_Ac_Catalog_Id  
  6.         ]]>  
  7. sql-query>  
java 代码
  1. HibernateUtil.beginTransaction();   
  2. Session session = HibernateUtil.currentSession();   
  3. List list = session.getNamedQuery("articlesql").list();   
  4. Object[] article = (Object[])list.get(0);   
  5. System.out.println(article[0]);  

 3.自行添加类和hbm配置文件(解决第二种返回类型是object[]的问题,可以直接返回实例了)

java 代码
  1. package cn.com.dreamtech.news.domain;   
  2.   
  3. public class ArcCat {   
  4.     private String jsAcArtId;   
  5.     private String jsAcCatalogTitle;   
  6.     public String getJsAcArtId() {   
  7.         return jsAcArtId;   
  8.     }   
  9.     public void setJsAcArtId(String jsAcArtId) {   
  10.         this.jsAcArtId = jsAcArtId;   
  11.     }   
  12.     public String getJsAcCatalogTitle() {   
  13.         return jsAcCatalogTitle;   
  14.     }   
  15.     public void setJsAcCatalogTitle(String jsAcCatalogTitle) {   
  16.         this.jsAcCatalogTitle = jsAcCatalogTitle;   
  17.     }   
  18.        
  19. }   

这个类是来自多个表的字段的属性

xml 代码
  1. xml version="1.0"?>  
  2. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  3. <hibernate-mapping>  
  4.     <class name="cn.com.dreamtech.news.domain.ArcCat">  
  5.         <id name="jsAcArtId" column="JS_AC_ART_ID"/>  
  6.         <property name="jsAcCatalogTitle" column="JS_AC_CATALOG_TITLE"/>  
  7.     class>  
  8.     <sql-query name="articlesss">  
  9.         <return alias="articleList" class="cn.com.dreamtech.news.domain.ArcCat"/>  
  10.          
  11.             select article.js_ac_art_id,catalog.js_ac_catalog_title from Js_Ac_Article as article left join Js_Ac_Catalog catalog on article.js_Ac_art_Catalog=catalog.js_Ac_Catalog_Id  
  12.         ]]>  
  13.     sql-query>  
  14. hibernate-mapping>  
java 代码
  1. HibernateUtil.beginTransaction();   
  2. Session session = HibernateUtil.currentSession();   
  3. List list = session.getNamedQuery("articlesss").list();   
  4. ArcCat article = (ArcCat)list.get(0);   
  5. System.out.println(article.getJsAcArtId());  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值