문제

저는 단일 파일 데이터베이스가 제공하는 깔끔함에 매력을 느낍니다.Java와 함께 SQLite를 연결하고 사용하기 위해 어떤 드라이버/커넥터 라이브러리가 있습니까?

래퍼 라이브러리를 발견했습니다. http://www.ch-werner.de/javasqlite, 하지만 더 눈에 띄는 다른 프로젝트가 있나요?

도움이 되었습니까?

해결책

그만큼 위키 더 많은 래퍼를 나열합니다.

다른 팁

다음 정보를 검색하는 동안 귀하의 질문을 발견했습니다. SQLite 그리고 자바.방금 내가 게시한 답변을 추가하겠다고 생각했습니다. 블로그.

나는 한동안 Java로 코딩을 해왔습니다.저는 SQLite에 대해서도 알고 있었지만 한번도 사용해 본 적이 없습니다… 글쎄요, 다른 것을 통해서도 사용해 본 적이 있습니다. 애플리케이션 하지만 내가 코딩한 앱에서는 절대 그렇지 않았습니다.그래서 이번 주 프로젝트에 필요했는데 사용이 너무 간단해요!

SQLite용 Java JDBC 드라이버를 찾았습니다.그냥 추가하세요 JAR 파일 클래스 경로로 이동하고 java.sql.*을 가져옵니다.

그의 테스트 앱은 데이터베이스 파일을 생성하고, 일부 SQL 명령을 보내 테이블을 생성하고, 일부 데이터를 테이블에 저장하고, 다시 읽어 콘솔에 표시합니다.그것은 테스트.db 프로젝트의 루트 디렉터리에 있는 파일입니다.이 예제를 다음과 같이 실행할 수 있습니다. java -cp .:sqlitejdbc-v056.jar Test.

package com.rungeek.sqlite;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class Test {
    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에 대해 구체적으로 문의하신 것으로 알고 있습니다. 하지만 아마도 HSQL 데이터베이스 Java에 더 적합할 것입니다.Java 자체로 작성되었으며 JVM에서 실행되고 인메모리 테이블 등을 지원합니다.이러한 모든 기능을 통해 프로토타입 제작 및 단위 테스트에 매우 유용합니다.

새로운 프로젝트가 있습니다 SQLJet 이는 SQLite의 순수한 Java 구현입니다.아직 모든 SQLite 기능을 지원하지는 않지만 SQLite 데이터베이스와 함께 작동하는 일부 Java 프로젝트에는 매우 좋은 옵션이 될 수 있습니다.

David Crawshaw 프로젝트(sqlitejdbc-v056.jar)는 오래된 것으로 보이며 마지막 업데이트 날짜는 2009년 6월 20일입니다. 출처는 여기

나는 추천할 것이다 제리얼즈 포크 Crawshaw sqlite 래퍼.sqlitejdbc-v056.jar을 Xerials sqlite-jdbc-3.7.2.jar 파일로 문제 없이 교체했습니다.

에서와 동일한 구문을 사용합니다. 버니의 대답 최신 sqlite 라이브러리를 사용하면 훨씬 더 빠릅니다.

Zentus의 SQLite JDBC와 다른 점은 무엇입니까?

원래 Zentus의 SQLite JDBC 드라이버 http://www.zentus.com/sqlitejdbc/ 자체 자체는 Java 언어의 SQLite 데이터베이스를 사용하는 훌륭한 유틸리티이며, SQLiteJDBC 라이브러리도 구현에 의존합니다.그러나 C/C ++ SQLITE 코드를 Java로 완전히 변환하는 Pure-Java 버전은 각 OS에 대해 컴파일 된 SQLITE BINARIE를 사용하는 기본 버전에 비해 상당히 느립니다 (WIN, MAC, LINUX).

기본 버전의 sqlite-jdbc를 사용하려면 사용자는 명령 줄 인수 (예 : -djava.library.path =)를 사용하여 기본 코드 (dll, jnilib, jndi c 프로그램 인 파일)로의 경로를 설정해야했습니다. (DLL, jnilib 등으로가는 경로), 또는 -dorg.sqlite.lib.path 등이 프로세스는 오류가 발생하기 쉽고 귀찮았으며 모든 사용자에게 이러한 변수를 설정하도록 지시했습니다.우리의 SQLiteJDBC 라이브러리는 이러한 불편함을 완전히 없애줍니다.

또 다른 차이점은 우리는이 라이브러리의 가장 인기있는 사용자 중 하나이기 때문에이 sqlitejdbc libray를 최신 버전의 sqlite 엔진에 최신 버전으로 유지한다는 것입니다.예를 들어, SQLITE JDBC는 UTGB (University of Tokyo Genome Browser) 툴킷의 핵심 구성 요소이며, 이는 개인화 된 게놈 브라우저를 생성하는 유틸리티입니다.

편집하다 :평소와 마찬가지로 무언가를 업데이트할 때 코드의 모호한 부분에 문제가 발생합니다(나에게도 발생했습니다).테스트 테스트 테스트 =)

Bernie 님의 게시물이 매우 도움이 되었습니다.투표할 수 없습니다(평판이 충분하지 않습니다 :( ).하지만 많은 도움이 되었습니다.다시 한번 말씀드리자면!

http://www.zentus.com/sqlitejdbc/

여기에서 최신 SQLite JDBC jar를 찾을 수 있습니다.클래스 경로에 항아리를 추가하기만 하면 완료됩니다!:) Bernie의 샘플 코드를 실행하여 모든 것이 괜찮은지 테스트할 수 있습니다.

http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html http://www.sqlite.org/lang.html

여기에서 SQLite의 SQL 구문에 대한 도움말을 찾을 수 있습니다.SQLite를 응원합니다 :)

코드를 컴파일하고 실행할 때 클래스 경로 옵션 값을 설정해야 합니다.다음과 같습니다:

javac -classpath .;sqlitejdbc-v056.jar Text.java

java -classpath .;sqlitejdbc-v056.jar Text

"." 그리고 Despate ";"(승리, Linux는 ":")입니다.

sqlitejdbc 코드는 git을 사용하여 다운로드할 수 있습니다. https://github.com/crawshaw/sqlitejdbc.

# git clone https://github.com/crawshaw/sqlitejdbc.git sqlitejdbc
...
# cd sqlitejdbc
# make

메모:Makefile에는 sqlite 라이브러리/deps를 다운로드하기 위한 컬 바이너리가 필요합니다.

예제 코드는 Tomcat에서 메모리 누수를 유발합니다(웹앱 배포를 취소한 후에도 클래스로더는 여전히 메모리에 남아 있음). outofmemory 결국.이를 해결하는 방법은 다음을 사용하는 것입니다. sqlite-jdbc-3.7.8.jar;스냅샷이므로 아직 Maven에는 표시되지 않습니다.

오식: java -cp .:sqlitejdbc-v056.jar Test

해야한다: java -cp .:sqlitejdbc-v056.jar; Test

".jar" 뒤에 있는 세미콜론을 주목하세요. 이것이 사람들에게 도움이 되기를 바랍니다. 많은 번거로움을 초래할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top