'sqlite'에 해당되는 글 2건

  1. 2010.05.06 SQLite with Eclipse (1)
  2. 2009.09.11 SQLite (3)
다음 사이트에서 SQLiteJDBC를 다운로드 합니다.

* SQLite JDBC 다운로드: http://www.zentus.com/sqlitejdbc/

이클립스의 Perspective를 다음 그림과 같이 Database Development로 변경합니다.


Database Connection에서 오른쪽 마우스를 클릭해 새로운 Connection을 추가합니다.

추가할수 있는 다양한 형태의 Database 목록을 선택할 수 있는데 여기서 SQLite를 선택합니다.


위에서 다운로드한 SQLiteJDBC 설정하기 위해 다음 그림과 같이 상단 우측 삼각형(Edit Driver Definition)을 클릭합니다.


jar List 탭에서 Add JAR를 클릭하고 다운로드 받은 SQLiteJDBC Driver을 선택합니다.


연결할 SQLite 데이터베이스 파일을 지정하고 이름을 입력합니다.


성공적으로 Connection이 생성되면 다음 그림과 같은 화면을 볼 수 있습니다.


SQL문장을 실행하기 위해 Connection에서 오른쪽 마우스를 클릭해 'Open SQL Scrapbook'을 선택합니다.

그리고 화면에 나타나는 SQL Scrapbook에서 Type, Name, Database 등을 다음 그림과 같이 SQLite, Connection 이름, Database 이름을 지정합니다.


SQL문장을 입력하고 Alt + S로 SQL문장을 실행할 수 있습니다.

SQL문장 실행결과는 다음 그림과 같이 이클립스 하단에서 확인할 수 있습니다.


JDBC드라이버만 있다면 위와 비슷한 절차를 통해 Oracle, MySQL, DB2 등 다양한 Database 서버에 이클립스를 통해 접속하여 SQL문을 실행할 수 있습니다. 

'프로그래밍 > 오픈소스' 카테고리의 다른 글

spring-data에서 redis 사용하기  (0) 2012.12.06
Hibernate @NotFound 어노테이션  (0) 2012.12.05
이클립스에 GlassFish 설치하기  (0) 2011.02.17
SQLite with Eclipse  (1) 2010.05.06
SWF파일 분석 도구  (0) 2010.04.13
boost library 설치  (0) 2010.03.17
libcurl 사용하기  (0) 2010.03.15
SQLite  (3) 2009.09.11
ACE(ADAPTIVE Communication Environment)  (0) 2009.09.03
MySQL++  (0) 2009.08.21
C++ 암복호화 라이브러리 Crypto++  (0) 2009.08.20
Posted by devop

댓글을 달아 주세요

  1. 좋은정보 감사합니다 트래백 가져갈께요

    2010.08.12 12:38 신고 [ ADDR : EDIT/ DEL : REPLY ]

SQLite는 데이터베이스의 일종으로 SQL 데이터베이스 엔진을 탑재하는 경량화된 데이터베이스로서, MySQL, MS-SQL, Oracle과 같은 데이터베이스를 다루어 본 경험이 있는 사람이라면 SQLite에 손쉽게 익숙해질 수 있습니다. 

위에 언급한 MySQL 등의 데이터베이스들은 큰 큐모의 데이터베이스 프로그래밍을 지원하기에 적당하며 간단하고 빠른 용도의 데이터베이스로는 적합하지 않습니다. 그렇다고 파일을 사용하기에는 기능이 너무 제한적이며 데이터의 관리에도 어려움이 많습니다.

SQLite는 일종의 파일 데이터베이스로 MySQL 등과는 다르게 서버/클라이언트 모델을 지원하는 데이터베이스가 아니라, 로컬에서만 사용가능합니다. 원격 데이터베이스로의 Connection이 발생하지 않기때문에 데이터로의 접근이 매우 빠르며, 표준 SQL구문을 모두 지원하기 때문에 데이터의 관리도 용이합니다. SQLite는 그 경량성때문에 요즘 이슈가 되는 아이폰 등의 모바일 기기에 널리 사용되고 있으며 C, C++, Java, Object-C, Delphi, PHP 등 다양한 언어로 개발 환경을 지원하고, 다양한 운영체제에서 사용될 수 있습니다.

SQLite의 특징은 다음과 같습니다.

  • SQL92의 대부분을 지원한다. 다음은 지원하지 않는 몇 가지 기능들이다.
  • 단일 파일에 데이터베이스의 모든것을 포함한다.
  • ACID(Atomic, Consistent, Isolate, Durable) 보증
  • byte order에 관계없이 데이터 파일의 공유가 가능
  • 2테라바이트 (2^41)크기의 데이터 파일 생성지원
  • 효율적인 메모리 사용 : 25k라인정도의 C코드로 이루어졌다.
  • 많은 일반적인 명령을 실행하는데 PostgreSql과 Mysql보다 최소 2배이상 명령에 따라서 10-20배 이상 빠르다.
  • 하나의 구조체와 3개의 함수만 사용하는 정도로 sqlite를 사용하는 C/C++ 코드를 만들어 낼 수 있다.
  • TCL, Perl, PHP, .Net, Java, Python, SmallTalk, Ruby등의 다양한 언어지원
  • 다른 라이브러리등의 도움없이 작동된다. libsqlite.so와 sqlite 2개의 파일이면 작동 환경을 만들 수 있다.
  • Public Domain 라이센스를 가진다.
  • sqlite는 서버/클라이언트 모델을 지원하는 RDBMS가 아니다. 로컬에서만 사용가능하며 인터넷응용을 원한다면 별도의 서버 프로그램을 만들어야 한다.



