java 操作cursor數據庫_Java連接各種數據庫以及調用存儲過程

準備工作:

1. 創建表

drop table T_TEST_PROCEDURE cascade constraints;

/*==============================================================*/

/*

Table: T_TEST_PROCEDURE

*/

/*==============================================================*/

create

table T_TEST_PROCEDURE (

ID

NUMBER(19) not null,

NAME

VARCHAR2(40),

AGE NUMBER(3),

constraint

PK_T_TEST_PROCEDURE primary key (ID)

);

2. 創建存儲過程

無返回值的存儲過程

CREATE OR REPLACE PROCEDURE

proctest (

ID IN NUMBER,

NAME IN VARCHAR2,

age

IN NUMBER

)

AS

BEGIN

INSERT INTO

t_test_procedure

(ID, NAME, age

)

VALUES (ID, NAME, age

);

END

proctest;

/

有非列表返回值的存儲過程

CREATE OR REPLACE PROCEDURE

proc_returnnolist (

p_id IN INTEGER,

p_name OUT

VARCHAR2,

p_age OUT INTEGER

)

AS

BEGIN

SELECT NAME,

age

INTO p_name, p_age

FROM t_test_procedure

WHERE ID =

p_id;

END proc_returnnolist;

/

返回結果集的存儲過程

要返回結果集,需要使用Oracle的package

CREATE OR REPLACE PACKAGE

test_proc_package

AS

TYPE testproccursor IS REF CURSOR;

END

test_proc_package;

存儲過程

CREATE OR REPLACE PROCEDURE

proc_returnlist (

testproccursor OUT

test_proc_package.testproccursor

)

AS

BEGIN

OPEN

testproccursor

FOR

SELECT *

FROM

t_test_procedure;

END proc_returnlist;

/

用Java調用存儲過程

1. 調用無返回值的存儲過程

CallableStatement callableStmt =

con

.prepareCall("{call

proctest(?,?,?)}");

callableStmt.setInt(1,

2);

callableStmt.setString(2, "Stephen");

callableStmt.setInt(3,

27);

callableStmt.execute();

callableStmt.close();

System.out.println("Success");

2. 調用返回非列表的存儲過程

CallableStatement callableStmt =

con

