Sqlite DB 파일에 액세스하는 방법 Servlet 클래스에서 / tmp 폴더에 배치 된가요?

StackOverflow https://stackoverflow.com//questions/21028447

문제

나는 SQLite DB에서 쓸 필요가있는 JSP-Servlet 애플리케이션을 작성하고 있습니다. DB는 CRON 작업 중 하나가 데이터를 쓰고 My Servlet-JSP App 중 하나 가이 데이터를 읽고 때로는이를 업데이트합니다.

이제 다음 코드를 사용하여 DB에 액세스하려고합니다

Class.forName("org.sqlite.JDBC");
Connection connection = DriverManager.getConnection("jdbc:sqlite:/tmp/test.db");
.

위의 선에 다음 오류가 발생합니다

java.lang.UnsatisfiedLinkError: org.sqlite.NativeDB._open(Ljava/lang/String;I)V
    org.sqlite.NativeDB._open(Native Method)
    org.sqlite.DB.open(DB.java:157)
    org.sqlite.Conn.open(Conn.java:170)
    org.sqlite.Conn.<init>(Conn.java:87)
    org.sqlite.JDBC.createConnection(JDBC.java:113)
    org.sqlite.JDBC.connect(JDBC.java:87)
    java.sql.DriverManager.getConnection(DriverManager.java:571)
    java.sql.DriverManager.getConnection(DriverManager.java:233)
    com.cricket.qa.web.Tickets.doGet(Tickets.java:36)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    amazon.actiontrace.generation.servlet.StorageBindingFilter.doFilter(StorageBindingFilter.java:36)
    com.amazon.spnego.http.InitiateAction.run(HttpAuthFilter.java:215)
    java.security.AccessController.doPrivileged(Native Method)
    javax.security.auth.Subject.doAs(Subject.java:415)
    com.amazon.spnego.http.HttpAuthFilter.executeFilterWithCreds(HttpAuthFilter.java:173)
    com.amazon.spnego.http.HttpAuthFilter.doFilter(HttpAuthFilter.java:74)
    com.amazon.build.brazil.filters.FQDNFilter.doFilter(FQDNFilter.java:170)
.

도움이 되었습니까?

해결책

OK Apache Derby와 비슷한 요구 사항을 해결했습니다.

String path = this.getServletContext().getRealPath("tmp/test.db");
Class.forName("org.sqlite.JDBC");
Connection connection = DriverManager.getConnection("jdbc:sqlite:"+path);
.

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