zoukankan      html  css  js  c++  java
  • MySql 存储过程

    1、没有参数的存储过程

    DELIMITER $$   --创建结束符
     CREATE PROCEDURE proce1()
     BEGIN
        SELECT * FROM users;   --SQL语句,一定要以;结束
     END $$
     
     DELIMITER ;   --还原结束符
     
     CALL proce1     --调用存储过程

    2、只有输入参数的存储过程

     1 DELIMITER $$
     2  
     3 CREATE PROCEDURE proce2(IN _id VARCHAR(32),IN _name VARCHAR(50) )    --输入参数要用IN开头  名称   类型
     4  BEGIN
     5     INSERT INTO users(id,username) VALUES (_id,_name);
     6  END $$
     7  
     8  DELIMITER ;
     9  
    10  CALL proce2('U002','Tom')    --调用存储过程
    11  
    12  
    13   CALL proce1 

    3、只有输出参数的

     
    DELIMITER //
     
    CREATE PROCEDURE proce3(OUT _size INT)   --输出参数,以out开头
     BEGIN
        SELECT COUNT(1) INTO _size FROM users;  --设置到_size中   也可以  SET _size=(SELECT COUNT(1)  FROM users;);
     END //
     
     DELIMITER ;
     
     CALL proce3(@count);
     SELECT @count

    在Java程序中调用存储过程

    1、调用没有的存储过程

     1 public void test() throws Exception
     2     {
     3         Connection conn=DbUtils.getcConnection();//获取conn
     4         CallableStatement cs= conn.prepareCall("{call proce1()}");//调用存储过程
     5         //如果最后一个sql语句为select语句,为true  否则为false
     6         //【如果语句为设置值,还是false】SELECT COUNT(1) INTO _size FROM users;  --设置到_size中   也可以  SET _size=(SELECT COUNT(1)  FROM users;);
     7         boolean b=cs.execute();
     8         if(b)
     9         {
    10             ResultSet rs= cs.getResultSet();
    11             while(rs.next())
    12             {
    13                 System.out.println("name:"+rs.getString(1));
    14             }
    15         }
    16         conn.close();
    17     }

    2、调用有输入参数的存储过程

     1 public void Test2() throws Exception
     2     {
     3         Connection conn=DbUtils.getcConnection();
     4         CallableStatement cs= conn.prepareCall("{call proce2(?,?) }");
     5         cs.setString(1, "U003");//设置 IN 值
     6         cs.setString(2, "Lucy");
     7         boolean b=cs.execute();
     8         System.out.println("boolean:"+b);
     9         conn.close();
    10     }

    3、调用有输出参数的存储过程

     1 public void Test3() throws Exception
     2     {
     3         Connection conn=DbUtils.getcConnection();
     4         CallableStatement cs= conn.prepareCall("{call proce3(?) }");
     5         cs.registerOutParameter(1, Types.INTEGER);//设置out类型值;Types转换为数据库类型
     6         boolean b= cs.execute();
     7         int size=cs.getInt(1);//获取值
     8         System.err.println("size:"+size);
     9         conn.close();
    10     }

  • 相关阅读:
    Service Name Port Number Transport Protocol tcp udp 端口号16bit
    linux linux 互传文件 win 不通过 ftp sftp 往linux 传文件(文件夹)
    soft deletion Google SRE 保障数据完整性的手段
    Taylor series
    Taylor's theorem
    Moving average
    REQUEST
    Unix file types
    mysqld.sock
    Tunneling protocol
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4130761.html
Copyright © 2011-2022 走看看