Windows 7에서 Sqlite를 실행하고 Eclipse에서 java 프로그램을 사용하여 입력 파일의 데이터를 sqlite 데이터베이스 테이블로로드하려고합니다. sqlite exe 파일, java sqlite JDBC jar 파일 및 데이터베이스 파일은 모두 동일한 디렉토리에 있습니다.SQLite java error "데이터베이스 파일을 열 수 없습니다"
나는이 문제에 답하는 것에 가깝지만 지금까지 해결되지 않은 것처럼 들리는 대부분의 스레드를 읽었습니다.
나는 누군가/모두가 폴더 (db 파일이있는 곳)에 대한 업데이트/변경 액세스 권한을 갖기 때문에 폴더 사용 권한을 변경했지만 여전히 기쁨은 없습니다. 데이터베이스 연결을 설정했지만 (아래 디스플레이 참조) 현재 멈춰 있고 아이디어가 부족합니다. 아무도 도와 줄 수 있습니까? 코드는 공용 클래스 데이터베이스 {
public void loadPersonData() {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = ConnectionConfig.getConnection();
preparedStatement = connection
.prepareStatement("INSERT INTO PERSON(PERSON_ID,LAST_NAME,FIRST_NAME,STREET,CITY) "
+ "VALUES(?,?,?,?,?)");
for (PersonData x : ReadPersonData.personList) {
preparedStatement.setInt(1, x.getPersonID());
preparedStatement.setString(2, x.getLastName());
preparedStatement.setString(3, x.getFirstName());
preparedStatement.setString(4, x.getStreet());
preparedStatement.setString(5, x.getCity());
preparedStatement.addBatch();
}
이 LINE (30)에게
입니다
라인 (30)에 실패 - >>>>> preparedStatement.executeBatch를();} catch (Exception e) {
e.printStackTrace();
현재 오류 메시지는 다음과 같습니다 : -
데이터베이스 연결 설정
은 java.sql.SQLException : 데이터베이스 파일을 열 수 없습니다
at org.sqlite.core.DB.throwex(DB.java:859)
at org.sqlite.core.DB.executeBatch(DB.java:760)
at org.sqlite.core.CorePreparedStatement.executeBatch(CorePreparedStatement.java:77)
at Database.loadPersonData(Database.java:30)
at MainApp.main(MainApp.java:16)
java.sql.SQLException의 : [SQLITE_ERROR] SQL 오류 또는 누락 된 데이터베이스 (연결이 닫혀 있음)
at org.sqlite.core.DB.newSQLException(DB.java:890)
at org.sqlite.core.CoreStatement.internalClose(CoreStatement.java:109)
at org.sqlite.jdbc3.JDBC3Statement.close(JDBC3Statement.java:35)
at Database.loadPersonData(Database.java:44)
at MainApp.main(MainApp.java:16)
ConnectionConfig 클래스의 내용은 무엇입니까? – Sanjeev
안녕하세요 Sanjeev, 공용 클래스 ConnectionConfig { \t public static Connection getConnection() { \t \t Connection connection = null; \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t 시도 { \t \t \t가 Class.forName ("org.sqlite.JDBC"); \t \t \t 연결 = DriverManager.getConnection ("jdbc : sqlite : C : \ Program Files (x86) \\ SQLite \\ SS200.db"); \t \t \t System.out.println ("데이터베이스 연결이 설정 됨"); \t \t \t \t} 캐치 (예외 E) {e.printStackTrace();} \t \t 복귀 연결; \t} } –
안녕하세요 Sanjeev, 위의 코드 (초보자 용)는 위의 코드 (서식에 대해 미안 해요!)가 connectionConfig 클래스에있는 SQLite 데이터베이스 연결을 만드는 작업이라고 말합니다. –