CallableStatement执行存储过程
2024-09-11 01:49:09
/**
* 使用CablleStatement调用存储过程
* @author APPle
*
*/
public class Demo1 { /**
* 调用带有输入参数的存储过程
* CALL pro_findById(4);
*/
@Test
public void test1(){
Connection conn = null;
CallableStatement stmt = null;
ResultSet rs = null;
try {
//获取连接
conn = JdbcUtil.getConnection(); //准备sql
String 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);
*/
@Test
public void test2(){
Connection conn = null;
CallableStatement stmt = null;
ResultSet rs = null;
try {
//获取连接
conn = JdbcUtil.getConnection();
//准备sql
String 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);
}
}
}
最新文章
- Macbook被格式化之后
- 解决方案:带格式化文本控件( RichText)的模板如果在InfoPath的浏览器中加载可能出现 COM 组件的80040154错误
- Javascript 中的 &;&; 和 || 使用小结
- 图的深度优先搜索算法DFS
- PHP - 创建一个类
- Jquery 类似新浪微博,鼠标移到头像,用浮动窗口显示用户信息,已做成一个jquery插件
- js自定义的简易滚动条
- python专题-Mysql数据库(python2._+ Mysqldb)
- 老男孩最新Python全栈开发视频教程(92天全)重点内容梳理笔记 看完就是全栈开发工程师
- TensorFlow-谷歌深度学习库 图片处理模块
- Java公开课-02.抽象类和接口
- CSS入门知识汇总
- 简单的连接数据库的java程序模板
- roslaunch &; gdb 调试指南(待补充)
- vue编程式路由实现新窗口打开
- SQL常用增删改查
- OpenGL.ProjectiveTextureMapping
- asp.net页如何获取母版页控件
- mysql去除严格模式/插入数据库遇到重复保证唯一
- [POI2014]Cards