在JAVA中,如何通过数组传递数据给存储过程。
目前,正在开发一个JAVA项目,需要传递一组数据给存储过程,比如批量创建一组用户。如何传递批量数据给存储过程那?请给一个JAVA和存储过程的例子。 问题点数:100、回复次数:4Top
1 楼liuyi8903(不让疑问伴随)回复于 2004-12-10 12:17:17 得分 40
/**
* 调用存储过程实现重新统计汇总
* @param date
*/
private static void getProcedure(String date) throws DAOException {
int count = 0;
DBconn db = null;
ResultSet rs = null;
Connection conn = null;
CallableStatement call = null;
try {
db = new DBconn();
conn = db.getConnection();
//此处为调用后台存储过程方法
call = conn.prepareCall("{call pro_zjsgjk(?,?)}");
//登记输出参数为数字(out)
call.registerOutParameter(2, java.sql.Types.INTEGER);
//登记输入参数为日期,一般为默认值,也就是系统当前时间
call.setString(1, date);
rs = call.executeQuery();
count = call.getInt(2);
System.out.println("批量新增"+count+"条");
}
catch (ConnectionException e) {
throw new DAOException(e, "任务计划调度失败:钻井施工简况!");
}
catch (SQLException e) {
throw new DAOException(e);
}
finally {
if (rs != null) {
try {
rs.close(); //关闭结果集
}
catch (Exception e) {
e.printStackTrace();
}
}
if (call != null) {
try {
call.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
if (conn != null) {
try {
conn.close(); //关闭连接
}
catch (Exception e) {
e.printStackTrace();
}
}
}
}Top
2 楼CodeMagic(ErrorDetector)回复于 2004-12-10 13:12:44 得分 30
在存储过程端将参数定义为数组类型,
type arr is varray(100) of varchar2(30);Top
3 楼orlando00()回复于 2004-12-10 14:54:17 得分 0
liuyi8903,不好意思,可能我没有说清楚。
我是要传一个数组给存储过程,比如说包含五个用户名称的数组。这该如何做哪?
CodeMagic,Java端应该如何实现那?能给一个例子代码吗?Top
4 楼CodeMagic(ErrorDetector)回复于 2004-12-10 14:58:45 得分 30
在java中用一个string[]类型的参数来调用Top





