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

環境
Oracle 21c
Windows 10 Home
Java SE 1.8

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
final String URL = "jdbc:oracle:thin:@localhost:1521:DB名";
final String USER = "ユーザー名";
final String PASS = "パスワード";
final String URL = "jdbc:oracle:thin:@localhost:1521:DB名"; final String USER = "ユーザー名"; final String PASS = "パスワード";
final String URL = "jdbc:oracle:thin:@localhost:1521:DB名";
final String USER = "ユーザー名";
final String PASS = "パスワード";

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
try (Connection conn = DriverManager.getConnection(URL,USER,PASS);
PreparedStatement ps = conn.prepareStatement(SQL構文)){処理コード}
try (Connection conn = DriverManager.getConnection(URL,USER,PASS); PreparedStatement ps = conn.prepareStatement(SQL構文)){処理コード}
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インターフェースです。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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("処理が完了しました");
}
}
}
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("処理が完了しました"); } } }
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