SQLite JDBC Driver for MysaifuJVMを使ってみる(http://halt-now.cocolog-nifty.com/blog/mysaifu_jvm/index.html)

おもしろいです。
テストコードを作るまでは簡単だったのですが、実際に動かすまでに一苦労(^^;)。いや、JDBCドライバもjniも使うのが初めてだったのでその辺で苦労しただけですが。

  • 愛用のEclipse3.4でJDBCを使うプロジェクトを作成
  • sqlite3.jarにクラスパスを通してコンパイル
  • 実行時もsqlite3.jarをクラスパスに入れて実行
  • jniが見つからんと怒られる

うーんと、

ただ、これでは使いづらいなぁ。ユーザーによってはprogram filesに触れるとは限らないわけだし。

あー、これでいいんだ。なるほど。
ちなみに、

  • 出来上がったjarファイル(Manifest付き)と同じディレクトリにsqlite3jni.dllを入れてダブルクリック:○

でも大丈夫でした。おお、こうやって配るものなんだなぁ。


いや、Win32はどうでもいいんだ(^^;)。
MysaifuJVMで動かそうとしてまた一苦労。

これはマニュアルにあるとおり。

  • クラスファイルを転送してクラスを指定して実行:×(Class.forName("org.sqlite.Driver");が見つからないと怒られる)

……あ、そりゃそうだな。JDBCドライバが無いんだから。

  • sqlite3.jarを転送してクラスパスに入れた上で実行:○

うーん、転送するファイルが多いなぁ。人に見せるのが大変だ。
そこで、以下の方策をとりました。

  • sqlite3.jarを展開したものと、作ったクラスファイルをまとめてjarにして、Manifestもつけた上で実行:○

おお、jniはともかくjdbcはこうすればどうにかなるんですね。面白いなぁ。


パフォーマンスまでは判りませんでしたが、同じソース、同じバイナリで動くことが判っただけでも収穫です。せっかくなのでいろいろ細工してみましょう(^^)。