第06章 JDBC调用存储过程
在MySQL中创建存储过程
1 | create procedure mypro(in n int, out sum int) |
使用JDBC代码调用存储过程
1 | package com.powernode.jdbc; |
执行结果:
程序解说:
使用JDBC代码调用存储过程需要以下步骤:
- 加载MySQL的JDBC驱动程序
使用以下代码加载MySQL的JDBC驱动程序:
1 | Class.forName("com.mysql.jdbc.Driver"); |
- 连接到MySQL数据库
使用以下代码连接到MySQL数据库:
1 | Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "user", "password"); |
其中,第一个参数为连接字符串,按照实际情况修改;第二个参数为用户名,按照实际情况修改;第三个参数为密码,按照实际情况修改。
- 创建CallableStatement对象
使用以下代码创建CallableStatement对象:
1 | CallableStatement cstmt = conn.prepareCall("{call mypro(?, ?)}"); |
其中,第一个参数为调用存储过程的语句,按照实际情况修改;第二个参数是需要设定的参数。
- 设置输入参数
使用以下代码设置输入参数:
1 | cstmt.setInt(1, n); |
其中,第一个参数是参数在调用语句中的位置,第二个参数是实际要传入的值。
- 注册输出参数
使用以下代码注册输出参数:
1 | cstmt.registerOutParameter(2, Types.INTEGER); |
其中,第一个参数是要注册的参数在调用语句中的位置,第二个参数是输出参数的类型。
- 执行存储过程
使用以下代码执行存储过程:
1 | cstmt.execute(); |
- 获取输出参数值
使用以下代码获取输出参数的值:
1 | int sum = cstmt.getInt(2); |
其中,第一个参数是输出参数在调用语句中的位置。
- 关闭连接
使用以下代码关闭连接和语句对象:
1 | cstmt.close(); |
上述代码中,可以根据实际情况适当修改存储过程名、参数传递方式、参数类型等内容。
评论