日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Oracle数据库中调用Java类开发存储过程、函数的方法

發布時間:2025/7/14 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle数据库中调用Java类开发存储过程、函数的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Oracle數據庫中調用Java類開發存儲過程、函數的方法

時間:2014年12月24日??瀏覽:5538次

oracle數據庫的開發非常靈活,不僅支持最基本的SQL,而且還提供了獨有的PL/SQL,除此之外,還可以用時下最流行的編程語言Java來做開發。隨著對oracle的了解越來越多,越來越禁不住oracle的誘惑,oracle技術真的是一門很有趣的學問。之前,我在博客中總結了挺多有關SQL、PL/SQL的,但是對于oracle數據庫中Java類的調用卻沒有總結,也是因為之前不太會,這會兒總結了一下,特來分享。

1、oracle中調用Java類的基本思路

要在oracle中調用Java類來實現存儲過程、函數,我覺的大概的思路是這樣的:

(1)首先編寫Java代碼,可以用自己喜歡的代碼編輯器編輯,編輯好了以后,可以將代碼編譯成.class文件,也可以打成jar包,也可以啥都不操作,就是一個Java源代碼文件在那放著。

(2)想辦法將已經寫好的Java代碼導入到oracle數據庫中,這里導入主要有兩種方法,一種是使用loadjava命令,另一種是直接在編寫PL/SQL代碼的時候寫Java代碼,這兩種方法我在下面會詳細總結。

(3)編寫存儲過程、函數來封裝Java代碼,以實現后面對Java功能的調用。

(4)準備工作已經做完了,最后就是調用了,調用的方式與PL/SQL完全一樣,沒啥不同的。

2、loadjava命令介紹

在切入正題之前,先簡單介紹下loadjava命令及其用法,loadjava命令有很多的參數,也沒有必要全部都了解,loadjava的調用規則如下圖1所示:

圖1:loadjava的調用規則

loadjava命令不是在sql*plus中調用的,而是在cmd窗口中,有關loadJava的各個參數的意思,可以使用:loadjava -help 命令來獲得詳細幫助。本文中主要用到的參數有-u(用于輸入用戶名及密碼)、-v(用于輸出詳細的反饋信息)、-resolve(對于沒有編譯的Java文件,可以用resolve來編譯)、-f(這個命令我在例子中沒有用到,它的意思是force,表示不管之前是否已經導入過該Java類,都強制再次導入)。loadjava可以實現對class文件、jar文件、resource文件、property文件的導入,當導入class文件時,可以用如下命令:

loadjava?–u?username/userpassword?–v?filename.class

當導入Java文件時,可以用如下命令:

loadjava?–u?username/userpassword?–v?-resolve?filename.java

當導入jar文件時,可以用如下命令:

loadjava?–u?username/userpassword?–v?-resolve?filename.jar

3、舉例說明oracle調用Java全步驟

例子:一個簡單的需求,用Java代碼實現求圓的面積,圓周率PI為3.14,輸入的參數為圓的半徑R,輸出圓的面積S,要求可以在oracle中用PL/SQL代碼調用該Java類實現求圓的面積的功能。

Step 1:編寫Java代碼,PL/SQL Developer本身雖然支持編寫Java代碼,但是畢竟不是專業的,對Java的工具提供的不是特別好,我喜歡用MyEclipse開發好以后復制過來,下面是我在MyEclipse中開發好的代碼。

//?圓工具類,計算圓的面積 public?class?CircleTools?{//?定義常量PIpublic?static?final?double?PI?=?3.14;//?計算面積public?static?double?calcSquare(double?r)?{return?PI?*?r?*?r;} }

注意在寫Java代碼的時候,為了能夠直接能夠在oracle中被調用,所以這里在需要調用的方法前要加上public和static。

Step 2:寫好Java代碼,下面就是要將Java導入到oracle數據庫中,導入的方法在前文提到過可以用loadJava或者直接寫。如果要用loadJava導入,先把上面的代碼文件保存為CircleTools.java,然后在cmd命令行中進入該目錄下,然后執行如下命令:

loadjava?–u?username/userpassword?–v?-resolve?CircleTools.java

執行上面的命令就OK了,下面提供另一種方法,就是直接在PL/SQL中寫,寫法如下:

CREATE?OR?REPLACE?AND?COMPILE?JAVA?SOURCE?NAMED?circletools?AS //?圓工具類,計算圓的面積 public?class?CircleTools?{//?定義常量PIpublic?static?final?double?PI?=?3.14;//?計算面積public?static?double?calcSquare(double?r)?{return?PI?*?r?*?r;} }

我的oracle開發工具是PL/SQL Developer,所以我在PL/SQL Developer中執行了上面這段代碼,然后查詢user_objects表,可以發現CircleTools類已經被導入進了oracle數據庫中,如下圖2所示:

