Java8 Oracleに接続してselectするサンプル

環境
Oracle 21c
Windows 10 Home
Java SE 1.8

書式
1.Oracleに接続する情報

final String URL = "jdbc:oracle:thin:@localhost:1521:DB名";
final String USER = "ユーザー名";
final String PASS = "パスワード";

2.プレースホルダの定義
select * from テーブル名 where カラム名 =?
クエスチョンマーク(?)は、プレースホルダ(バインド変数)です。パラメータで値を設定します。

3.try-with-resources構文でOracleに接続する

try (Connection conn = DriverManager.getConnection(URL,USER,PASS);
PreparedStatement ps = conn.prepareStatement(SQL構文)){処理コード}

tryの後に続くかっこ()はリソースを自動でクローズします。try-with-resources構文と呼ばれます。

4. DriverManager.getConnection(URL,USER,PASS)
DriverManagerクラスのgetConnectionメソッドで接続しています。変数の型はConnectionインターフェースです。

使用例

package com.arkgame.study;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class OracleConTest {
      // 接続文字列URL
      final static String URL = "jdbc:oracle:thin:@172.17.2.180:1521:arkdb";
      // 接続文字列ユーザー名
      final static String USER = "arkuser";
      // パスワード
      final static String PASS = "arkuser";
      
      public static void main(String[] args) {

            // プレースホルダ
            final String SQL = "select * from empss where empno =? ";

            // try-with-resources構文
            try (Connection conn = DriverManager.getConnection(URL, USER, PASS);
                        PreparedStatement ps = conn.prepareStatement(SQL)) {
                  
                  // パラメータのセット
                  ps.setString(1, "1001");
                  // SQL検索構文を実行
                  try (ResultSet rs = ps.executeQuery()) {
                        while (rs.next()) {
                              System.out.println(
                                          rs.getInt("empno") + " " + rs.getString("empname") + " " + rs.getString("gender_f"));
                        }
                  }
            } catch (SQLException e) {// 例外をキャッチする
                  e.printStackTrace();
            } catch (Exception e) {
                  e.printStackTrace();
            } finally {
                  System.out.println("処理が完了しました");
            }
      }

}

実行結果
1001 tokyo 1
処理が完了しました

Java

Posted by arkgame