sqlquery
1. sqlQuery與Query有什麼區別嗎
hql是面向對象的 。
其實還是轉成了sql語句
hql在資料庫通用,切換資料庫方言就可以
sql在不同資料庫中語法有些不同
還是sql比較靈活一些
HQL(Hibernate Query Language)查詢提供了更加豐富的和靈活的查詢特性,因此Hibernate將HQL查詢方式立為官方推薦的標准查詢方式,HQL查詢在涵蓋 Criteria查詢的所有功能的前提下,提供了類似標准SQL語句的查詢方式,同時也提供了更加面向對象的封裝。
sql只是結構化查詢語言,只是面向數據檢索,不具有面向對象的特徵,所以HQL更加符合開發標准
2. SqlQuery是不是延遲載入
配置文件中:
<class name="LoginUser" table="LoginUser" lazy="false">
lazy改成false就會取消懶載入,也叫延時載入。
之所以顯示三次查詢語句。是因為你調用了三次query.list()方法。建議調用一次把list保存在一個變數中。
即使顯示三次查詢語句也不一定訪問了資料庫三次。因為hibernate有緩存。
3. hibernate執行createSQLQuery後,query.list怎麼轉換成List
List<Object[]> list =session.createSQLQuery(sql).addScalar("total_score",Hibernate.INTEGER).list();
然後遍歷 list
for(Object[] obj:list){
obj[0] 就是 total_score
obj[1] 就是env_score
obj[2] 就是ser_score
}
4. hibernate mapping中的sql-query怎麼使用
我寫個簡單的例子,樓主可以參考下public int getLogin(String username,String password)
{ String sql="select * from user_table where username=? and password=?";
SQLQuery query=getSession().createSQLQuery(sql).addEntity(UserTable.class);
query.setString(0,username);
query.setString(1,password);
return Integer.parseInt(query.uniqueResult().toString());
}
public static void main(String[] args) {
new UserTableDAO().getLogin("zhang","yuan");
}
5. SQLQuery與Query有什麼區別嗎
hiabernate 中createQuery與createSQLQuery區別
前者用的hql語句進行查詢,
後者可以用sql語句查詢 ;
前者以hibernate生成的Bean為對象裝入list返回
後者則是以對象數組進行存儲;
所以使用createSQLQuery有時候也想以hibernate生成的Bean為對象裝入list返回,就不是很方便 ,但是createSQLQuery有這樣一個方法可以直接轉換對象
Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class);
XXXXXXX 代表以hibernate生成的Bean的對象,也就是數據表映射出的Bean。
6. hibernate createSQLQuery返回處理
不解釋 垃圾靠邊站
public void exevalusSql(String sql,int cols)
{
getConn();
session.beginTransaction();
SQLQuery sq=session.createSQLQuery(sql);
List obs= (List)sq.list();
String[][] ss=new String[obs.size()][cols];
for (Object object : obs) {
Object[] a=(Object[])object;
for(int j=0;j<a.length;j++)
{
System.out.println(a[j].toString());
}
}
session.getTransaction().commit();
HibernateSessionFactory.getSessionFactory().close();
}
7. sqlquery中MySql的條件模糊查詢參數怎麼寫
如果@是特殊符號作為標識表示這是個替代字元的話,你為什麼不queryMap.put("userName", "%"+userName+"%");呢?
8. SQLQuery query = session.createSQLQuery("{Call proc(,,)}");過程返回參數是游標該怎麼傳值
存儲過程中游標是輸出參數,如果你要取得結果集,不用試用存儲過程這么麻煩。如果非要試用存儲過程,游標的定義也應該在存儲過程中實現,在java中去獲取過程返回的結果集。
9. hibernate 中 createSQLQuery() 用法,我想讓它返回一個book對象,怎麼寫語句。
看上去,你的寫法應該沒啥問題。
不過這個b又不是佔位符,你又是單表的查詢,是不是應該把b去掉啊。
SQLQuery sqlquery = s.createSQLQuery("select * from Book b where b.name = bookName").addEntity(Book.class);
參考:http://hi..com/liheng666/blog/item/6b38d3c472d271a08226aca7.html
10. Hibernate SQLQuery查詢報錯
六、case ... when ... then ... else .... end (等價於java中的switch語句)
case
when (條件表達式1) then 語句1
when (條件表達式2) then 語句2
else 語句N
end