JavaからSqliteを使ってみる。

 Java向けの組み込みデータベースというと、JDKに同梱されているDerbyがあるけれど、ちょっと、SQLiteが気になったので、試してみた。
■準備
 ・SQLite Home Pageからsqlite3.dllダウンロードする。
 ・JDBCドライバ(sqlite-jdbc-3.6.14.jar)をダウンロードする。
 ・sqlite3.dllにパスを通し、sqlite-jdbc-3.6.14.jarにクラスパスを通す。
 ・GUIクライアント(例えば、TkSqlite)をダウンロードし、適当にテーブルを作る。
■テスト
 試しに、大阪府の市町村のID番号と名称を入力したcityテーブルを作り、Javaから呼び出してみた。 

ソースコード

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

public class SqliteTest{
	private static String DB_URL=getDB_URL();
	
	private static String getDB_URL(){
		File f=new File("osaka.db3");
		return "jdbc:sqlite:"+f.getAbsolutePath();
	}
	
	public static void main(String[] args){
		try{
			Class.forName("org.sqlite.JDBC");
		}catch(ClassNotFoundException e){
			e.printStackTrace();
			System.exit(1);
		}
		Connection conn=null;
		try{
			conn=DriverManager.getConnection(DB_URL);
			Statement st=conn.createStatement();
			st.setQueryTimeout(50);
			ResultSet rs=st.executeQuery("select * from city");
			while(rs.next()){
				System.out.println(
				rs.getInt("id")+","+rs.getString("名称"));
			}
		}catch(SQLException e){
			e.printStackTrace();
		}finally{
			try{
				if(conn!=null)conn.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
	}
}