Red > Green > Refactor > Red

cycle is based on desire

sqlite-jdbc を使って Java から sqlite を操作する

ほとんど公式の Usage 通りです...

環境

sqlite DB を準備する

$ mkdir ~/Develop
$ touch ~/Develop/development.sqlite3

sqlite-jdbc を準備する

ダウンロードページから適当な jar を取ってくる(最新版で良い)

(説明用に /usr/local/jar に配置する)

$ mv ~/Downloads/sqlite-jdbc-3.8.11.1.jar /usr/local/jar/

Java ソースを構築する

  • users テーブル(属性: id(int), name(string))を作成
  • (id, name) = (1, matsukawa) を insert する
1 import java.sql.*;
2 
3 public class Jdbc {
4   public static void main(String... args) throws ClassNotFoundException {
5     Class.forName("org.sqlite.JDBC");
6     Connection connection = null;
7     try {
8       connection = DriverManager.getConnection("jdbc:sqlite:/Users/matsukawa/Develop/develop.sqlite3");
9       Statement statement = connection.createStatement();
10      statement.setQueryTimeout(30);
11      execute_sql(statement);
12     } catch(SQLException e) {
13       System.err.println(e.getMessage());
14     } 
15   } 
16   
17   private static void execute_sql(Statement statement) throws SQLException {
18     statement.executeUpdate("DROP TABLE IF EXISTS users");
19     statement.executeUpdate("CREATE TABLE users (id INTEGER, name STRING)");
20     statement.executeUpdate("INSERT INTO users (id ,name) VALUES (1, 'matsukawa')");
21   } 
22 } 

コンパイル, 実行

$ javac Jdbc.java
$ java -classpath ".:/usr/local/jar/sqlite-jdbc-3.8.11.1.jar" Jdbc

sqlite @ users の状態が意図通りか確認する

$ sqlite3 ~/Develop/develop.sqlite3
sqlite> select * from users;
1|matsukawa