JDBCはJavaのAPIで、データベース処理(SQL文)を行うことができる。
java.sql (コア:J2SE), javax.sql (標準拡張:J2EE)などがある。
以下、java.sqlを利用した例。
SQL文を決め打ちで実行して結果を表示する例
import java.sql.*;
public class クラス名 {
public static void main(String args[])
throws SQLException, ClassNotFoundException { //例外処理 エラーページ表示用
String drv = "oracle.jdbc.OracleDriver"; // Oracle JDBC (Type4) を指定
String url = "jdbc:oracle:thin:@localhost:1521:データベース名"; // データベースのurl
Class.forName(drv); // ドライバーをロードする
Connection con = DriverManager.getConnection(url, ユーザ名, パスワード); //データベースに接続
Statement stmt = con.createStatement(); //問い合わせの準備
String qry = "SQL文 例えば SELECT * FROM テーブル名"; // クエリの準備
ResultSet rs = stmt.executeQuery(qry); // SQL文を実行して結果をResultSetで受け取る
// ResltSetのデータを1行ずつ所得
while(rs.next()){ // next()メソッドで1行ずつ指定し、テーブルが終わるとfalseを返す。
String 列名1 = rs.getString("列名1");
Int 列名2 = rs.getInt("列名");
System.out.println(列名1 + "\t" + 列名2); // 表示
}
// データベースとの接続をクローズ
rs.close();
stmt.close();
con.close();
}
}
入力を受け取ってSQLを実行する例
入力を受け取ってSQL文に挿入したい場合は、SQL文の準備などの表記が変わる。
import java.sql.*;
public class クラス名 {
public static void main(String args[])
throws SQLException, ClassNotFoundException { //例外処理 エラーページ表示用
String drv = "oracle.jdbc.OracleDriver"; // Oracle JDBC (Type4) を指定
String url = "jdbc:oracle:thin:@localhost:1521:データベース名"; // データベースのurl
Class.forName(drv); // ドライバーをロードする
Connection con = DriverManager.getConnection(url, ユーザ名, パスワード); //データベースに接続
String qry = "SQL文 例えば SELECT * FROM テーブル名 where 列名 = ? AND 列名 = ?";
// ?の部分に入力値が挿入される。左から1, 2 と番号で指定する。
PreparedStatement ps = con.prepareStatement(qry); // 問い合わせの準備
ps.setString(1, 入力1); // 1番目の?に入力を挿入。入力が文字列の場合。
ps.setInt(2, 入力2); // 2番目の?に入力を挿入。入力が整数型の場合。
ResultSet rs = ps.executeQuery(); // SQL文を実行して結果をResultSetで受け取る
// ResltSetのデータを1行ずつ所得
while(rs.next()){ // next()メソッドで1行ずつ指定し、テーブルが終わるとfalseを返す。
String 列名1 = rs.getString("列名1");
Int 列名2 = rs.getInt("列名");
System.out.println(列名1 + "\t" + 列名2); // 表示
}
// データベースとの接続をクローズ
rs.close();
ps.close();
con.close();
}
}