MySql 預存程序

來源:互聯網
上載者:User

標籤:style   blog   http   io   ar   color   os   sp   java   

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     }

 

MySql 預存程序

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.