我正在编写一个 JSP-Servlet 应用程序,我需要在其中写入和读取 sqlite 数据库。 数据库是临时数据库,我的一个 cron 作业将数据写入其中,我的 servlet-jsp 应用程序读取这些数据并偶尔更新它
现在我正在尝试使用以下代码访问数据库
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)
最佳答案
好的,我用 apache derby 解决了一个类似的需求,你可以使用这个:
String path = this.getServletContext().getRealPath("tmp/test.db");
Class.forName("org.sqlite.JDBC");
Connection connection = DriverManager.getConnection("jdbc:sqlite:"+path);
关于java - 如何从我的 servlet 类访问放在/tmp 文件夹中的 sqlite 数据库文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21028447/