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     }

  • 相关阅读:
    局域网组网总目录
    VLAN之间的通信
    DHCP
    ACL
    linux 程序后台运行
    VLAN
    VTP
    dubbox生产者与消费者案例
    String data jpa执行的增删改查
    StringBoot整合Mytais实现数据查询与分页
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4130761.html
Copyright © 2011-2022 走看看