Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DriverManager.getConnection返回null_Java_Mysql_Jdbc - Fatal编程技术网

Java DriverManager.getConnection返回null

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

为了从运行Tomcat6的JSP项目访问MySQL,我正在尝试使用一个Java类,该类在过去对我来说已经非常有用。问题是,这一行:

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
后面应该跟数据库名称

故障排除步骤:

  • 检查端口
  • 检查数据库服务器是否已打开
  • 根据这篇文章(有一个很好的例子)

    如果getConnection抛出异常并在代码中被捕获,“con”将为null

    比如:

    你需要做什么

       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");