2010-12-03 7 views
0
try { 
con = DriverManager.getConnection("jdbc:sqlite:db/Freepark.sqlite"); 
} catch (SQLException e) { 
// TODO Auto-generated catch block 
System.out.println("error al buscar la base de datos"); 
} 

SQL 데이터베이스에서 첫 번째 쿼리를 수행하려고하는데 연결하는 데 문제가 있습니다.이 URL은 확실히 URL입니다. 프로젝트 이름은 BaseTest입니다. 그리고 내부 프로젝트 폴더에 DB라는 서브 폴더가 있고 그 안에 Freepark.sqlite가 있습니다. 프로젝트를 실행하면 println 메시지가 나타나서 문제가 URL임을 알 수 있습니다. class.forName과 같은 것은 이미이 코드 샘플보다 위에 수행되었습니다.SQLite 데이터베이스에 연결할 수 없습니다.

+0

예외를 삼킬 정말 나쁜 습관 . 무슨 예외가 있습니까? e.printStackTrace()와 같은 것이 필요합니다. – Paul

답변

1

왜 해달라고하면 시도 중 하나처럼 \ 상대적인 경로 이름에 넣어 : DB \ Freepark.sqlite 또한

또는 것은 SQLite는 파일의 전체 경로를 넣어보십시오.

또한 문 같은 SQLite는의 드라이버를 사용하도록 설정하기 전에 포함됩니다.

Class.forName("SQLite.JDBCDriver").newInstance(); 

또는

Class.forName("org.sqlite.JDBC"); 
0

사용이 예

수입 모든 클래스를 *;

공용 클래스 테스트 {

공공 정적 무효 메인 (문자열 []에 인수) 예외를 throw {

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(); 

}

}

관련 문제