Spring+hibernate 中如何执行sql语句操作????

d2lorder 2007-12-25 11:28:12
我的代码片断:
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;

Session session = null;
try {
session = getHibernateTemplate().getSessionFactory().openSession();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "insert into {Org} (id,name) values(-1,+"+rootName+")";
String[] tableName = {"Org"};
Class[] className = {Org.class};
Query query = session.createSQLQuery(sql ,tableName, className);
以上经过测试没有语法错误,但是这里的query 是net.sf.hibernate.Query ,查过它的所有方法,没有execute 类似的方法。
不知道如何执行,试过list , uniqueResult 方法,结果报错。 本人另一个hibernate 环境中的代码可以正常运行。

import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

import entity1.Duck;

public class TestHiber {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Session ses = null;
SessionFactory sf=new Configuration().configure().buildSessionFactory();
ses=sf.openSession();
// SQLQuery sq = ses.createSQLQuery("insert into Duck values(-1,\"gg\")");
// sq.executeUpdate();
String sql = "insert into {Duck} (id,head) values(-2,\"gaga\")";
String[] tableName = {"Duck"};
Class[] className = {Duck.class};
Query query = ses.createSQLQuery(sql,tableName,className);
query.executeUpdate();
}
}
呵呵,表达能力不强,最后在总结一下问题:
纯hibernate环境下,session.createSQLQuery 返回的是org.hibernate.Query对象,而该对象有executeUpdate()方法。 在spring 中,返回的是net.sf.hibernate.Query 对象,居然不能execute,郁闷中~~~

不知道如何解决以上问题。。。。。难道使用spring hibernateTemplate 下的createSQLQuery 只能做查询工作吗??希望高手指点。。。
...全文
1334 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaocainiao0703 2007-12-26
  • 打赏
  • 举报
回复
类导入问题,以前遇见过!
看看你是什么版本的,然后导相应的类就ok了!
colin5115579 2007-12-26
  • 打赏
  • 举报
回复
对,一定版本的问题,我以前就遇到过。
gougou8180 2007-12-25
  • 打赏
  • 举报
回复
org.hibernate.Query 这个是hibernate3.x
net.sf.hibernate.Query这个是hibernate2.x的吧

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