您的位置:首页 > 数据库 > Oracle

Java 调用Oracle 存储过程

2013-06-07 11:23 507 查看
调用带返回结果集存储过程:

/**
* 调用带返回结果集存储过程
*
* @param procName
* @param param
* @return
* @throws SQLException
* @throws NoFreeConnectionException
*/
public DataSource execuceProc(String procName, String[] param) throws SQLException, NoFreeConnectionException {
Connection con = null;
CallableStatement getResults = null;
ResultSet rs = null;

StringBuffer build = new StringBuffer();
build.append("{ call ").append(procName);

build.append("(");
if (param != null && param.length > 0) {
for (int i = 0; i < param.length; i++) {
build.append("'").append(param[i]).append("',");
}
}
build.append("?) }");

try {
con = ConnectDBBean.getConnection(ReadWriteDBPool.readPool);
getResults = con.prepareCall(build.toString(), ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
getResults.registerOutParameter(1, OracleTypes.CURSOR);
getResults.execute();
rs = (ResultSet) getResults.getObject(1);
this.rsToDataSource(rs);
} finally {
try {
if (rs != null) {
rs.close();
}
if (getResults != null) {
getResults.close();
}
} catch (SQLException e) {
log.error(e);
}

ConnectDBBean.closeConnection(ReadWriteDBPool.readPool, con);
}

return new DataSourceType();
	}


调用带参存储过程:

/**
* 调用带参存储过程
*
* @param procName
* @param param
* @return
* @throws SQLException
* @throws NoFreeConnectionException
*/
@SuppressWarnings("unchecked")
public static void execuceProc(String procName, List param) throws SQLException, NoFreeConnectionException {
Connection con = null;
CallableStatement getResults = null;

StringBuffer build = new StringBuffer();
build.append("{ call ").append(procName);

build.append("(");
if (param != null && param.size() > 0) {
for (int i = 0; i < param.size(); i++) {
if (i > 0)
build.append(",");
build.append("'").append(param.get(i)).append("'");
}
}
build.append(") }");
try {
con = ConnectDBBean.getConnection(ReadWriteDBPool.readPool);
getResults = con.prepareCall(build.toString(), ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
getResults.execute();
} finally {
try {
if (getResults != null) {
getResults.close();
}
} catch (Exception e) {
log.error(e);
}
ConnectDBBean.closeConnection(ReadWriteDBPool.readPool, con);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: