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,但没有帮助。
1条答案
按热度按时间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语句。这部分你已经很清楚了。像平常一样做。