六、JDBC——CallableStatement
来源:互联网 发布:python simyou 编辑:程序博客网 时间:2024/06/04 10:48
- CallableStatement
- 一查询
- 1创建Test5java
- 2DBUtiljava
- 二输入添加
- 1创建Test5java
- 2DBUtiljava
- 三既有输入又有输出
- 1创建Test5java
- 2DBUtiljava
- 一查询
- CallableStatement
CallableStatement
CallableStatement继承PreparedStatement,提供了调用存储过程的能力
使用:
- 调用简单的存储过程
- 调用有输入参数的存储过程
- 调用有输入、输出参数的存储过程
一、查询
调用mysql的命令行输入:
create procedure all_c() select *from c
————其中 create procedure是创建存储。创建查询存储
1、创建Test5.java
package com;import java.io.Closeable;import java.sql.ResultSet;import java.sql.SQLException;import com.mysql.jdbc.CallableStatement;import com.mysql.jdbc.Connection;public class Test5 { static void test1(){ Connection conn=DBUtil.open(); CallableStatement cSta=null; try { //通过CallableStatement,调用数据库存储 cSta=(CallableStatement) conn.prepareCall("{call all_c}"); ResultSet rSet=cSta.executeQuery(); while (rSet.next()) { int id=rSet.getInt(1); String name=rSet.getString(2); String email=rSet.getString(3); System.out.println(id+","+name+","+ email); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ DBUtil.close(null, null, conn); } } public static void main(String[] args) { test1(); }}
2、DBUtil.java
package com;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.Reader;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Properties;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement;public class DBUtil { //定义成不可修改的 private static String driver; private static String url; private static String username; private static String password; //把值都按要求填入 static { Properties p=new Properties(); Reader reader; try { reader = new FileReader("src//config.properties"); p.load(reader); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } driver="com.mysql.jdbc.Driver"; url="jdbc:mysql://localhost:3306/cxg2850105498"; username="root"; password="cxg200888"; } //打开数据库 public static Connection open() { try { //注册加载驱动 Class.forName(driver); //链接数据库 return (Connection) DriverManager.getConnection(url,username,password); } catch (Exception e) { e.printStackTrace(); } return null; } //关闭数据库 public static void close(ResultSet rSet,PreparedStatement pSta,Connection conn) { if(conn!=null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } if(rSet!=null){ try { rSet.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(pSta!=null){ try { pSta.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}
二、输入添加
调用mysql的命令行输入:
create procedure insert_c ( in myname varchar(20) , in myemail varchar(20) ) insert into c(name,email)values(myname,myemail)
————其中 create procedure是创建存储。创建插入存储,其中“in”表示输入,“out”表示输出
1、创建Test5.java
package com;import java.io.Closeable;import java.sql.ResultSet;import java.sql.SQLException;import com.mysql.jdbc.CallableStatement;import com.mysql.jdbc.Connection;public class Test5 { static void test2(){ Connection conn=DBUtil.open(); try { //调用存储语句 "?" 为要输入的值 CallableStatement cSta=(CallableStatement) conn.prepareCall("{call insert_c(?,?)}"); cSta.setString(1, "13090302"); cSta.setString(2, "1999@gmail.com"); cSta.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); }finally{ DBUtil.close(null, null, conn); } } public static void main(String[] args) { test2(); }}
2、DBUtil.java
同上DBUtil.java一样
三、既有输入又有输出
调用mysql的命令行输入:
create procedure getnamebyid(in cid int ,out return_name varchar(20))select name into return_name from c where id=cid;
————其中 create procedure是创建存储。创建插入存储,其中“in”表示输入,“out”表示输出。
1、创建Test5.java
package com;import java.io.Closeable;import java.sql.ResultSet;import java.sql.SQLException;import javassist.bytecode.analysis.Type;import com.mysql.jdbc.CallableStatement;import com.mysql.jdbc.Connection;public class Test5 { static void test3(){ Connection conn=DBUtil.open(); try { //getnamebyid(输入,输出) CallableStatement cSta=(CallableStatement)conn.prepareCall("{call getnamebyid(?,?)}"); cSta.setInt(1, 2); //注册输出 cSta.registerOutParameter(2,0); //执行语句 cSta.execute(); String name=cSta.getString(2); cSta.execute(); System.out.println(name); } catch (SQLException e) { e.printStackTrace(); } finally{ DBUtil.close(null, null, conn); } } public static void main(String[] args) { test3(); }}
2、DBUtil.java
同上DBUtil.java一样
阅读全文
0 0
- 六、JDBC——CallableStatement
- JDBC—MeteData、PreparedStatement、CallableStatement
- JDBC——Connection,Statement,PreparedStatement,CallableStatement
- JDBC——Connection,Statement,PreparedStatement,CallableStatement
- JDBC CallableStatement
- jdbc----CallableStatement
- JDBC基础教程之CallableStatement
- JDBC 之 CallableStatement 对象
- JDBC基础教程之CallableStatement
- JDBC基础教程之CallableStatement
- JDBC基础教程之CallableStatement
- jdbc CallableStatement 例子
- JDBC基础教程之CallableStatement
- JDBC基础教程之CallableStatement
- jdbc CallableStatement存储过程
- JDBC-Ststement/PreparedStatemnent/CallableStatement
- JDBC基础教程之CallableStatement
- JDBC: Statement、PreparedStatement和CallableStatement
- python3爬取煎蛋网妹子图
- C#笔记(6)去掉菜单栏和窗口透明度
- PHP面试题 关于数据库须知
- Tensorflow学习笔记——张量、图、常量、变量(一)
- 在虚拟机中安装Ubuntu
- 六、JDBC——CallableStatement
- codility Flags
- 欢迎使用CSDN-markdown编辑器
- c++标准输入输出流:cin和cout
- 九天学会Java,第四天,循环结构
- Gym
- python --- 字符串、数据类型、格式化、文件打开
- 安装pip教程
- HDU 1087 Super Jumping! Jumping! Jumping!