设为首页收藏本站
开启辅助访问
切换到宽版

创星网络[分享知识 传递快乐]

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博登录

只需一步,快速搞定

搜索
查看: 3933|回复: 0
打印 上一主题 下一主题

Hibernate使用sql语句查询

[复制链接]

我玩的应用:

跳转到指定楼层
楼主
发表于 2012-12-12 22:30:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. import java.util.Iterator;
  2. import java.util.List;
  3. import java.util.Map;

  4. import org.hibernate.Hibernate;
  5. import org.hibernate.SQLQuery;
  6. import org.hibernate.Session;
  7. import org.hibernate.Transaction;
  8. import org.hibernate.transform.Transformers;

  9. import com.hibernate.bean.SqlQueryBean;
  10. import com.hibernate.bean.User;
  11. import com.hibernate.util.HibernateUtil;


  12. public class SqlQueryTest {

  13. public static void main (String [] args){
  14.   
  15.   sqlQueryAddScalar();
  16.   
  17. }
  18.   
  19.   static void sqlQueryAddEntity(){

  20.      //获取Hibernate Session对象

  21.      Session session = HibernateUtil.getSession();

  22.      //开始事务

  23.      Transaction tx = session.beginTransaction();

  24.      //编写SQL语句

  25.      String sqlString = "select * from user";

  26.      //以SQL语句创建SQLQuery对象

  27.      List l = session.createSQLQuery(sqlString)

  28.                      //将查询ss实体关联的User类

  29.                      .addEntity("ss",User.class)

  30.                      //返回全部的记录集

  31.                      .list();

  32.      //遍历结果集

  33.      Iterator it = l.iterator();

  34.      while (it.hasNext()){

  35.          //因为将查询结果与Student类关联,因此返回的是Student集合

  36.          User s = (User)it.next();

  37.          String a = s.getName();
  38.         
  39.          System.out.println(a);

  40.      }

  41.      //提交事务

  42.      tx.commit();

  43.      session.close();

  44. }

  45. static void sqlQueryAddScalar(){
  46.   
  47.   //返回Object[]的遍历
  48.   
  49.   Session session=HibernateUtil.getSession();
  50.   
  51.   Transaction transaction=session.beginTransaction();
  52.   
  53.   String sql="select * from user";
  54.   
  55.   SQLQuery s=(SQLQuery) session.createSQLQuery(sql); //.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
  56.   
  57.   s.addScalar("id",Hibernate.INTEGER); //列名, 数据类型
  58.   s.addScalar("name",Hibernate.STRING);
  59.   
  60.   List list=s.list();

  61.   Object[] objects=(Object[])list.get(0);

  62.   System.out.println(objects[0]);
  63.   System.out.println(objects[1]);
  64.   
  65.   //用MAP
  66.   
  67.   SQLQuery ss=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
  68.   
  69.   ss.addScalar("id",Hibernate.INTEGER);
  70.   ss.addScalar("name",Hibernate.STRING);
  71.   
  72.   List list2=ss.list();
  73.   
  74.   Map map = (Map) list2.get(0);
  75.   
  76.   System.out.println(map.get("name"));
  77.   System.out.println(map.get("id"));
  78.   
  79.   //用LIST

  80.   SQLQuery s3=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.TO_LIST);
  81.   
  82.   s3.addScalar("id",Hibernate.INTEGER);
  83.   s3.addScalar("name",Hibernate.STRING);
  84.   
  85.   List list3=s3.list();

  86.   List list4=(List)list3.get(0);

  87.   System.out.println(list4.get(0));
  88.   System.out.println(list4.get(1));
  89.   
  90.   //用自定义的bean
  91.   
  92.   SQLQuery e=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(SqlQueryBean.class));
  93.   
  94.   e.addScalar("id",Hibernate.INTEGER);
  95.   e.addScalar("name",Hibernate.STRING);
  96.   
  97.   List r=e.list();

  98.   SqlQueryBean sqb=(SqlQueryBean)r.get(0);

  99.   System.out.println(sqb.getId());
  100.   System.out.println(sqb.getName());
  101.   }


  102. }
复制代码
from:http://go.cxweb.com.cn/d30gs
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|创星网络 ( 苏ICP备11027519号|网站地图  

GMT+8, 2024-9-22 05:27 , Processed in 0.091104 second(s), 29 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表