Java Tomcat和JDBC连接-未找到适合JDBC:mysql的驱动程序
我有一个servlet和一个过滤器连接到它。在这个过滤器中,我想做一些数据库方面的事情,但我有一个众所周知的错误“没有找到适合jdbc:mysql的驱动程序”。我过去一直在使用jdbc,这些代码仍然有效。但是当我将连接线从它们复制到我的过滤器时,我得到了错误。我更改了行中的数据库名称 这是我的污点:Java Tomcat和JDBC连接-未找到适合JDBC:mysql的驱动程序,java,tomcat,jdbc,Java,Tomcat,Jdbc,我有一个servlet和一个过滤器连接到它。在这个过滤器中,我想做一些数据库方面的事情,但我有一个众所周知的错误“没有找到适合jdbc:mysql的驱动程序”。我过去一直在使用jdbc,这些代码仍然有效。但是当我将连接线从它们复制到我的过滤器时,我得到了错误。我更改了行中的数据库名称 这是我的污点: System.out.println("Filter 2 works"); try (Connection conn = DriverManager.getCo
System.out.println("Filter 2 works");
try (Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/filters?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", "root", "password");
Statement stat = conn.createStatement()) {
} catch (SQLException e) {
e.printStackTrace();
}
在“try”行中,我有一个错误。我尝试了不使用“useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC”的方式,但仍然不起作用。这是模块设置->库的屏幕。JDBC被添加到这里:
这是我在一起使用Tomcat和JDBC时的第一个项目。在尝试任何操作之前,我是否应该以某种方式连接它们?嘿,您忘记在getConnection行上方的
Class.forName(“com.mysql.jdbc.driver”)
中注册驱动程序。@Ashish我以前从未这样做过,我的代码很好。现在我有了上面带有Class.forName(“com.mysql.jdbc.Driver”)的try…catch块,现在它在Class.forName(“com.mysql.jdbc.Driver”)行中给出了相同的错误+ClassNotFoundException,这意味着类路径上没有mysql连接器/jdbc驱动程序。另外,在web应用程序中使用DriverManager
通常是个坏主意。为了获得更好的性能,请使用连接池(例如Tomcat中内置的连接池,或HikariCP之类的第三方库)。@Ashish-Class.forName()
is。mysql-connector-java-8.0.20.jar就是这样一个驱动程序(我相信它实际上是JDBC4.2)。现在您可能遇到的大多数驱动程序都是JDBC4.x。