DBMSの準備

Ⅰ.HSQLDB

1.ダウンロード

扱いが簡単なのでHSQLDBを使って演習します。

まずダウンロードします。2010.12.4現在

サイト http://hsqldb.org/

>> 右上<Download>をクリック

>> SOURCE FORGE,  hsqldbをクリック

>>hsqldb_1_8_1 をクリック

>>hsqldb_1_8_1_3.zipをクリック

>>(ダウンロードが始まらなかったら) direct linkをクリック

>>ダウンロードが始まります。

 

最新版2.0.1のダウンロード 2010.12.4現在

>>左欄 Latest stable version 2.0.1 RC1をクリック

>>Looking for the latest version? Download hsqldb-2.0.1-rc2.zip (6.8 MB)をクリック

>>(ダウンロードが始まらなかったら) direct linkをクリック

>>ダウンロードが始まります。

 

以下の説明はhsqldb_1_8_1について説明しています。hsqldb-2.0.1-rc2も同じはずです。

ダウンロードしたファイルを解凍します。解凍先は、hsqldb_1_8_1_3など、版番が分る名前を付けることをお勧めします。

解凍したファイルのうち、DBの演習に必要なのはlibフォルダの下の次のjarファイルだけです。

  hsqldb.jar

これにも、hsqldb_1_8_1_3.jarなど、版番が分る名前を付けることをお勧めします。

解凍された位置でもいいですが、jarをまとめて管理しているような場合はこのファイルだけコピーします。

 

この資料の中ではhsqldb.jarの保存されたフォルダーのパスを%HSQLDB_HOME%で表現します。

 

2.HSQLDB単独でテスト

HSQLDB単独でテストします。

手順は次に通りです。

①databaseを作るフォルダを決めます。既存のものでないときはそのフォルダを作ります。

このフォルダのパスを%DATA%で表現します。HSQLDBはこのフォルダーの中にファイルを作成します。

②HSQLDBを起動するバッチファイルを作ります。

java -cp %HSQLDB_HOME%\hsqldb.jar org.hsqldb.Server -database %DATA%\%1

例 

java -cp D:\user\java\lib\hsqldb.jar org.hsqldb.Server -database D:\user\dev\data\hsqldb\%1

 

これをファイル名hsqldb-server.batとして保存します。

③HSQLDBのマネージャを起動するバッチファイルを作ります。

java -cp %HSQLDB_HOME%\hsqldb.jar org.hsqldb.util.DatabaseManagerSwing

java -cp D:\user\java\lib\hsqldb.jar org.hsqldb.util.DatabaseManagerSwing

 

これをファイル名hsqldb-manager.batとして保存します。

 

④HSQLDBを起動します。

hsqldb-serverを保存したフォルダーに移り(*1)、次のようにタイプします。

hsqldb-server <DB名>

例hsqldb-server test

 

!!! <DB名>を忘れないように

実行状況を示す情報が表示されます。その7行目あたりに、opened successfullyを含む情報が出力されると、この段階は正常に動いています。

なお、終了させるときはctrl+Cで終了します。

注*1 このフォルダをパスに含めれば、このフォルダーに移動する必要はありません。

⑤HSQLDBマネージャを起動します。

