云萌主云应用官方论坛

标题: java 调用mysql存储过程 [打印本页]

作者: lady-niuniu    时间: 2017-1-10 11:55
标题: java 调用mysql存储过程
来源:http://www.open-open.com/code/view/1456844372750

  1. import java.sql.CallableStatement;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.Types;



  5. /*
  6. * 对应的存储过程
  7. DROP PROCEDURE IF EXISTS `pro_num_user`;
  8. delimiter ;;
  9. CREATE PROCEDURE `pro_num_user`(IN user_name varchar(10) ,OUT count_num INT)
  10.     READS SQL DATA
  11. BEGIN
  12.     SELECT COUNT(*) INTO count_num FROM tab_user WHERE 'name'=user_name;
  13. END
  14. ;;
  15. delimiter ;
  16. */
  17. public class Test {

  18.     public static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
  19.     public static final String URL = "jdbc:mysql://127.0.0.1:3306/test";
  20.     public static final String USERNAME = "root";
  21.     public static final String PASSWORD = "acbee";
  22.     public static void main(String[] args) throws Exception {
  23.         test1();
  24.         test2();
  25.     }
  26.      
  27.     public static void test1() throws Exception
  28.     {
  29.         Class.forName(DRIVER_CLASS);
  30.         Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
  31.         String sql = "{CALL pro_num_user(?,?)}"; //调用存储过程
  32.         CallableStatement cstm = connection.prepareCall(sql); //实例化对象cstm
  33.         cstm.setString(1, "myd"); //存储过程输入参数
  34.         //cstm.setInt(2, 2); // 存储过程输入参数
  35.         cstm.registerOutParameter(2, Types.INTEGER); // 设置返回值类型 即返回值
  36.         cstm.execute(); // 执行存储过程
  37.         System.out.println(cstm.getInt(2));
  38.         cstm.close();
  39.         connection.close();
  40.     }
  41.      
  42.     public static void test2() throws Exception
  43.     {
  44.         Class.forName(DRIVER_CLASS);
  45.         Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
  46.         String sql = "{CALL pro_number(?,?,?)}"; //调用存储过程
  47.         CallableStatement cstm = connection.prepareCall(sql); //实例化对象cstm
  48.         cstm.setInt(1, 2); // 存储过程输入参数
  49.         cstm.setInt(2, 2); // 存储过程输入参数
  50.         cstm.registerOutParameter(3, Types.INTEGER); // 设置返回值类型 即返回值
  51.         cstm.execute(); // 执行存储过程
  52.         System.out.println(cstm.getInt(3));
  53.         cstm.close();
  54.         connection.close();
  55.          
  56.     }
  57. }
复制代码







欢迎光临 云萌主云应用官方论坛 (https://www.yunmengzhu.com/) Powered by Discuz! X3.5