.prepareCall("call

proc_returnnolist(?,?,?)");

callableStmt.setInt(1,

3);

callableStmt.registerOutParameter(2,

Types.VARCHAR);

callableStmt.registerOutParameter(3,

Types.INTEGER);

callableStmt.execute();

String name =

callableStmt.getString(2);

int age = callableStmt.getInt(3);

callableStmt.close();

System.out.println("name:" + name + " age:" +

age);

3. 調用返回結果集的存儲過程

CallableStatement callableStmt =

con

.prepareCall("call

proc_returnlist(?)");

callableStmt.registerOutParameter(1,

OracleTypes.CURSOR);

callableStmt.execute();

ResultSet rs =

(ResultSet) callableStmt.getObject(1);

while (rs.next())

{

System.out.println("name:" + rs.getString("name") + "

age:"

+

rs.getInt("age"));

}

rs.close();

callableStmt.close();

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529393.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529393.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529393.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 規格overview_《Java數據結構和算法》- OverView

Q: 不同數據結構的優缺點?數據結構優點缺點數組(Array)快速訪問,如果知道下標,就可以非常快地存取查找慢, 插入或刪除慢, 大小固定有序數組(OrderedArray)比無序的數組查找快插入或刪除慢,大小固定棧(Stack…

mysql 集群怎么卸載節點_Greenplum移除節點

基于某某原因,我們的Greenplum需要卸載一個節點(測試環境的Greenplum集群),由于該集群使用了很久,里面有許多開發所需要的數據,所以在卸掉一個節點后,還要保證數據不會丟失。當然,期間也遇到了點問題&#…

mysql2012更改表名_T-SQL入門攻略之13-修改數據表

--> Title : T-SQL入門攻略之13-修改數據表--> Author : wufeng4552--> Date : 2010-07-12修改表名與字段名—sp_rename--1修改表名SQL Server不直接提供修改表名的T-SQL語句,但是可以通過存儲過程實現語法格式:sp_rename tablename,newtabl…

python中不論類的名字是什么歌_Python自動猜歌名,還愁排名上不去嘛?

前言相傳,就在前幾日,在網上閑逛時,刷到了一個猜歌的小程序。這個小程序通過播放歌曲部分片段,然后讓用戶來猜它的歌名,大概是這樣的:作為一個腦熱的聽歌愛好者,于是他越陷越深,越刷…

java調用oracle存儲過程_做一點,記一點 ~ Java調用Oracle存儲過程

一、需求傳入一個參數,返回一條或多條記錄(列表)。二、實現步驟1. 編寫Oracle存儲過程。-- 聲明包和包體的語句應該分兩次執行,即使聲明在前定義在后,如果一起執行依然會編譯出錯--調用能夠返回多條記錄的存儲過程需要定義在包內--聲明包及包…

java 從控制臺讀取_轉載 java從控制臺讀取輸入的方法

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class MainClass { public static void method1() { //使用Scanner Scanner scannernew Sca…

trace java_使用java動態字節碼技術簡單實現arthas的trace功能。

參考資料用過[Arthas]的都知道,Arthas是alibaba開源的一個非常強大的Java診斷工具。不管是線上還是線下,我們都可以用Arthas分析程序的線程狀態、查看jvm的實時運行狀態、打印方法的出入參和返回類型、收集方法中每個代碼塊耗時,甚至可以監控…

順時針小球圓周運動Java編程_如何使用CSS實現圓周運動小球的實例

我們時常在頁面中見到一些動畫效果,這些動畫效果,很多可以僅通過CSS來實現。在這里我們用到了CSS3的animation屬性。animation 屬性是一個簡寫屬性,用于設置六個動畫屬性:animation-name 規定需要綁定到選擇器的 keyframe 名稱。a…

java swing 外觀框架_【GUI】一、Swing外觀框架BeautyEye使用

一、Swing外觀框架BeautyEye使用1.1 導包1.2 使用BeautyEye L&Fpublic static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {// 國人牛逼主題,值得學習// 初始化字體InitGlobalFont(new Font("微軟雅黑", F…

static詳解java_java中static作用詳解

static表示“全局”或者“靜態”的意思,用來修飾成員變量和成員方法,也可以形成靜態static代碼塊,但是Java語言中沒有全局變量的概念。被static修飾的成員變量和成員方法獨立于該類的任何對象。也就是說,它不依賴類特定的實例&…

java基礎案例教程前4章知識點_java學習記錄4 Java基礎知識點

java學習記錄4 Java基礎知識點1. 注釋單行注釋使用“//”開頭,后面是注釋的內容一般在要注釋的語句的上面加注釋多行注釋以“/*”開頭,以“*/”結尾可以做行內注釋不可嵌套使用文檔注釋以“/**”開頭,以“*/”結尾用來給類和方法做注釋&#…

打印狗的健康值Java_嵌入式狗的JAVA之路 HTML 補課

學了JAVA WEB應用,補充一下HTML的標簽,常用的,不然頁面都畫不出來了~~test 標題,h1h2h3 3個字號test 段落link 鏈接 使用 Target 屬性,你可以定義被鏈接的文檔在何處顯示。下面的這行會在新窗口打開文檔:Vi…

mysql 表2符合表1_MYSQL-表1和表2中所有可能性的所有行

表用戶id, name1, Jay Bob2, An Other表格頁id, name, html1, Welcome, Welcome to this page2, Goodbye, Thanks for visiting表user_pages **存儲頁面的用戶特定版本**user_id, page_id, html1, 1, User id 1 Welcome page我基本上需要一個查詢,該查詢將為我返回以下數據集-即…

java引擎組件_Java 腳本引擎入門

Java Script EngineJava 腳本引擎可以將腳本嵌入Java代碼中,可以自定義和擴展Java應用程序,自JDK1.6被引入,基于Rhino引擎,JDK1.8后使用Nashorn引擎,支持ECMAScript 5,但后期還可能會換。腳本引擎包位于jav…

python 角度傳感器模擬_python樹莓派紅外反射傳感器

本文實例為大家分享了python樹莓派紅外反射傳感器的程序,供大家參考,具體內容如下1、工具rpi3,微雪ARPI600,Infrared Reflective Sensor2、基本原理Infrared Reflective Sensor 輸出數字和模擬信號模擬信號通過ARPI600上的AD轉換芯…

JAVA awt eventqueue_線程“AWT-EventQueue-1”中的異常java.lang.NullPointerException

嗨,我收到錯誤Exception in thread "AWT-EventQueue-1" java.lang.NullPointerExceptionat P6.itemStateChanged(P6.java:215)at javax.swing.AbstractButton.fireItemStateChanged(AbstractButton.java:2023)at javax.swing.AbstractButton$Handler.item…

java構造方法賦值內存圖_java 面向對象(九):類的結構:構造器(一)簡介;屬性賦值順序;JavaBean的概念...

1.構造器(或構造方法):Constructor構造器的作用:* 1.創建對象* 2.初始化對象的信息2.使用說明:* 1.如果沒顯式的定義類的構造器的話,則系統默認提供一個空參的構造器* 2.定義構造器的格式:權限修飾符 類名(形參列表){}…

java 集合modcount_源碼|jdk源碼之LinkedList與modCount字段

鏈表是對上一篇博文所說的順序表的一種實現。與ArrayList思路截然不同,鏈表的實現思路是:不同元素實際上是存儲在離散的內存空間中的。每一個元素都有一個指針指向下一個元素,這樣整個離散的空間就被“串”成了一個有順序的表。從鏈表的概念來…

idea 新建ssm java ee_IDEA搭建SSM項目實現增刪改查

首先打開IDEA,File—>New—>Project創建項目選擇左側導航欄里的Maven,勾上勾,選擇webapp按如下圖進行填寫創建完成后進入項目,右下角彈出的提示點擊右邊的Enable Auto-Import,自動配置連接數據庫,我用…

php mail centos_centos怎么發送郵件

一、安裝sendmail與mail1、安裝sendmail:1) centos下可以安裝命令:yum -y install sendmail2) 安裝完后啟動sendmail命令:service sendmail start2、安裝mail安裝命令:yum install -y mailx二、發送郵件1、通過文件內容發送發送命…