java调用存储过程
来源:互联网 发布:js给body添加元素 编辑:程序博客网 时间:2024/05/01 13:27
- 什么是存储过程?
存储过程是指保存在数据库并在数据库端执行的程序。存储过程是为嵌入式SQL所设计
- 如何调用存储过程?
try{
int age = 39;
String poetName = "dylan thomas";
CallableStatement proc = connection.prepareCall("{ call set_death_age(?, ?) }");
proc.setString(1, poetName);
proc.setInt(2, age);
cs.execute();
}catch (SQLException e){ // ....}
传给prepareCall方法的字串是存储过程调用的书写规范。它指定了存储过程的名称,?代表了你需要指定的参数。
- 存储过程可以有返回值
所以CallableStatement类有类似getResultSet这样的方法来获取返回值。当存储过程返回一个值时,你必须使用registerOutParameter方法告诉JDBC驱动器该值的SQL类型是什么。你也必须调整存储过程调用来指示该过程返回一个值。
connection.setAutoCommit(false);
CallableStatement proc = connection.prepareCall("{ ? = call snuffed_it_when(?) }");
proc.registerOutParameter(1, Types.INTEGER);
proc.setString(2, poetName);
cs.execute();
int age = proc.getInt(2);
- 复杂的返回值
static void sendEarlyDeaths(PrintWriter out){
Connection con = null;
CallableStatement toesUp = null;
try {
con = ConnectionPool.getConnection();
// PostgreSQL needs a transaction to do this... con.
setAutoCommit(false); // Setup the call.
CallableStatement toesUp = connection.prepareCall("{ ? = call list_early_deaths () }");
toesUp.registerOutParameter(1, Types.OTHER);
toesUp.execute();
ResultSet rs = (ResultSet) toesUp.getObject(1);
while (rs.next()) {
String name = rs.getString(1);
int age = rs.getInt(2);
out.println(name + " was " + age + " years old.");
}
rs.close();
}
catch (SQLException e) { // We should protect these calls. toesUp.close(); con.close();
}
}
因为JDBC并不直接支持从存储过程中返回游标,我们使用Types.OTHER来指示存储过程的返回类型,然后调用getObject()方法并对返回值进行强制类型转换。
- Java调用存储过程
- Java 调用存储过程
- Java 调用存储过程
- JAVA调用存储过程
- java调用存储过程
- java调用存储过程
- Java调用存储过程
- java调用存储过程
- java调用存储过程
- java 调用存储过程
- JAVA调用存储过程
- java调用存储过程
- java调用存储过程
- java 调用存储过程
- Java调用存储过程
- java调用存储过程
- java调用存储过程
- Java调用存储过程
- 在Dynamic Proxy中取方法标注(annotations)要注意的问题
- 工作小记
- 你准备好了吗?别让雁儿飞了
- 在线繁体字转换
- 真正的手机密码大全!
- java调用存储过程
- 搬这里了 http://blog.csdn.net/gooing/
- 怎样才是一个真正的DBA
- CFileDialog文件对话框
- unicode和Ascii的转换
- 配置 SQL Server 以便使用 2 GB 以上的物理内存(包括SQL Server 2005)
- Delphi实现网页表单数据的自动提交
- 红警2(红色警戒)之尤里的复仇 局域网对战联机方法
- 要帮一个同学做一个数字水印的嵌入和导出的毕业设计