编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

JDBC操作存储过程:JDBC执行存储过程只有IN参数,没有OUT参数

    操作数据库:mysql

    操作目的:建立一个名为sp_insertDetail的存储过程,该存储过程目的是在t_user中插入一条数据。

    至于怎么通过JDBC创建存储过程,可以看下我们之前的文章:JDBC创建存储过程

    该存储过程只有输入IN参数,没有输出OUT参数

sp_insertDetail存储过程的代码如下,这边就不通过JDBC创建存储过程了。

create procedure sp_insertDetail(in sp_name VARCHAR(20))
begin  
  INSERT into t_user(name) values(sp_name,2);
end

    在mysql中执行以上JDBC代码,可以看到如下的输出结果:

[SQL]create procedure sp_insertDetail(in sp_name VARCHAR(20))
begin  
  INSERT into t_user(name) values(sp_name,2);
end

受影响的行: 0
时间: 0.001s

    我们来看下当前的数据库情况,如下图所示:

没有调用存储过程前的数据库结构

    可以看到,已经存在sp_insertDetail的存储过程了,并且t_user表中有一条ID为1,那么为codingwhy的记录。

    下面我们来执行JDBC执行存储过程的代码,核心代码如下:

String jdbcURL = "jdbc:mysql://localhost:3306/codingwhy?useUnicode=true&characterEncoding=utf-8";
String jdbcUser = "root";
String jdbcPassword = "";
Class.forName("com.mysql.jdbc.Driver",2);
Connection conn = DriverManager.getConnection(jdbcURL,jdbcUser,jdbcPassword,2);
//JDBC调用存储过程 只有输入IN参数,没有输出OUT参数
String callProcedureSql="{call sp_insertDetail(?)}";
CallableStatement callableStatement = conn.prepareCall(callProcedureSql,2);
callableStatement.setString(1, "codingwhy.com",2);
callableStatement.executeQuery(,2);
System.out.println("JDBC执行存储过程成功...",2);

执行以上JDBC调用存储过程的代码后,我们来看下当前的数据库结构,如下图所示

执行完存储过程后的数据库结构

    可以看到,已经成功插入了一条数据记录。

    这样我们就完成了只有IN参数,没有OUT参数存储过程的执行。

未经允许不得转载: 技术文章 » Java编程 » JDBC操作存储过程:JDBC执行存储过程只有IN参数,没有OUT参数