データベースにアクセスする
では、作成したJava DBのデータベースにJavaからアクセスをしてみましょう。ここでは、一般的なアプリケーションのmainメソッドからデータベースにアクセスしてみます。先ほど、サンプルとしてSQLコマンドを実行し、ダミーのテーブルを作成しました。これにアクセスするサンプルを考えてみましょう。
package jp.tuyano;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class DBTest {
public static void main(String[] args) {
Connection conn = null;
Statement state = null;
ResultSet rs = null;
try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Properties prop = new Properties();
prop.put("user", "admin");
prop.put("password", "admin");
conn = DriverManager.getConnection
("jdbc:derby:C:\\DerbyDatabases\\allabout_db", prop);
conn.setAutoCommit(true);
state = conn.createStatement();
String query = "select * from testdata";
rs = state.executeQuery(query);
while (rs.next()){
String id = rs.getString("id");
String msg = rs.getString("msg");
System.out.println("id:" + id + ", msg:" + msg);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
ここでは、直接データベースファイルにアクセスする形で作成をしてあります。サーバ&クライアントとしてでなく、直接データベースにアクセスをする場合には、まずドライバークラスを以下のようにして読み込みます。
"org.apache.derby.jdbc.EmbeddedDriver"
そして、Connectionの取得を以下のように行います。
conn = DriverManager.getConnection
("jdbc:derby:C:\\DerbyDatabases\\allabout_db", prop);
ここでは、アクセスするユーザIDとパスワードをPropertiesインスタンスにまとめ、これを引数に指定してあります。接続先URLが、「jdbc:derby:データベースのパス」という形になることに注意をしてください。
これで実際にデータベースからテーブルのレコードを取り出し表示できれば、データベースへのアクセスが正常に行えることがわかります。後は、実行するSQLコマンドを変更してデータベースを更に操作することができるでしょう。