/**
* 使用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);
}
}
}

最新文章

  1. Macbook被格式化之后
  2. 解决方案:带格式化文本控件( RichText)的模板如果在InfoPath的浏览器中加载可能出现 COM 组件的80040154错误
  3. Javascript 中的 && 和 || 使用小结
  4. 图的深度优先搜索算法DFS
  5. PHP - 创建一个类
  6. Jquery 类似新浪微博,鼠标移到头像,用浮动窗口显示用户信息,已做成一个jquery插件
  7. js自定义的简易滚动条
  8. python专题-Mysql数据库(python2._+ Mysqldb)
  9. 老男孩最新Python全栈开发视频教程(92天全)重点内容梳理笔记 看完就是全栈开发工程师
  10. TensorFlow-谷歌深度学习库 图片处理模块
  11. Java公开课-02.抽象类和接口
  12. CSS入门知识汇总
  13. 简单的连接数据库的java程序模板
  14. roslaunch & gdb 调试指南(待补充)
  15. vue编程式路由实现新窗口打开
  16. SQL常用增删改查
  17. OpenGL.ProjectiveTextureMapping
  18. asp.net页如何获取母版页控件
  19. mysql去除严格模式/插入数据库遇到重复保证唯一
  20. [POI2014]Cards

热门文章

  1. Java习惯用法总结
  2. Java学习日记-6 继承
  3. Selenium webdriver 高级应用
  4. SWIFT国际资金清算系统
  5. hibernate ThreadLocal
  6. JavaScript typeof obj === ‘object’ 这样写有什么问题
  7. HDU 2896 AC自动机 裸题
  8. [转] java中注解的使用与实例
  9. intellij安装Scala及Python插件
  10. WPF 打开文件 打开路径对话框