仕事で必要にかられてちょっと調査。まずはJDBCドライバを探す。
Google先生で検索してみたら、とりあえずこれ(http://www.zentus.com/sqlitejdbc/)が引っかかった。
単なるJarファイル。クラスパスを通せばよい。
サンプルソースもダウンロード先に書かれているのでそれを動かしてみる。ちょっといじってみた。
package miyohide; import java.sql.*; public class JdbcAccess { public static void main(String[] args) throws Exception { Class.forName("org.sqlite.JDBC"); Connection conn = null; try { conn = DriverManager.getConnection("jdbc:sqlite:test.db"); peopleAdd(conn); } catch (SQLException e) { e.printStackTrace(); } finally { conn.close(); } } public static void peopleAdd(Connection conn) throws SQLException { ResultSet rs = null; try { Statement stat = conn.createStatement(); stat.executeUpdate("drop table if exists people;"); stat.executeUpdate("create table people (name, occupation);"); PreparedStatement prep = conn.prepareStatement( "insert into people values (?, ?);"); prep.setString(1, "Gandhi"); prep.setString(2, "politics"); prep.addBatch(); prep.setString(1, "Turing"); prep.setString(2, "computers"); prep.addBatch(); prep.setString(1, "Wittgenstein"); prep.setString(2, "smartypants"); prep.addBatch(); conn.setAutoCommit(false); prep.executeBatch(); conn.setAutoCommit(true); rs = stat.executeQuery("select * from people;"); while (rs.next()) { System.out.println("name = " + rs.getString("name")); System.out.println("job = " + rs.getString("occupation")); } } catch (SQLException e) { e.printStackTrace(); } finally { rs.close(); } } }
実行してみる。
name = Gandhi job = politics name = Turing job = computers name = Wittgenstein job = smartypants
おぉぉ!
SQLite3はデータベースの情報は単純に一つのファイルとして保存されている。保存先はカレントに成っているので、それの確認とSQLite3で内容の確認をしてみる。
hikari.local{miyohide}% cd NetBeansProjects/JDBC_Sample hikari.local{miyohide}% ls build lib nbproject test build.xml manifest.mf src test.db hikari.local{miyohide}% sqlite3 test.db SQLite version 3.6.21 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> select * from people; Gandhi|politics Turing|computers Wittgenstein|smartypants sqlite>
おぉぉ。ちゃんと出来ている。