SQLiteを使うには、まず、ここ(https://bitbucket.org/xerial/sqlite-jdbc)からSQLiteのJDBCをダウンロードする。これをプロジェクトに追加してやるとJDBC経由でSQLiteが使えるようになる。
このjarファイルには、ネイティヴコードの共有ライブラリも含まれているので、そのまんま使える。sqlite-jdbc-3.8.11.2.jarでざっくり調べてみたら、Windows10(x64)、Mac(OS X El Capitan)、Android 5.1(ARM)、6.0(x86)で動くのを確認した。AndroidのエミュレータGenymotionのAndroid6.0とSDKのエミュレータでAndroid7.0(ARM64)では動かなかった。
ちょっとしたサンプルを。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SQLiteTest {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:c:\\tmp\\test.db");
// テーブルを作る
Statement stmt = conn.createStatement();
String sql = "CREATE TABLE IF NOT EXISTS "
+ "test(id INTEGER PRIMARY KEY, name TEXT)";
stmt.execute(sql);
stmt.close();
// データを登録
sql = "INSERT INTO test(id, name) VALUES(?, ?)";
PreparedStatement preStmt = conn.prepareStatement(sql);
for(int i = 0; i < 10; i++) {
int j = 1;
preStmt.setInt(j++, i);
preStmt.setString(j++, "hoge" + i);
preStmt.execute();
}
preStmt.close();
// 検索
sql = "SELECT * FROM test";
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
System.out.println(rs.getInt("id") + ", " + rs.getString("name"));
}
rs.close();
stmt.close();
conn.close();
}
}
コメント