JAVAでSQLiteを使ってみた

JavaSQLiteを使うための簡単なプログラムを書いてみます。

SQLiteの特徴の特徴としては、

  • Cで書かれた軽量データベース
  • 全体のコード数が10万行程度
  • データベースを保存するファイルが1つに納まっている

他のシステムだと、複数のデータベース用のファイルがあって管理が面倒なのですが、SQLiteのデータベースはファイル1つで、しかもOS互換フォーマットで保存されているので、簡単にOSをまたがったデータベースのコピーを作成することができます。


データベースアプリケーションを作成するには、JDBCというAPIを使います。SQLite JDBC Driverを使ってローカルにデータベースを作成してみます。先ず、Java用のライブラリーをダウンロードして、プロジェクトのビルド・パスに追加します。


SqliteJDBC(Java用のライブラリ:jarファイル)
http://www.zentus.com/sqlitejdbc/
SQLite JDBC Driverは、Mac OS X, Windows, Linuxなどよく使われるOSでSQLiteをインストールなしで動作させるために、それぞれのOSでコンパイルしたSQLiteのバイナリをjarファイルの中に埋め込んであります。プログラムの実行時に、自動的にjarファイルの中からOSに応じたSQLiteのバイナリを取り出しJava側でロードして使えるようになります。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class SQLtest {

	private static Connection conn;
	private static Statement stmt;
	private static ResultSet rs;

	public static void main(String[] args)  {

		try {
			//準備(Cドライブにあるsqlite_sampleフォルダに作成します)
			Class.forName("org.sqlite.JDBC");
			conn = DriverManager.getConnection("jdbc:sqlite:/c:/sqlite_sample/testdatabase");
			stmt = conn.createStatement();

			//テーブル作成
			stmt.executeUpdate("create table test1( name string, age integer )" );

			//値を入力する
			stmt.execute( "insert into test1 values ( '初音ミク', 16 )" );

			//結果を表示する
			rs = stmt.executeQuery("select * from test1");
			while(rs.next()) {
				System.out.println(rs.getString("name"));
				System.out.println(rs.getInt("age"));
			}

		} catch (ClassNotFoundException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} finally {
			if(conn != null) {
				try {
					//接続を閉じる
					conn.close();
				} catch (SQLException e) {
					// TODO 自動生成された catch ブロック
					e.printStackTrace();
				}
			}
		}
	}
}