JavaとSQLiteデータベース
AndroidではデータベースとしてSQLiteが標準でサポートされています。
Androidでデータベースを使う前に、WindowsでJavaからSQLiteを使う方法について、調べてみました。
SQLiteのインストール
インストールと言っても、特別な事をする必要はありません。
データベースサーバ用の特別のプログラムをインストールする必要は無く、 コマンドラインから使うだけであればSQLite Download Pageより 「Precompiled Binaries For Windows」の下の 「sqlite-3_6_23_1.zip」をダウンロードしてきて、適当なデレクトリに解凍してパスを通すだけです。
「Microsoft Access」 のMDBファイルをコマンドラインツールを使ってアクセスするようなイメージになります。
必要無いが、後で何かの時に使うかもと思って、いちおう、DLL(「sqlitedll-3_6_23_1.zip」)もダウンロードして、解凍してパスを通ったデレクトリに置いておきました。SQLiteをコマンドラインから使う
コマンドプロンプトを起動して、「sqlite3 データベース名」と入力するとSQLiteのコマンドラインツールが起動します。
SQLiteではデータベース名とファイルとが1対1で対応しており、データベースが存在していない場合には新たにデータベース名のファイルがつくられます。
データベース名に以下のようにパス付きのファイル名を指定する事もできます。
Command Line Shell For SQLiteのページを参考に テーブルを作成、データをインサートしてselect文で表示してみました。
図1
sql文の最後には「;」が必要です。
sql文の他に先頭に、「.」文字の付いたSQLiteのコマンドを使う事ができ、この場合には「;」は必要ありません。
コマンドラインツールを終了させるには図のように「.exit」コマンドを実行します。SQLiteの使い方については、ここで述べるよりも参考URLによくできた記事があるので、これを参照すれば良いと思いますが、 気がついた点だけ、以下に述べておきます。
図1で、tbl1テーブルを作成するのに、one列のデータ型に「varchar(10)」を指定していますが、SQLiteにvarchar型があるのでは無く、 これは TEXT型になるようです。
また、テーブル作成時に列のデータ型の指定を省略でき、その場合にはどの型のデータも保存できるようです。
詳しくは、「Datatypes In SQLite Version 3」または「SQLiteで利用可能なデータ型 - SQLiteのデータ型 - SQLite入門」を参照して下さい。
SQLiteのGUIツール
SQLiteのフリーのGUIツールがいろいろあって、適当にインストールしてみたので紹介します。
他にもありますが、どれがいいというような決定版は無いようです。
SQLite Manager
Firefox3の履歴やブックマークはSQLite データベースで管理するようになったようで、 「SQLite Manager」というFirefox3のアドオンをインストールすると、GUIでSQLiteを操作できます。
Firefoxより「SQLite Manager -- Add-ons for Firefox」にアクセスして「Firefoxへ追加」ボタンをクックする事でインストールできます。
アドオンをインストールしたら、メニューより「ツール(T)」→「SQLite Manager(Q)」を選択すると「SQLite Manager」が起動します。
「SQLite Manager」のメニューより、「Connect DataBase(D)」→「Connect DataBase(O)」にて、データベースファイルを指定できます。
前項で作成したデータベースファイル「ex1.db」を開いて、左側のペインでtbl1を選択し、右側のペインで「Browse &Search」 を選択すると、以下の図のように表示されます。
SQLiteStudio
ここから exeファイルを適当なフォルダーにダウンロードして、exeファイルを起動するだけ。
メニューから「Databases」→「add database」でデータベースファイルを指定します。
SQLite ControlCenter 日本語版
「SQLite ControlCenter 日本語版」より zipファイルをダウンロード、SQLiteStudioと同様、適当なデレクトリに解凍し、exeファイルを起動。
メニューからデータベースファイルを指定します。
eclipseのDBViewerプラグイン
eclipseで何もかも済ませたいなら、JDBCドライバーをダウンロードしてきてDBViewerプラグインに登録すれば良い。
SQLiteのJDBCドライバーを「SQLiteJDBC – Xerial – Trac」からダウンロード。
eclipseのメニューより、「Windows(W)」→「ビューの表示(V)」→「その他(O)...」にて表示される 「ビューの表示」ダイアログボックスにて、「DBViewerプラグイン」の下の「DBツリー・ビュー」を選択します。
または、eclipseのメニューより「Windows(W)」→「パースペクティブを開く(O)」→「その他(O)...」で、「パースペクティブを開く」ダイアログを表示して、 「DBViewer」を選択します。
DBツリー・ビューにて、DBViewerPluginアイコンを右クリックして登録を選択、 表示されるダイアログボックスにて、 データベース定義名を入力(ここでは定義名としてSqlite-ex1を指定しています)、 ファイルの追加ボタンにて、SQLiteのJDBCドライバーのjarファイルの保存先を指定して、次へボタンを押します。
JDBCドライバーに「org.sqlite.JDBC」を接続文字列に「jdbc:sqlite:データベースファイル」を指定して、次へボタンを押します。
次の画面では、自動コミットモードを指定しました。
完了ボタンを押します。
DBツリー・ビューより、登録したデータベースをダブルクリックして開くと何やらメッセージが表示されますが、 一応、データベースに接続されます。
tb1テーブルを、ダブルクリックするとテーブルの内容が表示されます。
eclipseのデータツール・プラットホーム (DTP)・プラグイン
eclipseには他にも、データツール・プラットホーム (DTP) のデータ・ソース・エクスプローラを使う方法があります。
データベースの登録方法はDBViewerとほとんど同じで、JDBCドライバーのjarファイルとデータベースファイルを指定します。
こちらの方は変なメッセージは表示されませんが、使い勝手はDBViewerの方がが良いように思います。
「DBViewer」と「データツール・プラットホーム (DTP)」は、「Pleiades All in One 日本語ディストリビューション」 では初めから入っていますが、他のeclipseではプラグインをインストールする必要があります。
JavaアプリケーションでJDBCドライバーを使ってSQLiteにアクセス
eclipseのDBViewerプラグインで使用したSQLiteのJDBCドライバーを使って、 JavaアプリケーションからSQLiteにアクセスしてみます。
以下のようなコードの、javaクラスを作成します。
プログラムを実行するには、SQLiteのJDBCドライバーのjarファイルを、クラスパスに指定する必要があります。
リスト1(SQLiteApp.java)
プログラムの実行結果は、以下のようになります。
いつもどうりのJDBCのアクセス方法で、SQLiteデータベースにアクセスできました。
参考URL
- SQLite Home Page
- Query Language Understood by SQLite
SQLiteのSQLリファレンス - Command Line Shell For SQLite
SQLiteのコマンドラインツールの使い方 - SQLite入門
日本語でわかりやすく説明されています