プログラムと言えば、「Hello world!」からというわけで、JDBCを使ったサンプルプログラムを作成しながら、JDBCの使い方を解説します。
単に「Hello world!」と表示するだけでは面白くありませんので、hellodbというデータベースに、hellotblという表を作成し、その中に、「Hello world!」という文字を登録してから、検索するということを行います。
このプログラムを実行するためには、JDKと、データベース(PostgreSQL)とJDBCドライバのインストールが必要であることは当然として、hellodbというデータベースも作成しておく必要があります。
unix# createdb hellodb |
以下のソースプログラムを作成します。
JDBCでプログラムする場合には、最初に、Class.forNameで、JDBCドライバをロードする必要があります。
使用するオブジェクトは、データベースとの接続情報を管理するDB接続オブジェクト(db)と、実行するSQL文を管理するSQL文オブジェクト(st)と、SQLの問合せ結果を管理する問合せ結果オブジェクト(rs)の3つです。
データベースに接続するためには、以下の書式のURLを使います。
・PostgreSQLの場合 jdbc:postgresql:[//ホスト名[:ポート番号]/]DB名 ・Oracle(タイプ4)の場合 jdbc:oracle:thin:@ホスト名:ポート番号:オラクルSID |
エラーが発生した場合は、エラーを表示して終了します。 既に、hellotblという表が存在する場合などは、エラーをcatchして処理することも可能ですが、実施していません。
| hello.java |
|---|
import java.sql.*;
public class hello {
public static void main (String args[]) {
Connection db = null; // DB接続オブジェクト
Statement st = null; // SQL文オブジェクト
ResultSet rs = null; // 問合せ結果オブジェクト
String url = "jdbc:postgresql:hellodb"; // URL
String usr = "joe"; // ユーザ名
String pwd = ""; // パスワード
try {
// JDBCドライバのロード
Class.forName("org.postgresql.Driver");
// データベース接続
System.out.println("Connecting to " + url);
db = DriverManager.getConnection(url, usr, pwd);
st = db.createStatement();
// 表の作成
st.executeUpdate("create table hellotbl (item varchar(16))");
// データの登録
st.executeUpdate("insert into hellotbl values ('Hello world!')");
st.executeUpdate("insert into hellotbl values ('ようこそ!')");
// データの検索
rs = st.executeQuery("select * from hellotbl");
if (rs != null) {
while (rs.next()) {
String item = rs.getString("item");
System.out.println(item);
}
}
rs.close();
// 表の削除
st.executeUpdate("drop table hellotbl");
// データベース切断
st.close();
db.close();
// エラー処理
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
|
プログラムができたら、コンパイルして実行します。
unix# javac hello.java unix# java hello Connecting to jdbc:postgresql:hellodb Hello world! ようこそ! |