createsql
createQuery不是資料庫的方法,這是hibernate的sql操作方法。
具體作用,是對查詢語句的執行·,像「select * from tb_a...」這樣的sql語句。
可以傳參,通用方法有兩種:
String hql = "from InventoryTask it where it.orgId=:orgId";
Session session = getSession();
Query query=session.createQuery(hql);
query.setString("orgId",orgId);
List list = query.list();
if(list!=null&&list.size()!=0){
return (InventoryTask)list.get(0);
}else{
return null;
}String hql = "from InventoryTask it where it.orgId=?,it.orgName"; Session session = getSession(); Query query=session.createQuery(hql); query.setString("0",orgId); query.setString(1,orgName) List list = query.list(); if(list!=null&&list.size()!=0){ return (InventoryTask)list.get(0); }else{ return null; }
② 關於Hibernate createSqlQuery中的mysql定義變數 @:=
你這是sql?沒見過那個符號
③ 誰有create.sql這個文件
根據名字是創建表結構的文件,按你需要寫的
④ 用hibernate2.1.7版本的執行createSQLQuery查詢是三個參數說能告訴我一下啊。
net.sf.hibernate.Session
public Query createSQLQuery(String sql, String returnAlias, Class returnClass);
public Query createSQLQuery(String sql, String[] returnAliases, Class[] returnClasses);
第一個參數是select 語句 第二個 對查詢到的數據付別名 第三個參數 ,是返回的數據的類型
一個論壇上 有講 hibernate2.0 到 hibernate3.0的區別http://d.hatena.ne.jp/fivefourty/
⑤ JAVA中:session.createSQLQuery(sql).addEntity(entity).list();報錯,在線等;
這種寫法得到的欄位不能命名別名,不然就這個錯
⑥ 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();
}
⑦ 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
⑧ hibernate createSQLQuery(sql).executeUpdate 不執行
貌似是你的query已經讀取了sql語句了,但是裡面沒值,你試試把Query query = session.createSQLQuery(sql);寫到int result = query.executeUpdate();
這句話前面
⑨ hibernate一般使用createQuery還是createSQLQuery,能舉例嗎
createQuery 這裡面是用HQL查詢,通常在項目中用這個比較多。 返回值類型有List有對象有屬性值。等等
createSQLQuery 這是用SQL語句查詢。查詢返回值是Object[]數組對象
⑩ 如何遍歷由createSQLquery 進行聯合查詢得到的結果
需要遍歷每條查詢結果來進行某些操作,例如拆分查詢結果的字元串就要通過循環來進行,以下給出了一種循環遍歷的例子供大家參考。
假設表TblTest有兩個欄位:id, value, 而value的值在查到後需要拆分,如:'aa,bb,cc',就可利用以下循環來進行(拆分的例子可以參考另一篇文章:Sql Server中如何拆分字元串)。
/* tmp table that store the flag to indicate if this record is processed */
declare @TblTest_tmp table(
id decimal(18,0),
[flag] int
)
/* total count for the query result */
declare @totalcount int
declare @rownum int
select @totalcount = count(1) from TblTest
set @rownum = 1
while @rownum <= @totalcount
begin
declare @id decimal(18,0),
@value varchar(2000)
select top 1 @id=[id], @value=[value] from TblTest where flag=0
/* do sth for @value, e.g. select * from split(@value, ',') */
update @TblTest_tmp set flag = 1 where [id] = @id
set @rownum = @rownum + 1
end