java drivermanager不加载mysql驱动程序

eoigrqb6  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(357)

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目录下的所有jdbcjar。
还尝试过:将jdbc驱动程序复制到webapps/myapp/webinf/lib,但没有帮助。

yks3o0rb

yks3o0rb1#

从一个简单的java应用程序运行sql与从诸如tomcat之类的jee服务器运行sql有很大的不同。。。至少半个jee服务器)。
不要使用 static 初始值设定项。相反,jee(java企业版)的做法有所不同,原因很多:
在tomcat中,您不需要“加载”驱动程序。把它放进去 TOMCAT_HOME/lib 重新启动tomcat。就这样。驱动程序已加载。在tomcat日志启动时查看它,您将看到它。tomcat(就像任何jee服务器一样)负责加载它。
然后,您需要做的是创建一个jdbc数据源。关于如何做到这一点,有很多例子。您可以通过修改conf/server.xml文件并重新启动tomcat来实现这一点。确保给数据源起一个你记得的名字;您将在下一步中使用它。再次在启动时查看tomcat的日志文件,您将看到正在注册/创建全新的数据源。
接下来,在jee代码中,使用在上一步中配置的名称从jndi目录检索数据源,并使用它创建 Connection . 同样,有很多关于如何做到这一点的例子。
最后,与 Connection 您可以运行所有需要的sql语句。这部分你已经很清楚了。像平常一样做。

相关问题