No Bugs, No Life

読んだ本や、プログラミング、システム開発等のねたを中心に。文章を書く練習なので少し硬派に書くつもりだけど、どうなることやら。

EclipseからのDerbyデータベース接続(Embedded)の作成

MementoWeaver開発記(6)
PersistenceManagerの実装に入るにあたって、Java Persistence API(JPA)を使用することとする。理由はJavaの習作のようなものなので使えるものは手広く使いたいから*1

以前の中野ー新川での仕事でもJPAを使っていたが、もうすっかり忘れてしまっているので、開発環境の構築から始めなければならないし、そもそもまだDBMSの設定もしていなかったのでまずはDerbyのセットアップから。

EclipseからのDerbyデータベースの作成

まずはEclipseでDatabase Developmentパースペクティブを開き、Database Connectionsの上で右クリックし、New。で新規接続の作成ウイザードが立ち上がる。Derbyを選択して次へ。
f:id:kazyury:20130302143938p:plain
まだDerbyの接続用のドライバを定義していなかったので、最初は何も表示されない。
右肩の+のようなアイコンをクリック。
f:id:kazyury:20130302143954p:plain
今回はDerbyを組み込み(Embedded)モードで使用するので、Derby Embedded JDBC Driverを選択する。ただし、初期状態ではDerby.jarが見つからないので警告される。
f:id:kazyury:20130302144006p:plain
JAR Listタブを開くとDerby.jarを探しているけど見つからない、と言うような警告が出ているので、Derby.jarを選択してEdit JAR/Zip をクリック。FileChooserがあがってくるので、Derby.jarの場所を教えてあげる。Java7@Windows7の場合、デフォルトではC:\Program Files\Java\jdk1.7.0_13\db\lib辺りに入っている筈。
ここを設定すると警告が消える。
f:id:kazyury:20130302144018p:plain
Propertiesタブで一応IDとPWDを設定する。後でも変えられるのでここで入れなくても良かったのかも。
f:id:kazyury:20130302144049p:plain
ドライバの選択画面に戻ってくるとここでまたID/PWDを入力できる。DB名やファイルパスなどを変えたければここで変更する。
Test Connectionボタンを押して、Pingが通れば接続は出来たことになる。
Finishでワークベンチに戻ってくると、Database Connections以下に作成したMyDBが見えている。
f:id:kazyury:20130302144155p:plain

どうやらEclipse上からはGUIでテーブルの作成とかは出来なさそう(調査不足かもしれない)なので、DDLを作成する。

Softwares Idea ModelerからDDLを生成する。

AmaterasUMLを入れたのだから、そこからDDLを出させても良いのだが、まだAmaterasUMLにERDを移していないので、Software Idea ModelerからDDLを生成する。

f:id:kazyury:20130302184548p:plain
Tools->Generate Source Code でソースコードの生成ダイアグラムが表示される。
f:id:kazyury:20130302184633p:plain
ここで生成する言語(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'が出力されてしまうので削除

また、以下については自分の誤りだったためモデルを修正。

  • 予約語:COMMENT,TYPE,YEARを使っていたので列名を修正
  • 列名の誤記を修正(FQDNFQCN)
  • CHAR(256)としていた列をVARCHAR(256)に修正

EclipseからのDDL実行

作成したDDLをプロジェクトに配置し開くと、SQLエディタが立ち上がる。
f:id:kazyury:20130302190520p:plain
SQLエディタ上で右クリックしてExecute AllするとSQL文が実行され、結果がSQL Resultsビューに表示される*3

*1:ADとはとても言えないが、プライベートでの開発なので問題なし(笑)。

*2:いったいどのDBMS用だ?この書式は?

*3:何度か失敗した履歴が画像に見えているが、、、。