jdbc java数据库连接 5)CallableStatement 接口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了jdbc java数据库连接 5)CallableStatement 接口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4091字,纯文字阅读大概需要6分钟。
内容图文
![jdbc java数据库连接 5)CallableStatement 接口](/upload/InfoBanner/zyjiaocheng/473/d55e2f074af34aef927bb674e698e63c.jpg)
首先在sql中执行以下带有输入参数的代码:
1 DELIMITER $ 2 CREATE PROCEDURE pro_findById(IN sid INT) 3 BEGIN 4 SELECT * FROM person WHERE id = sid; 5 END $
那么,这条语句的存储过程代码就是
CALL pro_findById (?);
使用CallableStatement来执行:
1 /** 2 带有输入参数的存储语言 3 sql中先运行 4 DELIMITER $ 5 CREATE PROCEDURE pro_findById(IN sid INT) 6 BEGIN 7 SELECT * FROM person WHERE id = sid; 8 END $ 9 */ 10 private static void testIn() { 11 12 Connection conn = null; 13 CallableStatement stsm = null; 14 ResultSet rs = null; 15 try{ 16 //1:创建连接 17 conn = Jdbcutil.getConnection(); 18 19 //2:准备sql语言(带有存储过程的预编译语言) 20 String sql = "CALL pro_findById(?);"; 21 22 //3:执行预编译语言 23 stsm = conn.prepareCall(sql); 24 25 //4:设置参数 26 stsm.setInt(1, 4); 27 28 //5:发送参数,执行sql(注意:CallableStatement执行sql只有executeQuery()方法) 29 //返回ResultSet对象 30 rs = stsm.executeQuery(); 31 32 //6:遍历,打印出结果 33 while(rs.next()){ 34 int id = rs.getInt("id"); 35 String name = rs.getString("name"); 36 String sex = rs.getString("sex"); 37 System.out.println(id+","+name+","+sex); 38 } 39 } 40 catch(Exception e){ 41 e.printStackTrace(); 42 throw new RuntimeException(e); 43 } 44 //7:关闭连接 45 finally{ 46 Jdbcutil.close(conn, stsm, rs); 47 } 48 49 }
在sql中执行带有输入参数和输出参数的代码:
DELIMITER $ CREATE PROCEDURE pro_findout(IN sid INT ,OUT sname VARCHAR(20)) BEGIN SELECT NAME INTO sname FROM person WHERE id = sid; END $
这段代码的存储过程代码是:
1 CALL pro_findout(4,@NAME); 2 //预编译语言就是 3 //CALL pro_findout(?,?);
使用CallableStatement来执行:
1 /** 2 带有输入,输出参数的存储语言 3 DELIMITER $ 4 CREATE PROCEDURE pro_findout(IN sid INT ,OUT sname VARCHAR(20)) 5 BEGIN 6 SELECT NAME INTO sname FROM person WHERE id = sid; 7 END $ 8 */ 9 private static void InAndOut() { 10 11 Connection conn = null; 12 CallableStatement stsm = null; 13 14 try{ 15 16 //1:创建连接 17 conn = Jdbcutil.getConnection(); 18 19 //2:创建sql存储语言(预编译) 20 String sql = "CALL pro_findout(?,?)"; 21 22 //3:执行sql预编译语言 23 stsm = conn.prepareCall(sql); 24 25 //4:设置参数 26 /** 27 * 第一个参数是输入参数 28 * 第二个参数是存储过程中的输出参数的jdbc类型(这里是varchar()) 29 * 在sql.Types中寻找对应的类型 30 */ 31 //4.1:第一个参数的设置 32 stsm.setInt(1, 4); 33 //4.2:第二个参数的设置 34 stsm.registerOutParameter(2,java.sql.Types.VARCHAR); 35 36 //5:发送参数,执行sql:这个返回的不是ResultSet对象 37 stsm.executeQuery(); 38 39 /** 40 * 6:得到输出参数的值 41 * 根据索引值,也就是预编译sql语言中输出参数的位置 42 */ 43 String result = stsm.getString(2); 44 System.out.println(result); 45 } 46 catch(Exception e){ 47 e.printStackTrace(); 48 throw new RuntimeException(e); 49 } 50 //7:关闭连接 51 finally{ 52 Jdbcutil.close(conn, stsm); 53 } 54 55 56 }
jdbc java数据库连接 5)CallableStatement 接口
标签:class statement proc 关闭 stack runtime ack 接口 参数
本文系统来源:http://www.cnblogs.com/LZL-student/p/6013520.html
内容总结
以上是互联网集市为您收集整理的jdbc java数据库连接 5)CallableStatement 接口全部内容,希望文章能够帮你解决jdbc java数据库连接 5)CallableStatement 接口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。