1. CallableStatement接口的引入
CallableStatement主要是调用数据库中的存储过程,CallableStatement也是Statement接口的子接口。在使用CallableStatement时可以接收存储过程的返回值。
2. 使用CallableStatement接口调用存储过程
void registerOutParameter(int parameterIndex,int sqlType)
按顺序位置parameterIndex将OUT参数注册为JDBC类型sqlType。
DELIMITER &&
CREATE PROCEDURE pro_getBookNameById(IN bookId INT,OUT bN VARCHAR(20))
BEGIN
SELECT bookName INTO bn FROM t_book WHERE id=bookId;
END
&&
DELIMITER;
CALL pro_getBookNameById(1,@bookName);
SELECT @bookName;
TestCallableStatement.java
package com.andrew.jdbc.chap07;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Types;
import com.andrew.jdbc.util.DbUtil;
public class TestCallableStatement {
private static DbUtil dbUtil = new DbUtil();
// 调用存储过程,通过id查询bookName
private static String getBookNameById(int id) throws Exception {
Connection con = dbUtil.getConnection();
String sql = "{CALL pro_getBookNameById(?,?)}";
CallableStatement callableStatement = con.prepareCall(sql);
callableStatement.setInt(1, id); // 设置第一个参数
callableStatement.registerOutParameter(2, Types.VARCHAR); // 设置返回类型
callableStatement.execute();
String bookName = callableStatement.getString("bn"); // 获取返回值
dbUtil.close(callableStatement, con);
return bookName;
}
public static void main(String[] args) throws Exception {
System.out.println("图书名称是:" + getBookNameById(1));
}
}
运行结果:
图书名称是:java学习
分享到:
相关推荐
在Java编程中,CallableStatement接口是用来执行SQL存储过程或函数的。在Oracle数据库中,存储过程可以接收输入参数、输出参数或两者都有,并且可能返回结果集。本篇将详细阐述如何使用CallableStatement调用Oracle...
我们使用 CALLABLESTATEMENT 来调用存储过程,获取游标类型参数的值,并将其转换为 ResultSet 对象。最后,我们使用 while 循环来遍历 ResultSet 对象,并将结果打印出来。 六、结论 本示例展示了如何使用 ...
3. **准备CallableStatement**:对于调用存储过程,我们需要使用`CallableStatement`对象,它是`PreparedStatement`的子类,专门用于调用数据库存储过程。通过`Connection`对象的`prepareCall()`方法创建。 4. **...
在Java编程中,CallableStatement接口是用来执行SQL存储过程或函数的。Oracle数据库是广泛使用的数据库系统,它支持存储过程的创建和调用。本篇将详细介绍如何使用CallableStatement调用Oracle存储过程,并处理返回...
3. 准备CallableStatement:使用`Connection.prepareCall()`方法创建CallableStatement对象,它是执行存储过程的接口。 4. 设置参数:根据存储过程的输入参数,调用CallableStatement的`registerOutParameter()`或`...
然后,使用`CallableStatement`对象来调用存储过程。`CallableStatement`是`PreparedStatement`的子接口,专门用于执行存储过程或函数。 ```java CallableStatement cstmt = conn.prepareCall("{call adddept(?,?,?...
本篇文章将深入探讨如何使用JDBC调用存储过程。 首先,存储过程是预编译的SQL代码集合,它们封装在数据库中,可以接收输入参数,处理数据,然后返回结果或输出参数。存储过程在提高性能、增强安全性和简化复杂操作...
### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...
调用存储过程的关键在于使用CallableStatement接口,它是PreparedStatement的子接口,专门用于调用数据库的存储过程。以下是一个基本的调用流程: 1. 加载JDBC驱动:确保已经引入了对应数据库的JDBC驱动库,例如...
JDBC提供了一组接口和类,使得Java程序能够执行SQL语句,包括调用存储过程。主要涉及的接口有`java.sql.CallableStatement`,它是`PreparedStatement`的子接口,用于执行数据库的存储过程。 3. **CallableStatement...
3. **创建CallableStatement对象**:`CallableStatement`是JDBC提供的用于调用存储过程的接口。使用`Connection`对象的`prepareCall()`方法创建实例,例如`CallableStatement cs = conn.prepareCall("{call sp_name ...
在Hibernate中,调用存储过程通常通过Session对象的createNativeQuery()方法实现,这个方法用于创建原生SQL查询,可以方便地调用数据库的自定义SQL或者存储过程。以下是一个简单的示例,展示了如何调用一个不带参数...
调用存储过程主要通过CallableStatement接口,它是PreparedStatement的一个子接口,专为调用数据库的存储过程而设计。以下是一个简单的调用存储过程的步骤: 1. **加载驱动**:首先,我们需要加载对应数据库的JDBC...
以下是如何使用 CallableStatement 调用存储过程的详细步骤: 1. **创建存储过程**: - 在 MySQL 中,你可以使用 `CREATE PROCEDURE` 语句创建存储过程。例如,这里创建了三个不同的存储过程:p1(无参数)、p2...
总结来说,Java调用存储过程是数据库操作中的一种常见技术,通过CallableStatement接口,我们可以方便地在Java程序中与数据库进行交互,利用存储过程带来的优势。理解并熟练掌握这一技能对于提升Java数据库编程能力...
3. **调用存储过程**:使用`CallableStatement`对象来执行存储过程。对于带参数的存储过程,需要设置参数并执行`executeProcedure()`。 ```java String procedureName = "{call findAllBook(?) }"; // 例如,调用...
### Java调用存储过程的两种方法 在Java中调用数据库中的存储过程是常见的操作之一,这不仅可以提高程序性能和代码可维护性,还可以更好地利用数据库的功能。根据提供的标题、描述以及部分内容,本文将详细介绍Java...
调用存储过程的Java代码通常使用`CallableStatement`接口。在例子中,`setDeathAge`方法创建了一个`CallableStatement`实例,设置参数,然后执行存储过程。`CallableStatement`的`execute`方法执行存储过程,但不...