HOME > PROCEDURE実行サンプル
PROCEDURE実行サンプル
JDBCを使用してデータベースのPROCEDURE(プロシージャ)を実行するサンプルです。
以下のサンプルでは、Oracleデータベースを対象としています。
サンプルソースコード
接続するデータベース情報は以下の通りとします。
<DB情報>
・データベース:オラクル
・IP:127.0.0.1(localhost)
・ポート番号:1521
・SID:testdb
・ログインID:user01
・ログインパスワード:password
<対象プロシージャ>
INSERT_TBL(NUMBER a, CHAR b, VARHCAR2 c)
※テーブルに引数a、b、cをINSERTするオラクルプロシージャとする。
(自作プロシージャ)
- オラクルプロシージャを実行するサンプル
-
import java.sql.DriverManager; import java.sql.Connection; import java.sql.CallableStatement; public class DBProcedureExecSample { public static void main(String[] args) throws Exception{ //変数定義 Connection conn = null; CallableStatement cs = null; //DB接続情報を設定する String path = "jdbc:oracle:thin:@127.0.0.1:1521:testdb"; //接続パス String id = "user01"; //ログインID String pw = "password"; //ログインパスワード //プロシージャを定義する String sql = "{call INSERT_TBL(?, ?, ?)}"; try { //JDBCドライバをロードする Class.forName("oracle.jdbc.driver.OracleDriver"); //DBへのコネクションを作成する conn = DriverManager.getConnection(path, id, pw); conn.setAutoCommit(false); //オートコミットはオフ //実行するProcedureを指定してパラメータをセットする cs = conn.prepareCall(sql); cs.setInt(1, 100); cs.setString(2, "A"); cs.setString(3, "BBB"); //Procedureを実行する cs.executeUpdate(); //コミットする conn.commit(); } catch (Exception ex) { //例外発生時の処理 conn.rollback(); //ロールバックする ex.printStackTrace(); //エラー内容をコンソールに出力する } finally { //クローズ処理 if (cs != null) cs.close(); if (conn != null) conn.close(); } } }
- 実行結果
- java -cp ./;ojdbc14.jar DBProcedureExecSample プロシージャ実行が完了しました。
事前にオラクルのJDBCドライバを用意しておく必要があります。
(ここの例では「ojdbc14.jar」)
主要メソッド
戻値型 | メソッド | 説明 |
---|---|---|
void | setString(int a, String b) | a番目の「?」にbをString型でセットする |
void | setInt(int a, int b) | a番目の「?」にbをint型でセットする |
void | setLong(int a, long b) | a番目の「?」にbをlong型でセットする |
void | setFloat(int a, float b) | a番目の「?」にbをfloat型でセットする |
void | setDouble(int a, double b) | a番目の「?」にbをdouble型でセットする |
void | setDate(int a, Date b) | a番目の「?」にbをjava.sql.Date型でセットする |
void | setBoolean(int a, boolean b) | a番目の「?」にbをboolean型でセットする |
int | getInt(int a) | a番目の「?」の値をint型で取得する |
void | registerOutParameter(int a, int b) | a番目の「?」にOUTパラメータとして、java.sql.Types型を指定する ※下記表参照 |
long | getLong(int a) | a番目の「?」の値をlong型で取得する |
float | getFloat(int a) | a番目の「?」の値をfloat型で取得する |
double | getDouble(int a) | a番目の「?」の値をdouble型で取得する |
boolean | getBoolean(int a) | a番目の「?」の値をboolean型で取得する |
String | getString(int a) | a番目の「?」の値をString型で取得する |
Date | getDate(int a) | a番目の「?」の値をDate型で取得する |
void | clearParameters() | 全てのパラメータをクリアする |
int | executeUpdate() | 実行する |
定数 | 説明 |
---|---|
Types.CHAR | CHAR型を表す |
Types.INTEGER | INTEGER型を表す |
Types.FLOAT | FLOAT型を表す |
Types.DOUBLE | DOUBLE型を表す |
Types.VARCHAR | VARCHAR型を表す |
Types.NCHAR | NCHAR型を表す |
Types.NVARCHAR | NVARCHAR型を表す |
Types.DATE | DATE型を表す |
Types.TIMESTAMP | TIMESTAMP型を表す |
Types.ROWID | ROWID型を表す |
Types.NULL | NULLを表す |
主要な定数のみ掲載しています。