zoukankan      html  css  js  c++  java
  • Hibernate如何执行存储过程?

    Hibernate如何执行存储过程?

    @Override
    public Boolean setVarValue(final String processInstanceId, final String varName,
    final String varValue) {
    return getHibernateTemplate().execute(new HibernateCallback<Boolean>() {
    @Override
    public Boolean doInHibernate(Session session) throws HibernateException{
    Connection conn = null;
    CallableStatement callable = null;
    boolean flag = false;
    try {
    conn = getConnection();
    callable = conn.prepareCall("{CALL PROCESS_WARN.set_var_value(?,?,?)}");
    callable.setString(1, processInstanceId);
    callable.setString(2, varName);
    callable.setString(3, varValue);
    callable.execute();
    flag = true;
    } catch (Exception e) {
    logger.error("execute procedure PROCESS_WARN.set_var_value mistakes !!!");
    e.printStackTrace();
    } finally {
    try {
    if (null != callable)
    callable.close();
    if (null != conn)
    conn.close();
    if (null != session)
    session.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    return flag;
    }
    });
    }
    、、、、、、、、、、、、、、、、

    @Override
    public Map<String, String> startProcess(final String warningFormId,
    final String operationClassKey, final String cityOrgId) {
    return getHibernateTemplate().execute(new HibernateCallback<Map<String,String>>() {
    @Override
    public Map<String,String> doInHibernate(Session session) throws HibernateException{
    Connection conn = null;
    CallableStatement callable = null;
    Map<String,String> ret = new HashMap<String,String>();
    try {
    conn = getConnection();
    callable = conn.prepareCall("{CALL PROCESS_WARN.START_PROCESS(?,?,?,?,?)}");
    callable.setString(1, operationClassKey);
    callable.setString(2, warningFormId);
    callable.setString(3, cityOrgId);
    callable.registerOutParameter(4, oracle.jdbc.OracleTypes.VARCHAR);
    callable.registerOutParameter(5, oracle.jdbc.OracleTypes.VARCHAR);
    callable.execute();
    ret.put("process_instance_id", callable.getObject(4).toString());
    ret.put("new_task_id_list", callable.getObject(5).toString());
    } catch (Exception e) {
    logger.error("execute procedure PROCESS_WARN.START_PROCESS mistakes !!!");
    e.printStackTrace();
    if(e.getMessage().indexOf("ORA-20012") != -1){
    String [] strTemp = e.getMessage().split("#");
    String msg = "未设置下一步骤的执行人!";
    if(strTemp.length > 1){
    msg = strTemp[1];
    }
    throw new NoAssigneeException(msg);
    }

    } finally {
    try {
    if (null != callable)
    callable.close();
    if (null != conn)
    conn.close();
    if (null != session)
    session.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    return ret;
    }
    });
    }
  • 相关阅读:
    搭建Hadoop2.6.0+Spark1.1.0集群环境
    分别用Eclipse和IDEA搭建Scala+Spark开发环境
    poj 2586 Y2K Accounting Bug【贪心】【刷题计划】
    poj2109 Power of Cryptography【坑~泪目】【水过】【刷题计划】
    例题6.1 铁轨【算法入门经典】
    第三章 队列【数据结构】【链队列】【循环队列】
    poj 1328 Radar Installation【贪心】【刷题计划】
    hdu 2364 Escape【模拟优先队列】【bfs】
    poj 2965 The Pilots Brothers' refrigerator 【dfs+枚举】【双十一大礼包】
    6.3.3 二叉树重建【算法入门经典】【双十一大礼包】
  • 原文地址:https://www.cnblogs.com/YuyuanNo1/p/9235367.html
Copyright © 2011-2022 走看看