EclipseからのDerbyデータベース接続(Embedded)の作成
MementoWeaver開発記(6)
PersistenceManagerの実装に入るにあたって、Java Persistence API(JPA)を使用することとする。理由はJavaの習作のようなものなので使えるものは手広く使いたいから*1。
以前の中野ー新川での仕事でもJPAを使っていたが、もうすっかり忘れてしまっているので、開発環境の構築から始めなければならないし、そもそもまだDBMSの設定もしていなかったのでまずはDerbyのセットアップから。
EclipseからのDerbyデータベースの作成
まずはEclipseでDatabase Developmentパースペクティブを開き、Database Connectionsの上で右クリックし、New。で新規接続の作成ウイザードが立ち上がる。Derbyを選択して次へ。
まだDerbyの接続用のドライバを定義していなかったので、最初は何も表示されない。
右肩の+のようなアイコンをクリック。
今回はDerbyを組み込み(Embedded)モードで使用するので、Derby Embedded JDBC Driverを選択する。ただし、初期状態ではDerby.jarが見つからないので警告される。
JAR Listタブを開くとDerby.jarを探しているけど見つからない、と言うような警告が出ているので、Derby.jarを選択してEdit JAR/Zip をクリック。FileChooserがあがってくるので、Derby.jarの場所を教えてあげる。Java7@Windows7の場合、デフォルトではC:\Program Files\Java\jdk1.7.0_13\db\lib辺りに入っている筈。
ここを設定すると警告が消える。
Propertiesタブで一応IDとPWDを設定する。後でも変えられるのでここで入れなくても良かったのかも。
ドライバの選択画面に戻ってくるとここでまたID/PWDを入力できる。DB名やファイルパスなどを変えたければここで変更する。
Test Connectionボタンを押して、Pingが通れば接続は出来たことになる。
Finishでワークベンチに戻ってくると、Database Connections以下に作成したMyDBが見えている。
どうやらEclipse上からはGUIでテーブルの作成とかは出来なさそう(調査不足かもしれない)なので、DDLを作成する。
Softwares Idea ModelerからDDLを生成する。
AmaterasUMLを入れたのだから、そこからDDLを出させても良いのだが、まだAmaterasUMLにERDを移していないので、Software Idea ModelerからDDLを生成する。
Tools->Generate Source Code でソースコードの生成ダイアグラムが表示される。
ここで生成する言語(SQL DDL)を選択してGenerateすると以下のようなSQLファイルが作成される。
-- Table Material -------------------------- CREATE TABLE [Material] ( [MATERIALID] [CHAR] (14) NOT NULL, [CREATEDYEAR] [INTEGER] NOT NULL, [CREATEDMONTH] [INTEGER] NOT NULL, [MATERIALTYPE] [CHAR] (1) NOT NULL, [MATERIALSTATE] [CHAR] (1) NOT NULL , CONSTRAINT PK_Material PRIMARY KEY (MATERIALID) ) -- Table TaggedMaterial --------------------------
このままではDerby用のDDLとしては使用できない*2ので、テキストエディタで以下を加工した。
- ブランケットを削除
- 各文の末尾にセミコロンを追加
- Null可能カラムには型定義の後に'NULL'が出力されてしまうので削除
また、以下については自分の誤りだったためモデルを修正。