国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

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

時(shí)間:2020-11-13 10:49:24 JAVA認(rèn)證 我要投稿

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

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

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

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

  }

  本文實(shí)例講述了java調(diào)用mysql存儲(chǔ)過程的`方法。分享給大家供大家參考。具體如下:

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

  1、新建表test

  create table test(

  field1 int not null

  )

  TYPE=MyISAM ;

  insert into test(field1) values(1);

  2、刪除已存在的存儲(chǔ)過程:

  -- 刪除儲(chǔ)存過程

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

  drop procedure p_test;

  3、mysql存儲(chǔ)過程定義:

  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 {

  /*

  表和存儲(chǔ)過程定義如下:

  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ù)的存儲(chǔ)過程

  * @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)}");

  //也可以用問號(hào)代替

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

  //設(shè)置第一個(gè)輸入?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ù)的存儲(chǔ)過程

  *

  */

  public static void callOut() {

  Connection conn = ConnectDb.getConnection();

  CallableStatement cs = null;

  try {

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

  //第一個(gè)參數(shù)的類型為Int

  cs.registerOutParameter(1, Types.INTEGER);

  cs.execute();

  //得到第一個(gè)值

  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é)果集的存儲(chǔ)過程

  */

  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;

  }

  }

  希望本文所述對(duì)大家的java程序設(shè)計(jì)有所幫助。

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

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

2.Java怎么編寫Oracle存儲(chǔ)過程

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

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

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

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

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

8.巧克力的存儲(chǔ)方法