2011-02-08 2 views
1

저는 Python으로 만든 SQLite3 데이터베이스가 있습니다. 그리고 기본적으로 유니 코드로 데이터베이스를 씁니다.다른 언어로 된 SQLite 데이터베이스를 읽을 수 없습니다.

이제 SQLite JDBC를 사용하여 Java 애플릿에서 데이터베이스를 쿼리하려고합니다. 그리고 테이블이나 행 등을 찾을 수 없습니다. Java &/또는 ANSI에서 JDBC 쿼리라고 생각하기 때문입니다.

누구든지 Java에서 유니 코드 쿼리로 내 SQLite3 DB를 쿼리 할 수있는 방법을 알고 있습니까? 다음과 같은 뭔가가 작동하지 않습니다 (Java에서 유니 코드 SQL 쿼리를 실행하려고 시도합니다) :

파이썬에서 데이터베이스에 액세스하면 테이블을 인쇄 할 수 있습니다. 아무런 문제가 없습니다. &하지만 동일한 작업을 시도합니다. Java에서 쿼리 결과가 반환되지 않습니다. 인코딩 문제 나이 수입 sqlite3를에게

def blah(): 
    conn = sqlite3.connect("a.db") 
    cur = conn.cursor() 
    res = cur.execute("SELECT name FROM sqlite_master WHERE type='table'").fetchal() 
    print res 

ㅋ()는 위와 동일한 테이블을 반환해야 할 때

이 더 테이블을 반환 작동

다른 어떤 것을입니다

Class.forName("org.sqlite.JDBC"); 
Connection conn = DriverManager.getConnection("jdbc:sqlite:a.db"); 
Statement stat = conn.createStatement(); 
conn.setAutoCommit(false); 
ResultSet tables = stat.executeQuery("SELECT name FROM sqlite_master WHERE type='table'"); 
String b = ""; 

while (tables.next()) { b+= "table= " + tables.getString("name");  } 

답변

1

짐, 매우 이상합니다. 작동해야합니다. 콘솔에서 DB를 열려고 했습니까? 당신이 나를 호기심

뭔가 a.db sqlite3를 실행하여 열 수 있습니다, 당신은 자바 애플릿에서 DB를 열려고하는 것입니다. 사과에 필요한 권한을 부여하고 서명 했으므로 실제로 사과를 디스크에 쓸 수 있습니까?

+0

또 다른 관련 질문은 "Java 및 JDBC 만 사용하여 데이터베이스를 만들고 채울 수 있습니까?"입니다. –

+0

나는 그 이상한 점을 안다. 나는 Java & JDBC를 사용하여 SQLite3 db를 만들고 다시 만들었다. (읽을 수는 있지만, 파이썬 BTW와 같은 SQL 문을 사용한다.) 파이썬 스크립트는 새로운 데이터베이스를 읽을 수 있습니다. 파이썬에서 생성 된 SQLite3 db는 Java JDBC에서 읽을 수 없습니다. JDBC – Jim

+0

Jim, 콘솔에서 DB를 열 수 있었고 거기에 넣은 데이터가 실제로 있는지 확인할 수 있었습니까? – Augusto

0

피곤한 열기가 sqlite3 a.db이고 입력이 PRAGMA encoding;입니까? 기본적으로 UTF8을 사용해야합니다.

커맨드 라인에서 UTF8 sqlite 데이터베이스를 만들고 sqlite jdbc를 사용하여 해당 파일의 내용을 읽을 수 있습니다.

파이썬으로 만든 데이터베이스에 연결 하시겠습니까? 데이터베이스가 존재하지 않으면 sqlite는 데이터베이스를 생성하고 테이블을 가지지 않습니다. 이것은 아마 당신에게 일어나는 일입니다.

java와 python을 같은 디렉토리에서 실행하고 있습니까?

관련 문제