hibernate使用手寫sql以及對結果list的處理


		Session sees=simpleDAO.getSessionFactory().openSession();
	    String sql = "select * from fhcb_08_tbl_user_right";
	    SQLQuery query = sees.createSQLQuery(sql);
	    List<?> list = query.list();
	    
		    for(Object o: list){
		    	Object[]objects=(Object[])o;
		    	
		         System.out.println((BigDecimal) objects[0]+ "::" + (String) objects[2]);
		    }

  其實hibernate查詢出來的結果集不能直接用,得到的是一個Object數組,里面每個obj其實都是一個實體類,遍歷拿到obj還不能直接當做實體對象操作,這個obj也是一個數組,元素順序就是數據庫字段順序,取到obj里面的元素需要類型強轉才能使用,正常操作。

如果類型拿不准,直接可以用objects[0].toString()方法取出里面的值。

            
對count的獲取方法

String sql = "SELECT COUNT(*)  FROM fhcb_08_tbl_login_record WHERE USERNAME="+"'"+userName+"'";
            Session sees=simpleDAO.getSessionFactory().openSession();
            Query query = sees.createSQLQuery(sql).addScalar("COUNT(*)", StandardBasicTypes.INTEGER);
            int count=(Integer)query.uniqueResult(); 

  

1sess.createSQLQuery("SELECT NAME, BIRTHDATE FROM CATS")
2         .setResultTransformer(Transformers.aliasToBean(CatDTO.class))

1String sql = "SELECT ID as {c.id}, NAME as {c.name}, " + 
2         "BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother.*} " +
3         "FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID";
4
5List loggedCats = sess.createSQLQuery(sql)
6         .addEntity("cat", Cat.class)
7         .addEntity("mother", Cat.class).list();

  

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM