Hibernate SQLQuery 原生SQL 查询及返回结果集处理-2

1.
返回List,
.setResultTransformer(
     Transformers.ALIAS_TO_ENTITY_MAP);将结果转为Map,存放到list中,即list中为若干map对象;
获取可按此方法:

for (int i = 0; i < list.size(); i++) {
            Map map = (Map) list.get(i);
            System.out.println(map.get("table_colum_name"));
        }

在jsp页面,可用S标签获取
<s:property value="table_colum_name" />

public List  getDamTestType(Integer damId) throws Exception {
        List list = new ArrayList();
        Session session = null;
        Transaction tx = null;
        String strSql1 = "";
        
        strSql1 = "select distinct testType.id,testType.mc from [" + damId + "_lb] as testType "
                + "inner join [" + damId + "_jcxm] as testObj on testObj.lbgl_id=testType.id "
                + "inner join [" + damId + "_cd] as testSite on testSite.jcxm_id=testObj.id "
                + "inner join [" + damId + "_sctj] as upLoadCond on upLoadCond.cd_id=testSite.id ";

try {
            session = HibernateSessionFactory.getSession();
            tx = session.beginTransaction();
            Query query = session.createSQLQuery(strSql1).setResultTransformer(
                    Transformers.ALIAS_TO_ENTITY_MAP);
            list = query.list();
            tx.commit();
        } catch (Exception e) {
            e.printStackTrace();
            tx.rollback();
            throw e;
        } finally {
            session.close();
        }

return list;
    }

时间: 2024-08-10 14:51:55

Hibernate SQLQuery 原生SQL 查询及返回结果集处理-2的相关文章

Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1

第一篇:官方文档的处理方法,摘自官方 在迁移原先用JDBC/SQL实现的系统,难免需要采用hibernat native sql支持. 1.使用SQLQuery hibernate对原生SQL查询执行的控制是通过SQLQuery接口进行的. Session.createSQLQuery(); 1.1标量查询 最基本的SQL查询就是获得一个标量(数值)的列表. sess.createSQLQuery("SELECT * FROM CATS").list(); sess.createSQL

Hibernate SQLQuery原生SQL查询

使用Hibernate SQLQuery进行查询时,如果有两个列的列明相同,那么在取值时,Hibernate会取第一个同名列的值(在SQLPlus中会自动在列明后面跟上写字符进行区分).如: 1.SQL语句 SELECT * FROM (SELECT 'A' A, 'B' B FROM DUAL) TEMP_A, (SELECT 'C' A, 'D' B FROM DUAL) TEMP_B 2.Sqlplus查询结果: 3.Hibernate SQLQuery查询结果:

hibernate使用原生SQL查询返回结果集的处理

今天没事的时候,看到公司框架里有一个用原生SQL写的函数,说实在以前自己也干过这事,但好久都没有用,都忘得差不多了,现在基本都是用的hql语句来查询结果.hibernate中使用createSQLQuery拉来来实现SQL语句的查询,具体用法:session.createSQLQuery(sql),对于用SQL返回的结果集是一个什么样的结果集都毫无记忆.自己查了下,才知道,原来是返回一个Object类型数组的list集合,而其中Object类型的数组里的值则与sql语句中的查询项相对应,如果是s

Hibernate 的原生 SQL 查询

Hibernate除了支持HQL查询外,还支持原生SQL查询.         对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.该接口是Query接口的子接口.         执行SQL查询步骤如下:         1.获取Hibernate Session对象         2.编写SQL语句         3.通过Session的createSQLQuery方法创建查询对象         4.调用SQ

Hibernate 使用原生SQL查询无法使用别名问题

最近遇到一个问题就是Hibernate在使用原生SQL进行多表联合查询别名的问题,一直报错,说是找不到某列,经过向别人咨询最后得出了解决方案 需要向数据库连接字符串中加入属性,具体如下 common.db.driverClassName=com.mysql.jdbc.Driver common.db.url=jdbc:mysql://10.10.11.8:3306/cm_mini_1?useOldAliasMetadataBehavior=true common.db.username=user

15、Hibernate的原生sql查询,优化Hibernate的查询效率

public class TestSQL { @Test public void test01() { Session session = null; try { session = HibernateUtil.openSession(); List<Student> stus = session.createSQLQuery("select * from t_stu where name like ?") .addEntity(Student.class) .setPar

Hibernate原生SQL查询多表关联,SQL语句要注意的问题

Hibernate原生SQL查询多表关联,SQL语句要注意的问题 @for&ever 2009-9-4 系统环境: MySQL5.1 Hibernate3.3 有如下的假定: 实体类 Question 和 Answer分别对应数据表 question 和answer. 并且表 question 和answer 的字段大部分都一样,字段数目也一样. 执行如下的操作: 1> 使用hibernate 使用原生SQL查询, Query q = session.createSQLQuery(sql).

Hibernate 关于执行sql查询语句(转)

原文  http://www.yshjava.cn/post/543.html 主题 SQLHibernate Hibernate对原生SQL查询的支持和控制是通过SQLQuery接口实现的.通过Session接口,我们能够很方便的创建一个SQLQuery(SQLQuery是一个接口,在Hibernate4.2.2之前,默认返回的是SQLQuery的实现类--SQLQueryImpl对象,在下文中出现的SQLQuery如非注明,都是指该子类)对象来进行原生SQL查询: session.creat

13.hibernate的native sql查询(转自xiaoluo501395377)

hibernate的native sql查询 在我们的hibernate中,除了我们常用的HQL查询以外,还非常好的支持了原生的SQL查询,那么我们既然使用了hibernate,为什么不都采用hibernate推荐的HQL查询语句呢?这是因为HQL查询语句虽然方便我们查询,但是基于HQL的查询会将查询出来的对象保存到hibernate的缓存当中,如果在我们的一个大型项目中(数据量超过了百万级),这个时候如果使用hibernate的HQL查询的话,会一次将我们查询的对象查询出来后放到缓存中,这个时