最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java存儲過程調(diào)用CallableStatement的方法

 更新時間:2020年11月30日 17:16:47   作者:TBHacker  
這篇文章主要介紹了Java存儲過程調(diào)用CallableStatement的方法,幫助大家更好的理解和學習Java,感興趣的朋友可以了解下

什么是存儲過程?

一個存儲過程是一個可編程的函數(shù),它在數(shù)據(jù)庫中創(chuàng)建并保存。它可以有SQL語句和一些特殊的控制結構組成。當希望在不同的應用程序或平臺上執(zhí)行相同的函數(shù),或者封裝特定功能時,存儲過程是非常有用的。數(shù)據(jù)庫中的存儲過程可以看做是對編程中面向?qū)ο蠓椒ǖ哪M。它允許控制數(shù)據(jù)的訪問方式。

存儲過程的優(yōu)點:

(1).存儲過程增強了SQL語言的功能和靈活性。存儲過程可以用流控制語句編寫,有很強的靈活性,可以完成復雜的判斷和較復雜的運算。

(2).存儲過程允許標準組件是編程。存儲過程被創(chuàng)建后,可以在程序中被多次調(diào)用,而不必重新編寫該存儲過程的SQL語句。而且數(shù)據(jù)庫專業(yè)人員可以隨時對存儲過程進行修改,對應用程序源代碼毫無影響。

(3).存儲過程能實現(xiàn)較快的執(zhí)行速度。如果某一操作包含大量的Transaction-SQL代碼或分別被多次執(zhí)行,那么存儲過程要比批處理的執(zhí)行速度快很多。因為存儲過程是預編譯的。在首次運行一個存儲過程時查詢,優(yōu)化器對其進行分析優(yōu)化,并且給出最終被存儲在系統(tǒng)表中的執(zhí)行計劃。而批處理的Transaction-SQL語句在每次運行時都要進行編譯和優(yōu)化,速度相對要慢一些。

(4).存儲過程能過減少網(wǎng)絡流量。針對同一個數(shù)據(jù)庫對象的操作(如查詢、修改),如果這一操作所涉及的Transaction-SQL語句被組織程存儲過程,那么當在客戶計算機上調(diào)用該存儲過程時,網(wǎng)絡中傳送的只是該調(diào)用語句,從而大大增加了網(wǎng)絡流量并降低了網(wǎng)絡負載。

(5).存儲過程可被作為一種安全機制來充分利用。系統(tǒng)管理員通過執(zhí)行某一存儲過程的權限進行限制,能夠?qū)崿F(xiàn)對相應的數(shù)據(jù)的訪問權限的限制,避免了非授權用戶對數(shù)據(jù)的訪問,保證了數(shù)據(jù)的安全。

簡單案例,創(chuàng)建于調(diào)用

drop procedure if exists pr_add;
-- 計算兩個數(shù)之和
create procedure pr_add
(
  a int,
  b int
)
begin
  declare c int;
  if a is null then
   set a = 0;
  end if;
  if b is null then
   set b = 0;
  end if;
  set c = a + b;
  select c as sum;
/*return c;- 不能在 MySQL 存儲過程中使用。return 只能出現(xiàn)在函數(shù)中。*/
end;

set @a = 10;
set @b = 20;
call pr_add(@a, @b);

Java 案例

1.存儲過程

CREATE PROCEDURE add_pro(a int,b int,out sum int)
BEGIN
set sum = a + b;
END;

2.調(diào)用

package ch13;
import java.sql.*;

/**
 * Created by Jiqing on 2016/12/20.
 */
public class ConnMySql {
  public static void main(String[] args) throws Exception {
    // 1.加載驅(qū)動
    Class.forName("com.mysql.jdbc.Driver");

    // try() {} 語法中小括號中的資源會自動回收

    try (
      // 2.連接數(shù)據(jù)庫
      Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/tpshop","root","123456");
      CallableStatement cstmt = conn.prepareCall("{call add_pro(?,?,?)}")
    )
    {
      cstmt.setInt(1,4);
      cstmt.setInt(2,5);
      cstmt.registerOutParameter(3,Types.INTEGER);
      cstmt.execute();
      System.out.println("執(zhí)行結果是:"+cstmt.getInt(3));
    }
  }
}

執(zhí)行結果是:9

以上就是Java存儲過程調(diào)用CallableStatement的方法的詳細內(nèi)容,更多關于Java存儲過程的資料請關注腳本之家其它相關文章!

相關文章

  • Java多種獲取項目路徑下的文件方式

    Java多種獲取項目路徑下的文件方式

    文章介紹了在Java項目中獲取resources文件夾下文件的InputStream的多種方法,包括使用類加載器、上下文類加載器、系統(tǒng)屬性和Paths類
    2024-12-12
  • SpringBoot整合Shiro實現(xiàn)登錄認證的方法

    SpringBoot整合Shiro實現(xiàn)登錄認證的方法

    這篇文章主要介紹了SpringBoot整合Shiro實現(xiàn)登錄認證的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • @Validated驗證List集合的方法示例

    @Validated驗證List集合的方法示例

    這篇文章主要介紹了@Validated驗證List集合的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • 23種設計模式(17)java命令模式

    23種設計模式(17)java命令模式

    這篇文章主要為大家詳細介紹了23種設計模式之java命令模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • java獲取鼠標在屏幕上坐標的方法

    java獲取鼠標在屏幕上坐標的方法

    本文介紹的是如何用java獲取鼠標在屏幕上的坐標,這個功能其實沒什么難度可言,在這里分享給大家,是因為有時候我們需要這個工具,Java作為跨平臺語言的優(yōu)勢在這個軟件就可以體現(xiàn)出來,不需修改就可以在windows、mac、Linux上使用這個軟件。下面來一起看看詳細的介紹吧。
    2016-12-12
  • MyBatis找不到mapper文件的實現(xiàn)

    MyBatis找不到mapper文件的實現(xiàn)

    這篇文章主要介紹了MyBatis找不到mapper文件的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • 解決在IDEA中創(chuàng)建多級package的問題

    解決在IDEA中創(chuàng)建多級package的問題

    這篇文章主要介紹了解決在IDEA中創(chuàng)建多級package的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • java8 如何實現(xiàn)分組計算數(shù)量和計算總數(shù)

    java8 如何實現(xiàn)分組計算數(shù)量和計算總數(shù)

    這篇文章主要介紹了java8 如何實現(xiàn)分組計算數(shù)量和計算總數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 一文讀懂JAVA中HttpURLConnection的用法

    一文讀懂JAVA中HttpURLConnection的用法

    這篇文章主要介紹了JAVA中的HttpURLConnection用法,文中講解非常細致,供大家參考和學習,感興趣的朋友可以了解下
    2020-06-06
  • springboot]logback日志框架配置教程

    springboot]logback日志框架配置教程

    這篇文章主要介紹了springboot]logback日志框架配置,logback既可以通過application配置文件進行日志的配置,又可以通過logback-spring.xml進行日志的配置,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2022-04-04

最新評論

英超| 宜州市| 叶城县| 丁青县| 旌德县| 巴彦县| 永寿县| 江津市| 沁源县| 桓台县| 通化市| 林芝县| 新兴县| 凤阳县| 广河县| 台南县| 固阳县| 龙海市| 图们市| 新兴县| 绍兴县| 昭通市| 固原市| 安庆市| 凤翔县| 荣成市| 隆化县| 乐安县| 西城区| 德格县| 武鸣县| 吴桥县| 墨竹工卡县| 家居| 泰兴市| 金山区| 彩票| 合肥市| 沙河市| 宜丰县| 汉阴县|