Java DriverManager.getConnection返回null
为了从运行Tomcat6的JSP项目访问MySQL,我正在尝试使用一个Java类,该类在过去对我来说已经非常有用。问题是,这一行:Java DriverManager.getConnection返回null,java,mysql,jdbc,Java,Mysql,Jdbc,为了从运行Tomcat6的JSP项目访问MySQL,我正在尝试使用一个Java类,该类在过去对我来说已经非常有用。问题是,这一行: con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/“,”根“,”密码“); 给con一个null值 现在,我的问题是-什么会导致“getConnection”方法返回null 编辑:我现在也看到了臭名昭著的ClassNotFoundException:com.mysql.jdbc.Driver
con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/“,”根“,”密码“);
给con一个null值
现在,我的问题是-什么会导致“getConnection”方法返回null
编辑:我现在也看到了臭名昭著的ClassNotFoundException:com.mysql.jdbc.Driver。
我的构建路径中包含了连接器。那我为什么会犯这个错误呢?而且,这是否与getConnection返回null有关?在从DriverManager获取连接之前,需要初始化驱动程序
Class.forName("com.mysql.jdbc.Driver");
您的url不完整。
jdbc:mysql://localhost:3306
后面应该跟数据库名称
故障排除步骤:
connect = DriverManager.getConnection("jdbc:mysql://localhost/feedback?"
+ "user=sqluser&password=sqluserpw");
所以可能有“user=root&password=password”
此外,如果存在ClassNotFoundException,则最有可能需要一个jar文件
DriverManager API:
如果您使用的是
JDBC 3
,那么您需要像这样加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
如果您使用的是
JDBC4
,则不再需要手动加载JdbcDriver
然后将有效数据传递到getConnection
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/yourDbName", "root", "password");
最后,确保
mysql驱动程序jar
在类路径中。AFAIK没有任何东西可以导致它返回null
。你很可能会接受一个异常。在你的构建路径上有一些东西并不一定意味着它在运行时类路径上。(如果答案有问题,请说明原因谢谢)我没有否决,但你的链接与这个问题无关(如果是,你至少应该引用或总结相关部分)和DriverManager.getConnection
按规范从不返回null
。您可以通过查看DriverManager
代码来验证这一点。@MarkRotterVeel在我的回答中说,如果getConnection没有正确完成,它将返回null,因为很可能是连接错误,看起来他的字符串不合适,因为参数没有正确完成,但也可能是他没有jar文件,它与您提供给HIM的链接非常相似,但是DriverManager.getConnection()
永远不会返回null
。它要么返回一个连接
实例,要么抛出一个SQLException
。数据库名称不是必需的。如果要将连接与不同的数据库方案一起使用,可以省略名称并将其放入查询:“SELECT*FROM”
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/yourDbName", "root", "password");