hibernate執行sql語句
A. 在hibernate運用sql查詢
給你一個我寫的例歷孝子:
public
List<Statistics>
statistics(){
String
sql="select
"+
"sum(case
when
(t.type_code=3)
then
1
else
0
end),"+
"sum(case
when
(t.type_code=5)
then
1
else
0
end),"+
"sum(case
when
(t.type_code=8)
then
1
else
0
end),"+
"sum(case
when
(t.type_code=0)
then
1
else
0
end),"+
"sum(case
when
(t.type_code=6)
then
1
else
0
end),"+
"sum(case
when
(t.type_code=9)
then
1
else
0
end),"陸爛並+
"count(*)"+
"from
cs_cust_complaint_data
t
where
t.from_flag='2'";
List<Statistics>
stal
=
new
ArrayList<Statistics>();
SQLQuery
query
=
getSession().createSQLQuery(sql);
Object[]
obj
=
(Object[])query.uniqueResult();
BigDecimal
b0
=
(BigDecimal)obj[0];
BigDecimal
b1
=
(BigDecimal)obj[1];
BigDecimal
b2
=
(BigDecimal)obj[2];
BigDecimal
b3
=
(BigDecimal)obj[3];
BigDecimal
b4
=
(BigDecimal)obj[4];
BigDecimal
b5
=
(BigDecimal)obj[5];
BigDecimal
b6
=
(BigDecimal)obj[6];
Double
zs
=
b6.doubleValue();
DecimalFormat
df=new
DecimalFormat("#.00");
stal.add(new
Statistics("卷煙營銷",
b0.longValue(),Double.parseDouble(df.format(b0.doubleValue()/早跡zs*100))));
stal.add(new
Statistics("專賣法規",
b1.longValue(),Double.parseDouble(df.format(b1.doubleValue()/zs*100))));
stal.add(new
Statistics("煙葉生產",
b2.longValue(),Double.parseDouble(df.format(b2.doubleValue()/zs*100))));
stal.add(new
Statistics("政風行風",
b3.longValue(),Double.parseDouble(df.format(b3.doubleValue()/zs*100))));
stal.add(new
Statistics("人事勞資",
b4.longValue(),Double.parseDouble(df.format(b4.doubleValue()/zs*100))));
stal.add(new
Statistics("其他咨詢",
b5.longValue(),Double.parseDouble(df.format(b5.doubleValue()/zs*100))));
return
stal;
}
B. hibernate如何執行原生sql插入 即用hibernate執行insert into table values();
首先幫你要知道,有很多技術框架可以的。就說通過通過hibernate的ORM吧。
寫個POJO類,再調用它的對象,PO;
創建session對象,
Session s=HibernateSessionFactory.getSession();
s.save(PO);
Transaction tx=s.beginTransaction();
tx.commit();
C. 怎樣在hibernate中用sql做insert,萬分感謝我快瘋掉了!!!
算你走運了。我三天前遇上了這個情況,不過我自己瞎弄解決了。下面是代碼。
public void insertBySql(final String sql,final Object[] values)
{
List list= (List)getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException{
Query query= session.createSQLQuery(sql);
for (int i = 0 ; i < values.length ; i++)
{
query.setParameter( i, values[i]);
}
query.executeUpdate();
Object o=null;
return o;
}
}
);
}
public void saveModerator(Long usId,String kindId,Long roleId)
{
String sql="insert into bbs.t_moderator(us_id,kind_id,role_id) values(?,?,?)";
Object[] o={usId,kindId,roleId};
insertBySql(sql,o);
}
D. hibernate 執行sql語句出現queryException
你使用的是什麼資料庫啊?oracle中你select後面的在group by中必須全部寫上,否則報錯。但是mysql好像不會有問題。也就是說這樣
select t.mainorgan,t.dsffdate,sum(t.amount) as amount,sum(t.totalamt) as totalamt,sum(t.totalcnt) as totalcnt,sum(t.amount1) as amount1 from DSFF_FEE t where t.organid=0100100014 group by t.mainorgan,t.dsffdate,amount,totalamt,totalcnt,amount1 order by t.dsffdate desc
這樣你在試試
E. nhibernate 怎麼寫sql語句啊 急
nhibernate 怎麼寫sql語句啊 急
NHibernate 檢視生成的sql語句:
其實就是Interceptor的應用, 原始碼中Interceptor的預設實現是EmptyInterceptor,
[Serializable]
public class EmptyInterceptor : IInterceptor
{ 前面省略n行程式碼
public SqlString OnPrepareStatement(SqlString sql)
{
return sql;
}
} public class MyInterceptor : EmptyInterceptor
{
public override NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql)
{
return base.OnPrepareStatement(sql);
}
} 我們要做的就是繼承EmptyInterceptor,重寫OnPrepareStatement()方法,重寫方法裡面就是你大展拳腳的地方了,
想寫檔案寫檔案,想輸出到頁面就輸出到頁面,什麼都不做都可以,如上
怎麼用呢?
public override void Update(Admin entity)
{
ISession session = HibernateTemplate.SessionFactory.OpenSession(new MyIntercepotr);
session.Update(entity);
session.Flush();
}
在你想要檢視的操作中,開啟session 的時候新增上自定義的攔截器就可以了,想給所有的操作都配置的話就要用到全域性配置檔案了。
重寫OnPrepareStatement()的時候一句話都不改,我只是在這里打一個斷點而已,只要看看生成的sql語句就行了,然後去修改配置檔案再來debug,確認怎麼配置生產的sql最優。
用LinqPad檢視Nhibernate生成的sql語句
使用Nhibernate開發一般都要對Nhibernate生成的sql語句進行檢視及分析,檢視Nhibernate生成的sql語句,可以使用NHProfiler和log4。但NHProfiler是要付費的(當然,在天朝,你懂的……),用log4配置比較麻煩。今天在網上檢視Linq to Nhibernate資料的時候發現了一個工具LinqPad,於是又找了相關資源,發現它還真能實現Nhibenate語句的檢視。廢話少說,看下面的使用方法吧!
1、 下載LinqPad,地址::linqpad./
2、 配置LinqPad,執行LinqPad,在選單里選擇Query—>Query Propeties;在選項卡中Additional References,點選「Browse…」按鈕,選擇專案中必要的Dll。
Dll包括:資料庫驅動dll,實體對映dll(圖中的Entity),nhibernate相關的dll
如何播放藍光碟?急!
要藍光播放器啊
tmt
powerdvd
aurora blu-ray player
隨便弄個破解的就成
你要是不切換字幕音訊啥的,就BDMV 檔案里邊,找最大的.m2ts 的檔案
急,女朋友讓猜迷語呢!!
名字,結婚後,女人是不會用男人的名字的,也不對。
只有男人的姓氏,才是正確答案,理由如下:
1、東方女人在結婚後,人會稱其「某太太」,這個「某」就是老公的姓氏。
西方女人在結婚後,就會將姓改為和老公一樣。
2、長度上,東方的姓氏通常只有一個字,而西方姓氏卻是一串字母,比東方的長。
3、男人當和尚後,只有法號,沒有姓名,所以不用。
小金毛拉肚子··急
是吃撐的拉肚子就給他吃些健胃消食的葯
要是吃壞肚子了就給它喝一支慶大黴素的注射液
關於基金定投---急!
用身份證登陸登陸你買的基金的基金公司網站
密碼是你的身份證後6位數字。。
登陸進去後,就可以查到您所想知道的資訊了!
還有一種方式是你去銀行櫃台列印基金對賬單,上面也會有你想知道的資訊!
急!化學,SO2的制備
應該該不會產生H2,可以用排NaOH溶液的方法收集,再點燃收集到的氣體看看是不是H2。但估計正常情況下,收集不到氣體。
寫一個小片段~~~急
今天舉行同事聚餐,公司幾個美女打扮的千姿百態,在這個風和日麗的天氣里,一起去「全聚德」烤鴨店撮了一頓,大家都對那烤鴨贊不絕口,一邊津津有味的吃,一邊興致勃勃的侃大山,公司的美女真是多,鶯鶯燕燕坐滿一屋芳菲,真是百花盛開呀!
數學題,求解答,急啊
我敢打賭 你上課沒認真聽
4:sin(2x+π/2)=cos2x,這是三角函式的誘導公式 書上有 y=cos2x是偶函式 這種東西你畫個圖就容易理解了!
5:設a=(i,j) b=(x,y) 若ab, i/x=j/y
6:a·b=|a|*|b|cos<a,b> 這是公式 推導過程 自己看書
7:橫座標伸長2倍 就是擴大2倍 那麼就是用1/2x替換以前的x 就行了!這個還是要根據自己畫圖來理解!
8:[π/2,π]之間 就確定了cosΘ的正負 在[π/2,π]之間 cosΘ為負數,至於你後面那個式子
是根據二倍角公式 推導而來的
這是二倍角公式的其中一個
cos2α=cos²α-sin²α
=1-2sin²α
=2cos²α-1
上式中 可以找到你要的依據!
不過你字還算可以!
usewildcards是什麼意思,急!
Use Wildcards
使用萬用字元;
Use Wildcards
使用萬用字元;
Use Wildcards
使用萬用字元;
布滿造句長一點,急!
因為要搶救傷員,軍醫在手術室里忙了幾天幾夜,眼睛布滿了血絲,讓人既心疼又感動。
滿意請採納!謝謝!