中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      Java調用MySQL存儲過程并獲得返回值的方法

      時間:2024-08-25 16:32:40 JAVA認證 我要投稿
      • 相關推薦

      Java調用MySQL存儲過程并獲得返回值的方法

        本文yjbys小編為大家主要介紹了Java調用MySQL存儲過程并獲得返回值的方法,實例分析了java實現MySQL存儲過程的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

        本文實例講述了Java調用MySQL存儲過程并獲得返回值的方法。分享給大家供大家參考。具體如下:

        private void empsInDept(Connection myConnect, int deptId) throws SQLException {

        CallableStatement cStmt = myConnect.prepareCall("{CALL sp_emps_in_dept(?)}");

        cStmt.setInt(1, deptId);

        cStmt.execute();

        ResultSet rs1 = cStmt.getResultSet();

        while (rs1.next()) {

        System.out.println(rs1.getString("department_name") + " " + rs1.getString("location"));

        }

        rs1.close();

        /* process second result set */

        if (cStmt.getMoreResults()) {

        ResultSet rs2 = cStmt.getResultSet();

        while (rs2.next()) {

        System.out.println(rs2.getInt(1) + " " + rs2.getString(2) + " " + rs2.getString(3));

        }

        rs2.close();

        }

        cStmt.close();

        }

        本文實例講述了java調用mysql存儲過程的方法。分享給大家供大家參考。具體如下:

        數據庫的測試代碼如下 :

        1、新建表test

        create table test(

        field1 int not null

        )

        TYPE=MyISAM ;

        insert into test(field1) values(1);

        2、刪除已存在的存儲過程:

        -- 刪除儲存過程

        delimiter // -- 定義結束符號

        drop procedure p_test;

        3、mysql存儲過程定義:

        create procedure p_test()

        begin

        declare temp int;

        set temp = 0;

        update test set field1 = values(temp);

        end

        4、調用方法:

        CallableStatement cStmt = conn.prepareCall("{call p_test()}");

        cStmt.executeUpdate();

        import java.sql.*;

        /**

        iGoder

        */

        public class ProcedureTest {

        /*

        表和存儲過程定義如下:

        delimiter //

        DROP TABLE if exists test //

        CREATE TABLE test(

        id int(11) NULL

        ) //

        drop procedure if existssp1 //

        create procedure sp1(in p int)

        comment 'insert into a int value'

        begin

        declare v1 int;

        set v1 = p;

        insert into test(id) values(v1);

        end

        //

        drop procedure if exists sp2 //

        create procedure sp2(out p int)

        begin

        select max(id) into p from test;

        end

        //

        drop procedure if exists sp6 //

        create procedure sp6()

        begin

        select * from test;

        end//

        */

        public static void main(String[] args) {

        //callIn(111);

        //callOut();

        callResult();

        }

        /**

        * 調用帶有輸入參數的存儲過程

        * @param in stored procedure input parametervalue

        */

        public static void callIn(int in){

        //獲取連接

        Connection conn = ConnectDb.getConnection();

        CallableStatement cs = null;

        try {

        //可以直接傳入參數

        //cs = conn.prepareCall("{call sp1(1)}");

        //也可以用問號代替

        cs = conn.prepareCall("{call sp1(?)}");

        //設置第一個輸入參數的值為110

        cs.setInt(1, in);

        cs.execute();

        } catch (Exception e) {

        e.printStackTrace();

        } finally {

        try {

        if(cs != null){

        cs.close();

        }

        if(conn != null){

        conn.close();

        }

        } catch (Exception ex) {

        ex.printStackTrace();

        }

        }

        }

        /**

        * 調用帶有輸出參數的存儲過程

        *

        */

        public static void callOut() {

        Connection conn = ConnectDb.getConnection();

        CallableStatement cs = null;

        try {

        cs = conn.prepareCall("{call sp2(?)}");

        //第一個參數的類型為Int

        cs.registerOutParameter(1, Types.INTEGER);

        cs.execute();

        //得到第一個值

        int i = cs.getInt(1);

        System.out.println(i);

        } catch (Exception e) {

        e.printStackTrace();

        } finally {

        try {

        if(cs != null){

        cs.close();

        }

        if(conn != null){

        conn.close();

        }

        } catch (Exception ex) {

        ex.printStackTrace();

        }

        }

        }

        /**

        * 調用輸出結果集的存儲過程

        */

        public static void callResult(){

        Connection conn = ConnectDb.getConnection();

        CallableStatement cs = null;

        ResultSet rs = null;

        try {

        cs = conn.prepareCall("{call sp6()}");

        rs = cs.executeQuery();

        //循環輸出結果

        while(rs.next()){

        System.out.println(rs.getString(1));

        }

        } catch (Exception e) {

        e.printStackTrace();

        } finally {

        try {

        if(rs != null){

        rs.close();

        }

        if(cs != null){

        cs.close();

        }

        if(conn != null){

        conn.close();

        }

        } catch (Exception ex) {

        ex.printStackTrace();

        }

        }

        }

        }

        /**

        *獲取數據庫連接的類

        */

        import java.sql.Connection;

        import java.sql.DriverManager;

        import java.sql.PreparedStatement;

        import java.sql.ResultSet;

        import java.sql.SQLException;

        import java.sql.Statement;

        class ConnectDb {

        public static Connection getConnection(){

        Connection conn = null;

        PreparedStatement preparedstatement = null;

        try {

        Class.forName("org.gjt.mm.mysql.Driver").newInstance();

        String dbname = "test";

        String url="jdbc:mysql://localhost/"+dbname+"?user=root&password=root&useUnicode=true&characterEncoding=8859_1";

        conn= DriverManager.getConnection(url);

        } catch (Exception e) {

        e.printStackTrace();

        }

        return conn;

        }

        }

        希望本文所述對大家的java程序設計有所幫助。

      【Java調用MySQL存儲過程并獲得返回值的方法】相關文章:

      Java怎么編寫Oracle存儲過程09-15

      java調用cmd命令01-29

      巧克力的存儲方法06-29

      java程序中如何調用linux命令08-27

      怎樣獲得Sun Java認證05-08

      恩施玉露的選購與存儲方法08-17

      MySQL導出導入SQL文件命令方法10-17

      關于編程之PHP常用MySql操作的方法06-26

      JAVA認證基礎知識:基于反射機制的服務代理調用09-20

      茉莉花茶的選購與存儲方法06-06

      主站蜘蛛池模板: 91精品国产91久久综合蜜臀| 临澧县| 韩国日本国产亚洲自拍| 仙居县| 人妻少妇被猛烈进入中文字| 亚洲精品久久久蜜桃一区| 精品国产亚洲av网站| 邯郸县| 思南县| 一区二区三区内射视频在线观看| 日本在线免费观看一二区视频| 亚洲av五月天天堂网| 国产在线一区二区三区在线观看| 罗田县| 中文字幕在线人妻视频| 欧美日韩国产另类在线观看| 黑人巨大亚洲一区二区久| 中文字幕亚洲第一页在线| 日韩无码尤物视频| 亚洲免费不卡av网站| 怀柔区| 阿拉善右旗| 亚洲情精品中文字幕有码在线| 国产成人cao在线| av观看一区二区三区| 亚洲av成人一区二区三区网址| 韩国主播av福利一区二区| 亚洲av熟女一区二区三区四区| 人妻av天堂一区二区| 国产精品丝袜美腿视频一区| 在线一区二区三区人妻| 人妻中文字幕av有码在线| 亚洲日韩成人无码不卡网站| 亚洲av熟女天堂系列| 在线观看免费人成视频国产| 青青草一区在线观看视频| 日韩最新在线不卡av| 成年视频网站在线观看777| 一级二级三一片内射视频在线| 国产精品一区二区三区精品| 亚洲AV秘 无码一区二区三|