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
使用万用字符;
布满造句长一点,急!
因为要抢救伤员,军医在手术室里忙了几天几夜,眼睛布满了血丝,让人既心疼又感动。
满意请采纳!谢谢!