圖2:user_objects表中查詢到CircleTools類

Step 3:編寫存儲過程(procedure)或者函數(function)來封裝,以實現以后的調用,一般來說,如果一個Java方法沒有返回值,那么就封裝成存儲過程,如果有返回值,就封裝成函數,這里我只給出一個封裝成函數的例子:

CREATE?OR?REPLACE?FUNCTION?calc_square(r?IN?NUMBER)?RETURN?NUMBER?ASLANGUAGE?JAVA?NAME?'CircleTools.calcSquare(double)?return?double';

Step 4:上面幾步基本上已經實現了全部了,最后一步測試一下,我test了一下calc_square這個函數,結果如下圖3所示:

圖3:測試calc_square函數

Step 5:如果不想用那個Java類了,可以用dropjava命令刪除掉系統中的Java,這個跟loadjava很相似,下面截圖:

圖4:dropjava命令

例如:

dropjava?-user?username/userpassword@db?-v?javasourcename

注意上面刪除的是Java的source name,不是class name,即對象的OBJECT_TYPE是JAVA SOURCE,不是JAVA CLASS。這個地方我不太確定,不過我直接刪除類名是報錯了,先這樣寫著吧,后面發現錯了,我會糾正的。

在oracle中調用Java source的思路大概就是上面這樣,一想到可以把Java代碼跑在oracle中是不是還是蠻激動的,功能一下子就有擴展了許多。

總結

以上是生活随笔為你收集整理的Oracle数据库中调用Java类开发存储过程、函数的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲va在线∨a天堂va欧美va | 色婷婷www | 丰满人妻一区二区三区精品高清 | 五月婷婷激情五月 | 久免费一级suv好看的国产 | 久久国产中文字幕 | 2019国产在线 | 91老师片黄在线观看 | 99精品欧美一区二区蜜桃免费 | 波多野结衣中文一区 | 欧美有码在线观看 | 成人aaa视频 | 久久视频在线播放 | 韩国伦理片在线看 | 91国产视频在线播放 | 窝窝午夜理论片影院 | 日韩精品视频在线观看免费 | 性感美女一区 | 国产午夜精品理论片在线 | 国产做受高潮动漫 | 久久久久国产精品人妻 | 少妇人妻邻居 | 欧美三级视频在线播放 | 日韩av一区二区在线 | 人妻巨大乳hd免费看 | 婷婷五月情 | 好吊操免费视频 | 黄色av高清| 一本毛片 | 免费看黄色a级片 | 久久精品国产清自在天天线 | 国产另类专区 | 一区二区成人网 | 青青草国产一区二区三区 | 丰满少妇一区二区三区专区 | 欧美激情视频在线 | 黄色污污网站在线观看 | 国产乱人伦精品 | 亚洲美女性生活视频 | www.色在线观看 | 国产精品熟妇一区二区三区四区 | 国产精品福利在线播放 | 97se亚洲国产综合在线 | 深夜福利免费观看 | 少妇精品久久久久久久久久 | 日本丰满少妇裸体自慰 | 尤物综合网 | 自拍偷拍国内 | 欧美亚洲日本一区 | 国产乱女淫av麻豆国产 | 国产精品最新 | 国产成人精品视频在线观看 | 国产伦精品一区二区三区视频女 | 中文字幕第八页 | 91久久精品国产91久久性色tv | 亚洲午夜伦理 | 亚洲国产精品狼友在线观看 | bl动漫在线观看 | 免费高清成人 | 乳罩脱了喂男人吃奶视频 | 亚洲一区国产一区 | 男女www视频 | 女人性做爰100部免费 | 国产精品伦一区二区 | 青娱乐免费在线视频 | 91日批| 天天综合天天做天天综合 | 色猫咪av | 男人的天堂网av | 日本精品一区二区视频 | 欧美一级全黄 | 韩国av电影在线观看 | 韩国短剧在线观看 | 黄色福利| 五月综合激情日本mⅴ | www,99| 欧美激情在线免费观看 | 久草资源在线观看 | 免费乱淫视频 | 国产动漫av | 日本男女激情视频 | 精品久久一二三区 | 97超碰色 | 麻豆爱爱| 日本不卡一二三 | 国产亚洲欧美在线视频 | 亚洲国产大片 | 嫩草影院菊竹影院 | 狠狠干夜夜操 | 风间由美在线视频 | 又黄又爽一区二区三区 | 日本高清不卡在线 | xxx老太太 | 色婷婷激情五月 | 免费在线观看日韩 | 免费无遮挡无码永久视频 | 三级在线观看 | 午夜精彩视频 | 高清日韩 |