使用JDBC的存储过程

原创 2016年05月31日 23:16:26

使用jdbc调用mysql的存储过程

CallableStatement是使用JDBC调用存储过程的核心接口,使用该接口的步骤:
    1. 编写调用存储过程的sql语句,有两种形式:
        call  procedure_name(arg1,arg2,……)
        ?= call  procedure_name(arg1,arg2,……)
       调用存储过程的sql语句的参数可以使用?作为占位符


   2. 创建CallableStatement对象
       Connection.prepareCall(String sql)


   3. 按参数的顺序设置参数的值
       1) 如果是IN类型的参数,使用setXxx方法设置参数的值
       2) 如果是OUT类型的参数,使用registerOutParameter(int parameterIndex,int sqlType)注册输出参数类型


   4. 调用execute()方法执行存储过程


   5. 获取存储过程的执行结果
       1) OUT类型的参数的值通过getXxx方法获取
       2) 如果存储过程返回的是结果集,则使用getResultSet()方法获取结果集对象,并按传统方式获取结果集中的数据


例子:

编写存储过程

delimiter '//';

create procedure proc1(in user_name varchar(20),out user_password varchar(32))
begin
	select password into user_password from tb_admin where name=user_name;
end//

delimiter ';'//

java code:

import java.sql.*;

public class CallTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			Class.forName("com.mysql.jdbc.Driver");
			String url="jdbc:mysql://localhost:3306/db_spring";
			String name="root";
			String password="123456";
			Connection con=DriverManager.getConnection(url, name, password);
			String sql="call proc1(?,?)";
			CallableStatement cs=con.prepareCall(sql);
			cs.setString(1, "zhangsan");
			cs.registerOutParameter(2, Types.VARCHAR);
			cs.execute();
			System.out.println(cs.getString(2));
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

JDBC对MySQL数据库存储过程的调用

JDBC对MySQL数据库存储过程的调用
  • wangshuxuncom
  • wangshuxuncom
  • 2014年06月25日 15:58
  • 6283

jdbc创建存储过程

import java.sql.CallableStatement;  import java.sql.Connection;  import java.sql.DriverManager;  ...
  • passportandy
  • passportandy
  • 2011年12月09日 19:22
  • 1352

使用JDBC调用mysql存储过程

多敲几次java连接mysql,多操作一些简单的实例,多看大神们的博客很快就能掌握好java对数据库的操作了。 代码: public static void procedure() throws ...
  • zyq_hh
  • zyq_hh
  • 2016年06月14日 20:37
  • 747

jdbc 调用存储过程并返回值

  CallableStatement cstmt = null;  cstmt = conn.prepareCall("call bat_active_alert(?,?,?)");  cstmt....
  • zhangliao613
  • zhangliao613
  • 2011年04月20日 14:30
  • 3010

如何在存储过程以及JDBC中使用Array

环境数据库:DB2语言: Java协议: JDBC4.0 及以上在存储过程中使用Array## 定义Array 类型: 在存储过程的最上面, 定义这个Array 类型DROP SPECI...
  • hintcnuie
  • hintcnuie
  • 2017年06月26日 17:54
  • 694

SpringJDBC调用oracle存储过程的方法

第一种方法:public Map paymentCheckTenpay(final Map maps) {  // TODO Auto-generated method stub  Map resul...
  • u010416069
  • u010416069
  • 2016年04月20日 09:13
  • 1198

spring jdbc 调用存储过程封装

1、调用存储过程--返回list以及无结果返回以及只返回一个参数 /** * 获取数据库内的存储过程--返回一个List * @param procedureName 存储过程名 ...
  • zhuguominglove
  • zhuguominglove
  • 2015年05月20日 16:05
  • 608

java Jdbc调用存储过程

作者:hellboys ,摘自【ChinaJavaWorld.com技术论坛】 » 『 JDBC/JDO/Hibernate 』  Java调用存储过程本文阐述了怎么使用DBMS存储过程。我阐述了使用...
  • stevene
  • stevene
  • 2006年02月09日 09:55
  • 12384

JDBC调用带输出参数的存储过程

前段时间项目中遇到存储过程分页的问题,因为分页的时候要统计分页数据的总数,在存储过程中想到了使用一个输出参数,但刚开是出现了点小问题 callableStatement.setString(1, "...
  • myxx520
  • myxx520
  • 2011年08月22日 22:32
  • 4921

使用 JDBC API 直接调用存储过程

1. 使用 JDBC API 直接调用存储过程 Java Database Connectivity (JDBC) API 是 J2EE 的一部分,是 Java 语言访问关系数据库的基于标准的首要机...
  • hege3706
  • hege3706
  • 2014年08月12日 14:57
  • 156
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用JDBC的存储过程
举报原因:
原因补充:

(最多只允许输入30个字)