ここのページに置いてあるSQLiteJDBCが便利らしい。
http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC
どの辺が便利かというと、JARの中にWindows用のsqlitejdbc.dllとか、Linux用のlibsqlitejdbc.soが同梱されているので、パスやら環境を意識することなく、ライブラリを読み込みさえすれば使えてしまう。
しかも、もしWindowsでもMacでもLinuxでもなかった場合は、PureJavaなSQLiteを呼んでくれたりもするらしい。Java版の実装なんてあったんですね。知らなかった。でも、ソースコード見ようと思ったらそこだけ何故か入ってなかった。
とりあえず、サンプル。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SqlTest {
public static void main(String[] args) throws Exception {
// 準備。servicesとかは入ってないみたいなので、1.6でもforNameする。
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
Statement stmt = conn.createStatement();
// テーブルを作る。
// 実行するとgetConnection時に指定したtest.dbという名前のファイルが出来る。
stmt.execute( "create table test1( str1 string, int1 integer )" );
// とりあえず、1行INSERT。
stmt.execute( "insert into test1 values ( 'abc', 1 )" );
// SELECTして値を見てみる。
ResultSet rs = stmt.executeQuery( "select * from test1" );
while( rs.next() ) {
System.out.println( rs.getString( 1 ) );
System.out.println( rs.getInt( 2 ) );
}
// 閉じる
conn.close();
}
}