sql:CallableStatement执行存储过程
生活随笔
收集整理的这篇文章主要介绍了
sql: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);}}
}
转载于:https://www.cnblogs.com/cai170221/p/11236053.html
总结
以上是生活随笔为你收集整理的sql:CallableStatement执行存储过程的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: SEO技巧:好的域名是网站成功的开始
- 下一篇: 突然领悟