NetBeansでSQLite3 JDBC Driverを使ってみる
SQLite3 JDBC Driver を使ったアプリケーションを作る前準備として NetBeans IDE 6.1 Beta 上で SQLite3 を使えるようにしてみます。
- NetBeans IDE 6.1 Beta の Java SE パックをダウンロードしてインストールします。
JDK 6 は事前にインストールしておく必要があります。 - sqlite3jdbc-0.0.6.zip をダウンロードして任意のフォルダに展開します。
ここでは C:\Java\sqlite3jdbc に展開します。 - sqlite3jni-0.0.6-win32.zip をダウンロードして任意のフォルダに展開します。
ここでは C:\Java\sqlite3jdbc\win32 に展開します。 - 「C:\Java\sqlite3jdbc\win32」を環境変数「PATH」に追加します。
- NetBeans を起動します。
- 「CTRL+5」で「Services」ウィンドウに切り替えます。
- 「Drivers」→右クリック→「New Driver...」をクリック。
- 「Driver File(s)」に「C:\Java\sqlite3jdbc\sqlite3.jar」を追加して「Find」ボタンをクリック。「Name」に「SQLite3」と入力して「OK」ボタンをクリックし、SQLite3 JDBC Driver を登録します。
- 「SQLite3」→右クリック→「Connect Using...」をクリック。
- 「Database URL」に「jdbc:sqlite:mem:」と入力して「OK」ボタンをクリック。
- ツリーに追加された「jdbc:sqlite:mem: [on main]」にテーブルを作成します。
「Tables」→右クリック→「Create Table...」をクリック。
「SAMPLE」テーブルを作ってみます。
- ツリーに「SAMPLE」テーブルが追加されました。
- テーブルの中身を確認してみます。
「SAMPLE」→右クリック→「View Data...」をクリック。
「Output」パネルにエラーが出力され、テーブルの中身は確認できません…orz
原因は SQLite v3.3.5 では sqlite3_step() を呼び出さないと sqlite3_column_type() でカラム型を取得できないためです。次のバージョン(0.0.7)では例外を投げないように変更する予定です。
- 気を取り直して、SQLite3 JDBC Driver ver 0.0.7(開発版)をダウンロードして C:\Java\sqlite3jdbc に展開します。
「sqlite3jdbc-0.0.7-dev.zip」をダウンロード - NetBeans を再起動して、再度テーブルの中身を確認してみます。
無事、テーブルの中身が表示されました(空っぽですが)。 - 次はレコードを登録してみます。
「Tables」→右クリック→「Execute Command...」をクリック。
「INSERT INTO main.SAMPLE VALUES(1, 'ねこび~ん', 123.456789)」と入力して「CTRL+Shift+E」で SQL を実行します。
- 再度テーブルの中身を確認してみます。
無事、登録されているレコードが確認できました。 - 使い終わったら DB 接続を閉じましょう。
「jdbc:sqlite:mem: [on main]」→右クリック→「Disconnect」をクリック…すると NetBeans がクラッシュします…orz
原因は SQLite v3.3.5 では sqlite3_open() したスレッドとは異なるスレッドで sqlite3_close() を呼び出すことができないためです。
(リリースノートには v3.3.1 で異なるスレッドでの sqlite3_close() 呼び出しに対応したとあるんですが…)
※ビルドオプションに「SQLITE_ENABLE_MEMORY_MANAGEMENT」を追加しているのが原因でした…orz
※「SQLITE_ENABLE_MEMORY_MANAGEMENT」は組み込みデバイスなどのメモリが厳しい環境のみ指定するのが正しいようです。
試しに v3.5.6 で JNI ライブラリをビルドしたところ NetBeans がクラッシュしなくなったので SQLite のバージョンをあげれば解決するはずです。
「sqlite3jni-0.0.6-win32-sqlite-3.5.6.zip」をダウンロード
NetBeans で SQLite3 を使ったみた感想は「ちゃんと DatabaseMetaData を実装した甲斐があったなぁ…」でした![]()
| 固定リンク
« SQLite3 JDBC Driver for Mysaifu JVM バージョン 0.0.6 リリース! | トップページ | SQLite ver 3.5.7 for Windows Mobile »
「Java」カテゴリの記事
- SQLite3 JNI Library for Mac OS X (intel) バージョン 1.1.4 リリース!(2009.03.13)
- SQLite3 JNI Library for Macintosh (i386) バージョン 1.1.2 リリース!(2008.09.18)
- SQLite3 JDBC Driver for Mysaifu JVM バージョン 1.1.4 リリース!(2009.03.12)
- SQLite3 JDBC Driver for Mysaifu JVM バージョン 1.1.3 リリース!(2008.10.13)
- SQLite ver 3.6.3 for Windows Mobile(2008.09.27)
「NetBeans」カテゴリの記事
- NetBeansでSQLite3 JDBC Driverを使ってみる(2008.03.13)
「SQLite」カテゴリの記事
- SQLite3 JNI Library for Mac OS X (intel) バージョン 1.1.4 リリース!(2009.03.13)
- SQLite3 JNI Library for Macintosh (i386) バージョン 1.1.2 リリース!(2008.09.18)
- SQLite3 JDBC Driver for Mysaifu JVM バージョン 1.1.4 リリース!(2009.03.12)
- SQLite3 JDBC Driver for Mysaifu JVM バージョン 1.1.3 リリース!(2008.10.13)
- SQLite ver 3.6.3 for Windows Mobile(2008.09.27)

コメント
このページは大変有り難い情報で,早速NetBeansでSQLite3 JDBC Driverを使えるように設定してみたところ,このページの10番目の「jdbc:sqlite:mem:」を入力して「OK」ボタンをクリックした後にループ状態になり次に進めません.
OSはWindowsVistaで,NetBeanは6.0.1を使っています.
後は,このページに詳細されているものをインストールしました.
もし何かおわかりであれば対処法を教えてください,
投稿: cecil | 2008年9月19日 (金) 12時03分
「ループ状態になり次に進めません」とのことですが、NetBeansの画面右下に進入禁止マークのような赤いアイコンが点滅していないでしょうか?
もし点滅しているようなら一旦接続ダイアログをキャンセルしてアイコンをクリックするとエラーメッセージダイアログが表示されると思いますので教えていただけますか?
それとJDBCドライバとJNIライブラリは最新のバージョン(1.1.2)を使用してみてください。
投稿: calico | 2008年9月24日 (水) 00時02分