使用CallableStatement接口调用存储过程
程序员文章站
2022-05-29 22:50:04
...
1. CallableStatement接口的引入
2. 使用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学习
上一篇: HttpClient简介与实现
下一篇: HttpClient使用代理IP