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.1SQLiteのexe
サイト 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を追加します。
④実行
以上