본문 바로가기

개발

[Sqlite] java application에서 sqlite 사용하기.

첨부파일에 sqlitejdbc-v053을 프로젝트에 포함하고 빌드path에 포함시켜준다.


sqlitejdbc-v053.jar



아래는 테스트코드.


public static void main(String args[]) throws Exception {
			  Class.forName("org.sqlite.JDBC");
		      Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
		      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);

		      ResultSet rs = stat.executeQuery("select * from people;");
		      while (rs.next()) {
		          System.out.println("name = " + rs.getString("name"));
		          System.out.println("job = " + rs.getString("occupation"));
		      }
		      rs.close();
		      conn.close();
}	


SQLITE 뷰어는 아래 사이트에서 다운로드

http://sqlitebrowser.sourceforge.net/

http://sourceforge.net/projects/sqlitebrowser/


2012.10.29 

사용해보니.. 단일세션만 허용된다. 예를 들면 한쪽에서 쓰기 작업을 계속한다면,, 다른한쪽에서 해당 데이터를 select시 lock이 걸려서 에러를 발생한다.

단일세션이 다중세션이 필요할 경우에는 시간차를 잘 계산해서 사용하던가, 다른 DB를 사용해야 할듯하다.