来源:http://geeklondon.com/blog/comments/tipnulljdbc#comments
遇到此问题说明你使用的是Tomcat,并且你没有正确设置JNDI。
所以当你试图得到DataSource时,你得到了这样的错误提示:Cannot create JDBC driver of class '' for connect URL 'null'
Driver problems
首先你看下是否有别的错误信息。例如,如果你看到如下信息:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null', cause: java.sql.SQLException: No suitable driver
这时你看到的是一个简单的classpath问题,把驱动jar包放入Tomcat lib目录下。同时也要确定你正确调用了Class.forName()方法
另外要确定你的connection URL正确,驱动的加载依赖它,所以如果URL错一个字母,那么驱动就加载不了,即使MySql driver都放到了正确位置。
JNDI problems
如果不是上面的问题,那么解决有个简单的方法解决这个问题。你可能使用的是Tomcat5.5或Tomcat6.0,并且你使用了Tomcat5.0或4.x的方法配置了数据源。
你的配置方式可能像下面这样:
1: <Resource name="jdbc/MYDS" auth="Container" type="javax.sql.DataSource"/>
2: <ResourceParams name="jdbc/HCD">
3: <parameter>
4: <name>username</name>
5: <value>myuser</value>
6: </parameter>
7: <parameter>
8: <name>password</name>
9: <value>mypass</value>
10: </parameter>
11: <parameter>
12: <name>driverClassName</name>
13: <value>com.mysql.jdbc.Driver</value>
14: </parameter>
15: <parameter>
16: <name>url</name>
17: <value>jdbc:mysql://localhost/MYDB</value>
18: </parameter>
19: </ResourceParams>
20: </Context>
实际上它应该像这样:
1: <Resource
2: name="jdbc/MYDS"
3: auth="Container"
4: type="javax.sql.DataSource"
5: username="myuser"
6: password="mypass"
7: driverClassName="com.mysql.jdbc.Driver"
8: url="jdbc:mysql://localhost/MYDB"
9: />
不否认这样更容易阅读,还使解析更加容易。可惜这样使许多人在此遇到问题。因为连接数据源时必须根据JNDI才行,这使许多初学者在这里遇到困难。
实际上官网有说明的:Please note that JNDI resource configuration has changed somewhat between Tomcat 5.0.x and Tomcat 5.5.x,但是没有在
文档中说明,许多人在使用5.5或6.0时以为仍可以使用5.0的配置方法。
ps:09年的 从csdn移过来