Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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 连接到数据库时出现问题_Java_Mysql_Database_Connection - Fatal编程技术网

Java 连接到数据库时出现问题

Java 连接到数据库时出现问题,java,mysql,database,connection,Java,Mysql,Database,Connection,我无法连接到数据库MySQL。我用Database编写了一个控制台项目,这里有一个类ConnectionManager。现在我开始写这个网站。我想要连接数据库,只需将我的工作类ConnectionManager复制到新的动态项目中即可。但是这个类返回NULL而不是connection。也许你知道问题出在哪里。 提前谢谢你! 添加了连接器。连接conn=ConnectionManager.getConnection()调用了NullPointer异常 使用:Connection conn=Conn

我无法连接到数据库MySQL。我用Database编写了一个控制台项目,这里有一个类
ConnectionManager
。现在我开始写这个网站。我想要连接数据库,只需将我的工作类
ConnectionManager
复制到新的动态项目中即可。但是这个类返回NULL而不是connection。也许你知道问题出在哪里。 提前谢谢你! 添加了连接器。连接conn=ConnectionManager.getConnection()调用了NullPointer异常


使用:
Connection conn=ConnectionManager.getConnection()

尝试创建构造函数并在其中添加代码。我正在做完全相同的事情和它的工作。像这样:-

    public Connection()  {
    // TODO Auto-generated constructor stub
    try {
        if (connection == null)
        {
            initializeConnection();
        }
       return connection;       
    } 
    catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
     catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
     }
}

可能不止一个原因

1-检查您的用户权限

GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’;

GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost';
2-检查您的jdbc url及其端口。确保3306端口可用于使用mysql

jdbc:mysql://localhost:3306/registration
3-检查您的jar文件

  • 下载.jar文件(mysql-connector-java-5.1.37-bin.jar)并将其移动到libs文件夹
  • 右键单击项目>属性>库>添加jar/文件夹在该文件夹中选择jar文件
测试你的连接

String dbUrl= "jdbc:mysql://localhost:3306/javabase";
String username = "root";
String password = "root";

try (Connection connection = DriverManager.getConnection(dbUrl, username, password)) {
    System.out.println("Connected to DB!");
} catch (SQLException e) {
    throw new IllegalStateException("Error: ", e);
}
4-检查您的用户密码。 如果您不确定是否更改密码

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');

您是否将堆栈跟踪打印到控制台?是的,我调试了它。和
conn=DriverManager.getConnection(jdbcUrl、用户、密码)
execute,然后转到
catch
可能是行conn=DriverManager.getConnection(jdbcUrl、用户、密码);这是一个例外。看,你的用户可能没有权限。尝试通过mysql控制台访问您的mysql服务器,从那里执行代码。
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');