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

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

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

什么是存儲(chǔ)過(guò)程?

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

存儲(chǔ)過(guò)程的優(yōu)點(diǎn):

(1).存儲(chǔ)過(guò)程增強(qiáng)了SQL語(yǔ)言的功能和靈活性。存儲(chǔ)過(guò)程可以用流控制語(yǔ)句編寫,有很強(qiáng)的靈活性,可以完成復(fù)雜的判斷和較復(fù)雜的運(yùn)算。

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

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

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

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

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

drop procedure if exists pr_add;
-- 計(jì)算兩個(gè)數(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 存儲(chǔ)過(guò)程中使用。return 只能出現(xiàn)在函數(shù)中。*/
end;

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

Java 案例

1.存儲(chǔ)過(guò)程

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ū)動(dòng)
    Class.forName("com.mysql.jdbc.Driver");

    // try() {} 語(yǔ)法中小括號(hào)中的資源會(huì)自動(dòng)回收

    try (
      // 2.連接數(shù)據(jù)庫(kù)
      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í)行結(jié)果是:"+cstmt.getInt(3));
    }
  }
}

執(zhí)行結(jié)果是:9

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

相關(guān)文章

  • Java多種獲取項(xiàng)目路徑下的文件方式

    Java多種獲取項(xiàng)目路徑下的文件方式

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

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

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

    @Validated驗(yàn)證List集合的方法示例

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

    23種設(shè)計(jì)模式(17)java命令模式

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

    java獲取鼠標(biāo)在屏幕上坐標(biāo)的方法

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

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

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

    解決在IDEA中創(chuàng)建多級(jí)package的問(wèn)題

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

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

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

    一文讀懂JAVA中HttpURLConnection的用法

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

    springboot]logback日志框架配置教程

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

最新評(píng)論

牡丹江市| 秭归县| 昌邑市| 衡阳县| 东宁县| 罗江县| 贵德县| 石城县| 竹溪县| 故城县| 东城区| 海兴县| 沛县| 抚松县| 尖扎县| 丹巴县| 汉阴县| 贵定县| 嵊泗县| 金昌市| 岢岚县| 达州市| 宣化县| 广东省| 页游| 兴山县| 比如县| 资源县| 临江市| 布尔津县| 大港区| 赣榆县| 拉孜县| 岐山县| 汉阴县| 灵璧县| 舒城县| 丁青县| 河北省| 新宁县| 德令哈市|