Java 尽管我向类路径(Eclipse)添加了jar文件,但为什么到SQLite的连接失败了?
这个问题困扰了我三天。在Google上找到了很多东西,但对我的问题毫无帮助:我无法建立到SQLite数据库的连接。到目前为止,我尝试的是:Java 尽管我向类路径(Eclipse)添加了jar文件,但为什么到SQLite的连接失败了?,java,eclipse,sqlite,jdbc,Java,Eclipse,Sqlite,Jdbc,这个问题困扰了我三天。在Google上找到了很多东西,但对我的问题毫无帮助:我无法建立到SQLite数据库的连接。到目前为止,我尝试的是: public class RegelfragenConnection { Connection con = null; public void connect() { try { Class.forName("org.sqlite.JDBC"); String url = "
public class RegelfragenConnection {
Connection con = null;
public void connect() {
try {
Class.forName("org.sqlite.JDBC");
String url = "jdbc:sqlite:C:/Webfreigabe/Regel.db";
con = DriverManager.getConnection(url);
System.out.println("connected");
} catch (SQLException | ClassNotFoundException e) {
System.out.println("not connected");
System.out.println(e.getMessage());
}
}
public void close() {
[...]
}
public List<Frage> getRegeltest(int anzahlFragen) {
[...]
}
}
当它尝试使用连接时,它出现在方法getRegeltest中。前两条语句是catch子句中的println
这个问题很奇怪我错过了什么?我为企业Java开发人员使用Eclipse IDE版本2018-12(4.10.0),
SQLite-jdbc-3.23.1,
TomcatV8.0服务器
感谢您的帮助正如问题注释中正确指出的那样,您必须通过
WEB-INF/lib
文件夹提供数据库驱动程序jar文件,该文件夹位于项目的WebContent
目录中
注意:您遇到了一个java.lang.ClassNotFoundException:org.sqlite.JDBC
,问题中发布了原始代码。这就引出了问题的核心。一般建议:不要用“简单消息”隐藏异常。始终在开发过程中打印堆栈跟踪
对于此更改,您必须通过管理Web/应用程序容器库(即Web应用程序的类路径)的Web库来引用sqlite jdbc-.jar
这样,您将在运行时加载驱动程序并调用
con = DriverManager.getConnection(url);
将成功地为“Regel.db”数据库文件建立一个工作的连接实例
希望它能帮助其他读者解决这个问题。您应该将sqlite-jdbc-x.y.jar
放在WebContent/WEB-INF/lib
文件夹中。也请替换System.out.println(e.getMessage())代码>带有e.printStackTrace()代码>重新运行并发布异常消息。@guleryuz它正在工作。答案是将jar放在lib文件夹中。非常感谢你。作为答案发布,您将获得声誉
con = DriverManager.getConnection(url);