1. Java에서 SQLite 사용하기
Java로 SQLite를 사용하기 위한 방법으로 Java Wrapper와 JDBC 드라이버가 있습니다. Wrapper는 C 라이브러리는 JNI를 통해 호출하는 방식으로 사용하기가 매우 번거롭습니다. JDBC 드라이버는 Java의 표준 JDBC 인터페이스를 통해 SQLite를 호출하는 방법으로 일반적인 데이터베이스를 다루는 방법과 거의 동일합니다.

SQLite JDBC 다운로드: http://www.zentus.com/sqlitejdbc/

SQLiteJDBC에는 기본적으로 SQLite3가 포함되어 있기때문에 별도로 SQLite를 다운로드 받지 않아도 됩니다.

Connection을 생성하는 코드는 다음과 같습니다.
public static Connection getConnection() {
		try {
			Class.forName("org.sqlite.JDBC");
			return DriverManager.getConnection("jdbc:sqlite:mydb.db");
		} catch (ClassNotFoundException e) {
		} catch (SQLException e) {
		}
		return null;
	}
Table을 생성하는 코드는 다음과 같습니다.
public void createTableTest() {
		Connection conn = null;
		Statement stat = null;
		try {
			conn = getConnection();
			if( conn != null ) {
				stat = conn.createStatement();
				stat.executeUpdate("drop table if exists mytable;");
				stat.executeUpdate("create table if not mytable(id int primary key);");
			}
		} catch (Exception e) {
			// exception handling
		} finally {
			if( stat != null ) try{ stat.close(); } catch(Exception e){}
			if( conn != null ) try{ conn.close(); } catch(Exception e){}
		}
	}
Select 쿼리를 수행하는 예제
public boolean selectQueryTest() {
		Connection conn = null;
		PreparedStatement stat = null;
		ResultSet rs = null;
		boolean result = false;
		try {
			conn = getConnection();
			if( conn != null ) {
				stat = conn.prepareStatement("select id from mytable where id=?;");
				stat.setLong(1, 10);
				rs = stat.executeQuery();
				if( rs.next() ) {
					if( 10 == rs.getLong("id") )
						result = true;
				}
			}
		} catch (Exception e) {
			// exception handling
		} finally {
			if( rs != null ) try{ rs.close(); } catch(Exception e){}
			if( stat != null ) try{ stat.close(); } catch(Exception e){}
			if( conn != null ) try{ conn.close(); } catch(Exception e){}
		}
		return result;
	}
한가지 주의해야 할 점은 SQLiteJDBC는 멀티쓰레드에서의 동기화를 지원하지 않기 때문에, 동시접근가능성이 있는 코드에 대해서 synchronized 블럭을 사용해야 합니다.(MySQL 등의 데이터베이스는 서버 프로세스에서 클라이언트간의 동기화가 이루어지기 때문에 synchronized 블럭을 사용할 필요가 없습니다.) 

'프로그래밍 > 오픈소스' 카테고리의 다른 글

이클립스에 GlassFish 설치하기  (0) 2011.02.17
SQLite with Eclipse  (1) 2010.05.06
SWF파일 분석 도구  (0) 2010.04.13
boost library 설치  (0) 2010.03.17
libcurl 사용하기  (0) 2010.03.15
SQLite  (3) 2009.09.11
ACE(ADAPTIVE Communication Environment)  (0) 2009.09.03
MySQL++  (0) 2009.08.21
C++ 암복호화 라이브러리 Crypto++  (0) 2009.08.20
C/C++ XML Parser TinyXml  (1) 2009.08.20
HttpClient와 Jericho Parser를 이용한 HTML 파싱  (0) 2009.07.28
Posted by devop

댓글을 달아 주세요

  1. SQLite로 작성한 DB를 이클립스에서 열람 및 수정할 수 있는 방법이 따로 있나요?

    2010.05.01 14:37 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 이클립스에서 SQLite 데이터베이스를 조작하는 방법을 포스팅 했습니다. http://lyb1495.tistory.com/entry/SQLite-with-Eclipse

      2010.05.06 14:08 신고 [ ADDR : EDIT/ DEL ]
  2. 좋은 정보 감사합니다 Trackback 해갈께요

    2010.08.12 12:36 신고 [ ADDR : EDIT/ DEL : REPLY ]