Javaでsqlite3にJDBCで接続
最近Javaの勉強をしている.
そしてMySQLのめんどくささから,またRailsで正式採用されていることから
sqlite3を使ってみている.
そんなことでJavaからJDBCを用いてsqlite3に接続する方法を調べた.
まず,sqlite3に接続するコード.
パッケージはsqliteとした.
package sqlite; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBManager { String file; public DBManager(String file) { this.file = file; } public Connection createConnection() throws ClassNotFoundException { try { Class.forName("org.sqlite.JDBC"); Connection con = DriverManager.getConnection("jdbc:sqlite:" + file); return con; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } }
それから実際に利用してみる.
package sqlite; import java.sql.Connection; 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 { Connection con = null; Statement smt = null; ResultSet rs = null; try { con = new DBManager("sampletest.sqlite3").createConnection(); smt = con.createStatement(); smt.executeUpdate("DROP TABLE IF EXISTS DRAGONTB"); smt.executeUpdate("CREATE TABLE DRAGONTB(NAME TEXT, SENTOURYOKU INTEGER);"); PreparedStatement prep = con .prepareStatement("INSERT INTO DRAGONTB VALUES (?, ?);"); prep.setString(1, "GOKU"); prep.setInt(2, 5000000); prep.addBatch(); prep.setString(1, "BEJITA"); prep.setInt(2, 4000000); prep.addBatch(); prep.setString(1, "KURIRIN"); prep.setInt(2, 100000); prep.addBatch(); con.setAutoCommit(false); prep.executeBatch(); con.commit(); rs = smt.executeQuery("SELECT * FROM DRAGONTB;"); while (rs.next()) { System.out.println("NAME = " + rs.getString("NAME")); System.out.println("SENTOURYOKU = " + rs.getInt("SENTOURYOKU")); } } catch (SQLException e) { e.printStackTrace(); } finally { try { con.close(); smt.close(); rs.close(); } catch (SQLException e) { // TODO: handle exception e.printStackTrace(); } } } }
結果がこう出れば成功
NAME = GOKU SENTOURYOKU = 5000000 NAME = BEJITA SENTOURYOKU = 4000000 NAME = KURIRIN SENTOURYOKU = 100000
参考
SQLite3でお手軽DBプログラミング - miyohideの日記