Java调用mysql的存储过程

在之前写过一篇博客是如何mysql如何创建存储过程,在这一节中,我们是在原来的基础上来进一步的学习,如何在Java程序中使用Java代码来调用mysql存储过程.

mysql创建存储过程:http://blog.csdn.net/datouniao1/article/details/77891999

这个地方我们就对创建存储过程不做太多的重复,我们还使用之前创建的pr_multi这个存储过程

,来看在Java程序中如何来调用这个存储过程,首先创建一个Java程序,然后链接数据库,这些就不说了,直接上代码:

package com.wdg.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;

import com.mysql.jdbc.CallableStatement;
public class JDBCUtil {
		private static final String driverName = "com.mysql.jdbc.Driver";
		private static final String dbURL = "jdbc:mysql://localhost:3306/mytest";
		private static final String userName = "root";
		private static final String userPassword = "11111";
		private static Connection conn=null;
		public static JDBCUtil instance;
		public static JDBCUtil getInstance(){
			  if(instance == null){
			   instance = new JDBCUtil();
			  }
			    return instance;
		}
		@SuppressWarnings("unused")
		private static Connection getConnection(){
		    if(conn==null){
		    	  try {
					Class.forName(driverName);
					conn = DriverManager.getConnection(dbURL, userName, userPassword);
				} catch (ClassNotFoundException e) {
					e.printStackTrace();
				}catch (SQLException e) {
					e.printStackTrace();
				}
		    }
		     return conn;
		}
		
		public static void main(String [] args) throws SQLException {
			String sql="{call pr_multi(?,?,?)}";
			CallableStatement cstm = (CallableStatement) getConnection().prepareCall(sql); //实例化对象cstm 
			cstm.registerOutParameter(1, Types.INTEGER); // 设置返回值类型 即返回值 
		    cstm.setInt(2,5);
		    cstm.setInt(3,3);
			cstm.execute();
		    System.out.println(cstm.getInt(1));
		    cstm.close(); 
		    getConnection().close(); 
		}
}
调用存储过程的 代码主要在main函数中,因为我们上面创建了存储过程pr_multi,我们在这个地方就定义一个sql,因

create PROCEDURE pr_multi(
  out c int,
  a int,
  b int
)

创建存储过程的时候,第一个参数是输出参数,我相信看代码大概已经了解了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值