hibernate完成oracle存储过程(stored procedures)


import java.sql.CallableStatement;
import java.sql.Connection;
import org.apache.log4j.Logger;
import org.hibernate.classic.Session;

import com.check.base.BaseHibernate;
import com.check.collection.dao.CollectionDao;

public class CollectionHibernate extends BaseHibernate implements CollectionDao {
private Logger logger = Logger.getLogger(CollectionHibernate.class);
/* 采集OBDATA
*/
public boolean getOBData(String oldtime,String citytype, String cityType, String deptmentIds) throws Exception {
// TODO 采集

logger.info("CollectionHibernate getOBData is Begin...");
boolean bool = false;
CallableStatement stmt = null;
Connection conn = null;
Session session = null;
try{
session = this.getHibernateTemplate().getSessionFactory().openSession();
conn = session.connection();
stmt = conn.prepareCall("{call Proc_GETLINKDATA(?,?)}");
stmt.setString(1,oldtime);
stmt.setString(2,citytype);
stmt.execute();

if (deptmentIds.length() > 0) {
stmt = conn.prepareCall("{call DATADELETEBYDATEANDDEPT(?, ?, ?)}");
stmt.setString(1, "");
stmt.setString(2, deptmentIds);
stmt.setString(3, cityType);
stmt.execute();
}

conn.commit();
bool = true;
}catch(Exception e){
e.printStackTrace();
conn.rollback();
}finally{
if (session != null) {
session.close();
}
}
logger.info("CollectionHibernate getOBData is End...");
return bool;
}

}


特别注意的是调用普通HQL语句的时候HQL里面不能有call关键字,以为hibernate会把他认为是调用存储过程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值