gpt4 book ai didi

mysql - Java DriverManager不加载Mysql驱动

转载 作者:行者123 更新时间:2023-11-28 23:15:16 25 4
gpt4 key购买 nike

Java DriverManager不加载Mysql驱动

DriverManager
static {
loadInitialDrivers();
println("JDBC DriverManager initialized");
}

Mysql jdbc驱动在Tomcat库下。

  tomcat/lib/mysql-jdbc.jar

在调试器中,在调用 DriverManager.getDriver(URL) 之前,断点是在方法 loadInitialDrivers() 中设置,但执行不会在那里停止。是静态方法,类加载的时候,调用的是静态方法吗?

已加载的驱动程序列表 (registeredDrivers) 为空。

更新

将ojdbc6.jar添加到tomcat/lib中,然后重启tomcat。 DriverManager 没有加载驱动程序。可能是什么问题?似乎 tomcat 忽略了 tomcat/lib 目录下的所有 JDBC jar。

也尝试过:将 jdbc 驱动程序复制到 webapps/myapp/WEB-INF/lib,但没有帮助。

最佳答案

从简单的 Java 应用程序运行 SQL 与从 JEE 服务器(例如 Tomcat)运行 SQL 有很大不同(好吧……至少是半个 JEE 服务器)。

不要使用static 初始值设定项。相反,JEE(Java 企业版)的做法有所不同,原因有很多:

  • 在 Tomcat 中,您不需要“加载”驱动程序。只需将它放在 TOMCAT_HOME/lib 中并重新启动 Tomcat。就是这样。驱动程序已经加载。在启动时查看 Tomcat 日志,您会看到它。 Tomcat(就像任何 JEE 服务器一样)负责加载它。

  • 然后,您需要做的是创建一个 JDBC 数据源。有很多关于如何做到这一点的例子。您可以通过修改 conf/server.xml 文件并重新启动 Tomcat 来完成此操作。确保给数据源起一个你记得的名字;您将在下一步中使用它。在启动时再次查看 Tomcat 的日志文件,您会看到正在注册/创建的全新数据源。

  • 接下来,在您的 JEE 代码中,使用您在上一步中配置的名称从 JNDI 目录中检索数据源,并使用它创建一个连接。同样,有很多关于如何执行此操作的示例。

  • 最后,使用 Connection,您可以运行所有您想要的 SQL 语句。这是您已经熟知的部分。像往常一样做。

关于mysql - Java DriverManager不加载Mysql驱动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50750789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com