当前位置:首页 > 开发 > 编程语言 > Hibernate > 正文

hibernate使用sql查询

发表于: 2013-05-09   作者:ctrain   来源:转载   浏览:
摘要: import java.util.Iterator; import java.util.List; import java.util.Map; import org.hibernate.Hibernate; import org.hibernate.SQLQuery; import org.hibernate.Session; import org.hibernate.Transa
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.Hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.transform.Transformers;
import com.hibernate.bean.SqlQueryBean;
import com.hibernate.bean.User;
import com.hibernate.util.HibernateUtil;
public class SqlQueryTest {
    public static void main(String[] args) {
        sqlQueryAddScalar();
    }
    static void sqlQueryAddEntity() { //获取Hibernate Session对象
        Session session = HibernateUtil.getSession(); //开始事务
        Transaction tx = session.beginTransaction(); //编写SQL语句
        String sqlString = "select * from user"; //以SQL语句创建SQLQuery对象
        List l = session.createSQLQuery(sqlString) //将查询ss实体关联的User类
        .addEntity("ss", User.class) //返回全部的记录集
        .list(); //遍历结果集
        Iterator it = l.iterator();
        while (it.hasNext()) { //因为将查询结果与Student类关联,因此返回的是Student集合
            User s = (User) it.next();
            String a = s.getName();
            System.out.println(a);
        } //提交事务
        tx.commit();
        session.close();
    }
    static void sqlQueryAddScalar() { //返回Object[]的遍历
        Session session = HibernateUtil.getSession();
        Transaction transaction = session.beginTransaction();
        String sql = "select * from user";
        SQLQuery s = (SQLQuery) session.createSQLQuery(sql); //.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
        s.addScalar("id", Hibernate.INTEGER); //列名, 数据类型
        s.addScalar("name", Hibernate.STRING);
        List list = s.list();
        Object[] objects = (Object[]) list.get(0);
        System.out.println(objects[0]);
        System.out.println(objects[1]); //用MAP
        SQLQuery ss = (SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        ss.addScalar("id", Hibernate.INTEGER);
        ss.addScalar("name", Hibernate.STRING);
        List list2 = ss.list();
        Map map = (Map) list2.get(0);
        System.out.println(map.get("name"));
        System.out.println(map.get("id")); //用LIST
        SQLQuery s3 = (SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.TO_LIST);
        s3.addScalar("id", Hibernate.INTEGER);
        s3.addScalar("name", Hibernate.STRING);
        List list3 = s3.list();
        List list4 = (List) list3.get(0);
        System.out.println(list4.get(0));
        System.out.println(list4.get(1)); //用自定义的bean
        SQLQuery e = (SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(SqlQueryBean.class));
        e.addScalar("id", Hibernate.INTEGER);
        e.addScalar("name", Hibernate.STRING);
        List r = e.list();
        SqlQueryBean sqb = (SqlQueryBean) r.get(0);
        System.out.println(sqb.getId());
        System.out.println(sqb.getName());
    }
}

引自:http://www.cnblogs.com/redant/archive/2010/01/28/1658479.html

hibernate使用sql查询

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Criteria Query的使用 Criteria 查询表达式 Criteria 本身只是一个查询容器,具体的查询条件需要通
今天在执行session.createSQLQuery(SQL)后(多表连接查询,选取部分字段),把结果集直接强转到自定
在使用hibernate过程中有许多查询需要用到sql原生语句进行查询。同时又希望查询结果可以直接保存到PO
1.Maven Dependency <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww
1.Maven Dependency <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww
1 .执行计划 执行计划的作用:执行计划可以是根据 SQL Server 查询优化器估算的计划 , 不需要查询
tiny-sqlmap的由来 最近给一个项目的框架做一些优化工作,该项目使用的是SSH这一套东西。似乎SSH在
tiny-sqlmap的由来 最近给一个项目的框架做一些优化工作,该项目使用的是SSH这一套东西。似乎SSH在
在hibernate 查询in 查询中不能使用testQuery1方法查询 public void testQuery1(){ SessionFactory f
如下列出查询表达式,常用操作符,与SQL语句对应。 where 关键字的使用 public void MyWhere() { No
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号