1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. Java調(diào)用MySQL存儲過程并獲得返回值的方法

        時間:2020-11-13 10:49:24 JAVA認證 我要投稿

        Java調(diào)用MySQL存儲過程并獲得返回值的方法

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

          本文實例講述了Java調(diào)用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調(diào)用mysql存儲過程的`方法。分享給大家供大家參考。具體如下:

          數(shù)據(jù)庫的測試代碼如下 :

          1、新建表test

          create table test(

          field1 int not null

          )

          TYPE=MyISAM ;

          insert into test(field1) values(1);

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

          -- 刪除儲存過程

          delimiter // -- 定義結(jié)束符號

          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、調(diào)用方法:

          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();

          }

          /**

          * 調(diào)用帶有輸入?yún)?shù)的存儲過程

          * @param in stored procedure input parametervalue

          */

          public static void callIn(int in){

          //獲取連接

          Connection conn = ConnectDb.getConnection();

          CallableStatement cs = null;

          try {

          //可以直接傳入?yún)?shù)

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

          //也可以用問號代替

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

          //設(shè)置第一個輸入?yún)?shù)的值為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();

          }

          }

          }

          /**

          * 調(diào)用帶有輸出參數(shù)的存儲過程

          *

          */

          public static void callOut() {

          Connection conn = ConnectDb.getConnection();

          CallableStatement cs = null;

          try {

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

          //第一個參數(shù)的類型為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();

          }

          }

          }

          /**

          * 調(diào)用輸出結(jié)果集的存儲過程

          */

          public static void callResult(){

          Connection conn = ConnectDb.getConnection();

          CallableStatement cs = null;

          ResultSet rs = null;

          try {

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

          rs = cs.executeQuery();

          //循環(huán)輸出結(jié)果

          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();

          }

          }

          }

          }

          /**

          *獲取數(shù)據(jù)庫連接的類

          */

          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程序設(shè)計有所幫助。

        【Java調(diào)用MySQL存儲過程并獲得返回值的方法】相關(guān)文章:

        1.Java中調(diào)用Oracle包的過程

        2.Java怎么編寫Oracle存儲過程

        3.跟蹤Java執(zhí)行過程的方法

        4.Java如何調(diào)用WebService

        5.java調(diào)用cmd命令大全

        6.Java調(diào)用Linux命令行

        7.java程序中如何調(diào)用linux命令

        8.巧克力的存儲方法

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>