HSQLDBが起動されている前提です。HSQLDBを起動したのとは別のコマンド[プロセッサーを立ち上げます。hsqldb-managerを保存したフォルダに移り(*1)、次の通り入力します。

hsqldb-manager

終了させるときはメニューから終了させます。

注*1 このフォルダをパスに含めれば、このフォルダーに異動する必要はありません。

 

⑥ ダイアログが出てきます。、このうちのTypeだけ設定します。

Type:HSQL Database Engine Server

OKボタンをクリック

HSQL Database Managerが起動されます。

正常に立ち上がった場合は、左のペインにエクスプローラ似の形式でpropertiesだけがが表示されているはずです。ルートはjdbc:hsqldb:hsql://localhostです。

 

□jdbc:hsqldb:hsql://localhost

+□properties

コマンド入力ペイン

結果表示ペイン

 

□のところはフォルダーのアイコンです。

 

⑦ テーブルを作成する。

テーブルの仕様  テーブル名 test

#

列名

備考

1

_ID

整数

自動増分

2

TITLE

VARCHAR(25)

 

3

BODY

VARCHAR(250)

 

 

次のSQL文をコマンド入力ペインに入力します。

CREATE TABLE test(

id IDENTITY NOT NULL PRIMARY KEY,

title VARCHAR(25) NOT NULL,

BODY VARCHAR(250))

 

⑧ テーブルに値を設定する。

次のINSERT文をコマンド入力ペインに入力します。

INSERT INTO TEST (title, body) values ('ttt','bbbb')

 

⑨ 検索します。

SELECT id, title, body FROM test

結果表示ペインに検索結果が表示されるはずです。

IDは自動生成されますので、期待した値であるとは限りません。titleとbodyはINSERT文で入力した値と同じか確認して下さい。

⑩ 更新します。

UPDATE test SET title='sss', body='cccc' WHERE id=0

WHERE句の id=0はSELECT文の結果を見て、正しい値を入れて下さい。0とは限りません。

結果をSELECT文を発行して確認して下さい。

⑪ 削除します

DELETE FROM test WHERE id=0

WHERE句の id=0についてはUPDATE文の場合と同じで0とは限りません。

結果をSELECT文を発行して確認して下さい。

 

Ⅱ.SQLite

AndroidはDBとしてSQLiteを使っているので、Javaの研修でも使ってみます

1.ダウンロード

SQLiteはC/C++用のEXEファイルとJavaとをつなぐjarファイルの二つをダウンロードする必要があります。 2010.6.6現在

1.1SQLiteexe

サイト http://www.sqlite.org/

>>上部 メニューのDownloadをクリック

>>開いたページの後半 Precompiled Binaries For Windows sqlite-3_6_23_1.zip

>>ダウンロードが始まります。

 

注2010.12.4現在 sqlite-3_7_3が最新です。Javaとの連携用jar v056はsqlite-3.6.14.2をベースにしています。sqlite-3.6の入手方法は不明です。後で述べるJavaとの連携用jar v056との連携テストは、sqlite-3_7_3でも正常に動くことは確認しています。

 

ダウンロードしたファイルを解凍します。解凍したファイルsqlite-3_6_23_1.exeなど、版番が分る名前を付けることをお勧めします。

解凍された位置でもいいですが、exeをまとめて管理しているような場合はこのファイルだけコピーします(systemフォルダーには入れない方がいい)。コントロールパネルを開いて、上記のexeのパスを追加します。

 

1.2Javaとの連携用jar

これにはいくつかあるようです。優劣は分かりません。演習が目的ですので、簡単に準備できることを基準に選択しました。

サイト http://www.zentus.com/sqlitejdbc/   SQLiteJDBC

>>記事の中 Download sqlitejdbc-v056.jarをクリック

>>ダウンロードが始まります。

 

ダウンロードしたファイルは、そのままの位置でもいいですが、jarをまとめて管理しているような場合はこのファイルだけコピーします。

 

この資料の中ではsqlitejdbc-v056.jarの保存されたフォルダーのパスを%SQLITE_HOME%で表現します。

 

2.SQLite単独でテスト

SQLiteはHSQLDBと違ってGUIのマネージャは提供されていません。オープンソースや商用(体験版)もあるようです。FireFoxのプラグインとしてSQLite Managerがあります。ここでは、コマンドプロセッサーからテストします。

参考資料[参考2]

http://www.sqlite.org/

>>上部メニュー Documentation をクリックhttp://www.sqlite.org/docs.html

>>文中の Alphabetical List Of SQLite Documents をクリック

>>Command Line Shell For SQLite をクリック

 

SQLiteはバッチファイルは作らずにテストします。

①databaseを作るフォルダを決めます。既存のものでないときはそのフォルダを作ります。

このフォルダのパスを%DATA%で表現します

②sqlite3.exeのパスが通っていることを確認して下さい(setとキーインする)。通っていないときは、コントロールパネルから設定して下さい(演習ではeclipseでsqlliteを使いますのでコントロールパネルから、永続的な設定をして下さい---HSQLDBをexeは不要でした)。このテストではjarファイルは使いません。

sqlitejdbc-v056.jar

③ コマンドプロセッサーにキーインします。

sqlite3 <パスを含むデータベース名>

例sqlite3 %DATA%\sqlite_test1

 

次の表示が出ると正常に動作しています。

SQLite version 3.6.23.1

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

>sqlite

sqlite> .database

④指定したデータベースが正しく作成されたか確認します。

.database

 

⑤この後SQLのテストをします。内容はHSQLDBと同じです。ただし、CREATE TABLE文は次の通りです。

CREATE TABLE test(id integer PRIMARY KEY AUTOINCREMENT ,title VARCHAR(25) NOT NULL,BODY VARCHAR(250));

 

また、idは等しいことが保証されていませんので、SELECT文で確認して設定しなければなりません。

3.SQLiteJDBCでテスト

Javaのプログラムから確認します。

①プロジェクトを作ります。

プロジェクト名:HelloSQLite

②プログラムは次のサイトに掲載されているソースをそのまま使って下さい。

サイト http://www.zentus.com/sqlitejdbc/(SQLiteJDBCをダウンロードしたページ)

packageは設定した方がいいと思います。

③ビルドパスにsqlitejdbc-v056.jarを追加します。

④実行

以上