ssh框架,我想用hibernateTemplate来执行SQL语句,而不是HQL语句,怎么办啊,求高手

如题所述

第1个回答  2012-05-24
hibernateTemplate里面需要封装sql语句的方法,如果没有封装,不好意思用不了追问

这个要怎么封装sql?

追答

public int excuteUpdateWithSQL(String sql, Object[] params) {
Session session = null;
Transaction tx = null;
Query query = null;
int row = 0;

try {
session = HibernateUtil.getSession();
tx = session.beginTransaction();
query = session.createSQLQuery(sql);
initParams(query, params);
row = query.executeUpdate();
tx.commit();
} catch (Exception e) {
HibernateUtil.rollbackTx(tx);
throw new DaoException(e);
} finally {
HibernateUtil.closeSession(session);
}
return row;
}这就是封装类里面的其中一个sql方法

第2个回答  2012-05-24
使用回调
getHibernateTemplate().execute(new HibernateCallback{
public Long doInHibernate(Session session) throws HibernateException, SQLException {
//TODO something
}
});
第3个回答  2012-05-24
SQLQuery query=session.createSQLQuery(sql);追问

只能这样吗,通过hibernateTemplate得到session?

追答

我知道最常用的就是这种,可能还有其他的,你等其他人的回答吧

追问

我是这样得到session的,但是运行SQL还是报错的
SessionFactory ssf=hibernateTemplate.getSessionFactory();
Session session=ssf.openSession();
Query query=session.createQuery(“select * from role”);
你是怎么得到session的呢?

追答

SessionFactory sf=hibernateTemplate.getSessionFactory();
Session session=sf.openSession();
Query query = session.createSQLQuery(sql);

执行原生SQL

本回答被提问者和网友采纳

SSH整合出问题了请教高手帮帮老弟
你应该用hql语句来实现插入数据!例如:插入全部数据:public boolean addInfo(Info info) throws Exception { boolean flag=false;try{ System.out.println("text:"+info.getText());infoDao.getHibernateTemplate().save(info);flag=true;}catch(Exception e){ e.printStackTrace();flag=false;} ret...

ssh框架控制台打印的sql语句多了个0之前在另外的电脑上可以跑起来_百度...
这个是Hiberante 映射的sql语句所以有0,是没有问题的

ssh项目中的问题
先打印看看你的字母和汉字有没有在引号里 然后看看配置文件里的字段配置的正确吗 最好把你的代码发来看看,这个错误很多原因都能引起的 List list=this.getHibernateTemplate().find("from User where userID="+userId+"and username="+"'"username+"'");这样试试 不行再找我 ...

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 ...

ssh2中hibernate使用时,在控制台有一条sql语句会连续输出两次是什么情况...
可能是你哪里设置有写问题吧,比如sql都打印,然后又要求sql debug,貌似hibernate把执行的sql转化成hql,在控制台也打印一遍

...framework.jdbc.UncategorizedSQLException SSH查询报错问题,急...
但原因都不是“com.microsoft.sqlserver.jdbc.SQLServerException: 没有为参数号 1 设置值。”没有setParameter,所以没有找到参数 另外用到OpensessionInView。但是用super.getHibernateTemplate().find(HQL)就可以,就不报错,就是用get时候报错。这是为啥?这个可能是你数据转型时候的问题 ...

在ssh项目开发中,如何获取页面传来的值
from table where name='%书名%';

ssh删除更新问题 高分
SQLQuery sqlQuery = session.createSQLQuery(sql.toString());HibernateDaoSupport这个父类有 getSession()这个方法的。或者 Session session = getHibernateTemplate().getSessionFactor().openSession();也可以。不要老知道说SSH,要理解好它们的意义,这些不是一定要整合用的,要看实际需求,而且它们都有...

使用SSh框架中使用到了Query分页查询,无法传递参数
首先代码本身有没有问题不说,先做两件事情:1,确定你的数据库连接没问题,可以写一个简单的例子测试一下;2,确保你的参数传到了这个方法里边 做了这两件事情以后,如果还是查不到数据,那么出问题的范围就很小了。

用SSH框架的在一对多关系中,想通过外键查询所有的数据,怎么弄?
from contracts c left join Outforms outforms on outforms.contracts.cid=?",cid 这样效果会是根据合同表的cid,显示所有cid=oid的合同表的数据 希望对你有所帮助

相似回答