プログラムと言えば、「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! ようこそ! |