java中如何调用数据库的存储过程
来源:互联网 发布:知乎 日本的穷人 编辑:程序博客网 时间:2024/06/14 06:12
CallableStatement执行存储过程
/** * 使用CablleStatement调用存储过程 * @author APPle * */public class Demo1 {/** * 调用带有输入参数的存储过程 * CALL pro_findById(4); */@Testpublic void test1(){Connection conn = null;CallableStatement stmt = null;ResultSet rs = null;try {//获取连接conn = JdbcUtil.getConnection();//准备sqlString sql = "CALL pro_findById(?)"; //可以执行预编译的sql//预编译stmt = conn.prepareCall(sql);//设置输入参数stmt.setInt(1, 6);//发送参数rs = stmt.executeQuery(); //注意: 所有调用存储过程的sql语句都是使用executeQuery方法执行!!!//遍历结果while(rs.next()){int id = rs.getInt("id");String name = rs.getString("name");String gender = rs.getString("gender");System.out.println(id+","+name+","+gender);}} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);} finally {JdbcUtil.close(conn, stmt ,rs);}}/** * 执行带有输出参数的存储过程 * CALL pro_findById2(5,@NAME); */@Testpublic void test2(){Connection conn = null;CallableStatement stmt = null;ResultSet rs = null;try {//获取连接conn = JdbcUtil.getConnection();//准备sqlString sql = "CALL pro_findById2(?,?)"; //第一个?是输入参数,第二个?是输出参数//预编译stmt = conn.prepareCall(sql);//设置输入参数stmt.setInt(1, 6);//设置输出参数(注册输出参数)/** * 参数一: 参数位置 * 参数二: 存储过程中的输出参数的jdbc类型 VARCHAR(20) */stmt.registerOutParameter(2, java.sql.Types.VARCHAR);//发送参数,执行stmt.executeQuery(); //结果不是返回到结果集中,而是返回到输出参数中//得到输出参数的值/** * 索引值: 预编译sql中的输出参数的位置 */String result = stmt.getString(2); //getXX方法专门用于获取存储过程中的输出参数System.out.println(result);} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);} finally {JdbcUtil.close(conn, stmt ,rs);}}}
0 0
- java中如何调用数据库的存储过程
- java程序如何调用mysql数据库的存储过程
- 在JAVA中实现数据库存储过程的统一调用
- 如何调用数据库的存储过程
- java中如何最简单的调用存储过程
- java调用Oracle数据库的存储过程
- 调用存储过程,java中通过bboss persistent实现数据库存储过程的调用(位置变量绑定)
- 存储过程调用,java中通过bboss persistent实现数据库存储过程的调用(命名变量绑定)
- JAVA调用数据库存储过程
- Java调用数据库存储过程
- java调用数据库存储过程
- JAVA调用数据库存储过程
- JAVA调用数据库存储过程
- JAVA调用数据库存储过程
- JAVA调用数据库存储过程
- JAVA调用数据库存储过程
- JAVA调用数据库存储过程
- Java中调用数据库的存储过程存储函数和包体
- 电脑病毒及其防治策略
- 153. Find Minimum in Rotated Sorted Array leetcode binary search
- 第一次【测试】
- C++11新特性之列表初始化
- jjb command
- java中如何调用数据库的存储过程
- Qt设置窗体背景
- JAVA设计模式(一)-开篇
- MySQL编码不一致导致乱码问题总结
- Mac 装机必备app
- 分布式消息队列RocketMQ与Kafka架构上的巨大差异之1 -- 为什么RocketMQ要去除ZK依赖?
- Win10应用商店出现0x80072EE2错误的解决方法
- 二,redis数据类型-String
- Ubuntu 环境中多线程下载工具Axel的安装与使用