<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            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

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看