IT虾米网

java 调用mysql存储过程详解

itxm 2018年06月24日 数据库 547 0
import java.sql.CallableStatement;  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.Types;  
 
 
 
/*  
 * 对应的存储过程  
 DROP PROCEDURE IF EXISTS `pro_num_user`;  
delimiter ;;  
CREATE PROCEDURE `pro_num_user`(IN user_name varchar(10) ,OUT count_num INT)  
    READS SQL DATA  
BEGIN  
    SELECT COUNT(*) INTO count_num FROM tab_user WHERE 'name'=user_name;  
END  
 ;;  
delimiter ;  
 */  
public class Test {  
 
    public static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";  
    public static final String URL = "jdbc:mysql://127.0.0.1:3306/test";  
    public static final String USERNAME = "root";  
    public static final String PASSWORD = "acbee";  
    public static void main(String[] args) throws Exception {  
        test1();  
        test2();  
    }  
      
    public static void test1() throws Exception  
    {  
        Class.forName(DRIVER_CLASS);  
        Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);  
        String sql = "{CALL pro_num_user(?,?)}"; //调用存储过程  
        CallableStatement cstm = connection.prepareCall(sql); //实例化对象cstm  
        cstm.setString(1, "myd"); //存储过程输入参数  
        //cstm.setInt(2, 2); // 存储过程输入参数  
        cstm.registerOutParameter(2, Types.INTEGER); // 设置返回值类型 即返回值  
        cstm.execute(); // 执行存储过程  
        System.out.println(cstm.getInt(2));  
        cstm.close();  
        connection.close();  
    }  
      
    public static void test2() throws Exception  
    {  
        Class.forName(DRIVER_CLASS);  
        Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);  
        String sql = "{CALL pro_number(?,?,?)}"; //调用存储过程  
        CallableStatement cstm = connection.prepareCall(sql); //实例化对象cstm  
        cstm.setInt(1, 2); // 存储过程输入参数  
        cstm.setInt(2, 2); // 存储过程输入参数  
        cstm.registerOutParameter(3, Types.INTEGER); // 设置返回值类型 即返回值  
        cstm.execute(); // 执行存储过程  
        System.out.println(cstm.getInt(3));  
        cstm.close();  
        connection.close();  
          
    }  
}  


发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

C实现PHP的MySQL数据库连接池详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。