対象

JDK 6

JavaDBとは

  • Java 6から追加されたSQLデータベース機能
    • 別途OracleなどのDBMSを用意しなくとも、Java本体だけでRDBを利用することができる
    • 元々はApache Foundationで開発が行われていた「Derby」というpure Javaのデータベース
  • DBサーバとして起動しクライアント&サーバ方式でアクセス可能
    • SQLiteなどの組み込みDBとは違い、複数ユーザからの同時アクセス可能

組み込みモードでのJDBCアクセス

次のjarファイルをクラスパスに通す。※デフォルトのインストール場所の場合
C:\Program Files\Sun\JavaDB\lib\derby.jar

public static void main(String[] args) throws Exception {
		
	Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

	Connection connection = null;
	Statement statement = null;
	ResultSet resultSet = null;
	try {
		Properties prop = new Properties();
		prop.put("user", "ユーザID");
		prop.put("password", "パスワード");
		connection = DriverManager.getConnection("jdbc:derby:C:\\Derby\\mydatabase", prop);
		statement = connection.createStatement();
		resultSet = statement.executeQuery("select * from sampleteable");
		while (resultSet.next()) {
			int number = resultSet.getInt("column1");
			String name = resultSet.getString("column2");
			System.out.println(number + "|" + name );
		}
	}
	finally {
		if (resultSet != null) resultSet.close();
		if (statement != null) 	statement.close();
		if (connection != null) connection.close();
	}
}

データベース作成

JDBC接続文字列の末尾に"create=true"をつけて接続をする
Properties prop = new Properties();
prop.put("user", "ユーザID");
prop.put("password", "パスワード");
Connection connection = DriverManager.getConnection("jdbc:derby:C:\\Derby\\mydatabase;create=true", prop);
接続時に指定したユーザID、パスワードがデータベースにログインするユーザのIDとパスワードになる

クライアント・サーバーモードでの起動・停止

起動
binディレクトリ化の"startNetworkServer.bat"を起動する。
※デフォルトのインストール場所の場合
C:\Program Files\Sun\JavaDB\bin\startNetworkServer.bat
停止
binディレクトリ化の"stopNetworkServer.bat"を起動する
C:\Program Files\Sun\JavaDB\bin\ stopNetworkServer.bat

クライアント・サーバーモードでのJDBCアクセス

次のjarファイルをクラスパスに通す。※デフォルトのインストール場所の場合
C:\Program Files\Sun\JavaDB\lib\derby.jar
C:\Program Files\Sun\JavaDB\lib\derbyclient.jar

public static void main(String[] args) throws Exception {

	Class.forName("org.apache.derby.jdbc.ClientDriver");

	Connection connection = null;
	Statement statement = null;
	ResultSet resultSet = null;
	try {
		Properties prop = new Properties();
		prop.put("user", "ユーザID");
		prop.put("password", "パスワード");
		connection = DriverManager.getConnection("jdbc:derby://localhost:1527/C:/Derby/mydatabase", prop);
		statement = connection.createStatement();
		resultSet = statement.executeQuery("select * from sampleteable");
		while (resultSet.next()) {
			int number = resultSet.getInt("column1");
			String name = resultSet.getString("column2");
			System.out.println(number + "|" + name );
		}
	}
	finally {
		if (resultSet != null) resultSet.close();
		if (statement != null) 	statement.close();
		if (connection != null) connection.close();
	}
}

コマンドラインツール

ijツールを起動する
※デフォルトのインストール場所の場合
C:\Program Files\Sun\JavaDB\bin\ij.bat

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます