/**
* 执行存储过程
* @param 存储过程名称
* @param 所需参数
* @return 存储过程发返回的错误信息
* @author wuhao
* @throws Exception
*/
public static void executeProc(String call,Object[] params) throws Exception{
String result = "";
Connection conn = null;
CallableStatement proc = null;
try {
conn = dao.getSessionFactory().openSession().connection();
conn.setAutoCommit(false);
proc = conn.prepareCall(call);
int index = 0;
if(params != null && params.length > 0){
for (int i = 1; i <= params.length; i++) {
proc.setObject(i, params[i-1]);
index +=1;
}
}
index = index+1;
proc.registerOutParameter(index,Types.VARCHAR);
proc.execute();
result = proc.getString(index);
if( null != result && !result.equals("") ){
conn.rollback();
} else {
conn.commit();
}
} catch (Exception e) {
conn.rollback();
throw e;
} finally {
if(null != proc)
proc.close();
if(null != conn)
conn.close();
}
}