警告: DbConnectionManager.getConnection() 获得数据库链接失败.

运行项目时出现以下错误
我确保我的mysql用户名和密码正确,为什么会出现以下错误?
求大神指教!!!

警告: DbConnectionManager.getConnection() 获得数据库链接失败.

链接类型:com.mysql.jdbc.Driver
链接位置:jdbc:mysql://localhost:3306/db_librarySys?user=root&password=123456

源码:
package com.core;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

public class ConnDB {
public Connection conn = null;
public Statement stmt = null;
public ResultSet rs = null;
private static String propFileName = "/com/connDB.properties"; //指定资源文件保存的位置
private static Properties prop = new Properties();
private static String dbClassName ="com.mysql.jdbc.Driver";
private static String dbUrl =
"jdbc:mysql://localhost:3306/db_librarySys?user=root&password=123456";

  public ConnDB(){
    try {
      InputStream in=getClass().getResourceAsStream(propFileName);
      prop.load(in);                                    //通过输入流对象加载Properties文件
      dbClassName = prop.getProperty("DB_CLASS_NAME");  //获取数据库驱动
      dbUrl = prop.getProperty("DB_URL",
                               "jdbc:mysql://localhost:3306/db_librarySys?user=root&password=123456");
    }
    catch (Exception e) {
      e.printStackTrace();      //输出异常信息
    }
  }

  public static Connection getConnection() {
    Connection conn = null;
    try {
      Class.forName(dbClassName).newInstance();
      conn = DriverManager.getConnection(dbUrl);
    }
    catch (Exception ee) {
      ee.printStackTrace();
    }
    if (conn == null) {
      System.err.println(
          "警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:" +
          dbClassName + "\r\n链接位置:" + dbUrl);
    }
    return conn;
  }

/*
 * 功能:执行查询语句
 */
public ResultSet executeQuery(String sql) {
    try {
        conn = getConnection();
        stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                ResultSet.CONCUR_READ_ONLY);
        rs = stmt.executeQuery(sql);
    } catch (SQLException ex) {
        System.err.println(ex.getMessage());
    }
    return rs;
}

/*
 * 功能:执行更新操作
 */
public int executeUpdate(String sql) {
    int result = 0;
    try {
        conn = getConnection();                 //调用getConnection()方法构造Connection对象的一个实例conn
        stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                ResultSet.CONCUR_READ_ONLY);
        result = stmt.executeUpdate(sql);       //执行更新操作
    } catch (SQLException ex) {
        result = 0;
    }
    return result;
}

/*
 * 功能:关闭数据库的连接
 */
public void close() {
    try {
        if (rs != null) {
            rs.close();
        }
        if (stmt != null) {
            stmt.close();
        }
        if (conn != null) {
            conn.close();
        }
    } catch (Exception e) {
        e.printStackTrace(System.err);
    }
}

}

图片说明

3个回答

解决啦!!是MySQL版本的问题,我原先电脑上是最新版本的8.几版本的,版本过高与项目某些jar不兼容,下载了5.几的MysQL完美兼容啦!!!

断点+debug 解千愁! 关键你的源码呢?

qq_16127313
爱码少年 数据库参数、数据库驱动没问题的话,你就是数据问题。
一年多之前 回复
weixin_41455500
pianzhi@ 源码没有问题,放到同学电脑上可以正常运行
一年多之前 回复
public static Connection getConnection() {
    Connection conn = null;
    try {
      Class.forName(dbClassName).newInstance();
      conn = DriverManager.getConnection(dbUrl);
    }
    catch (Exception ee) {
      ee.printStackTrace();
    }
    if (conn == null) {
      System.err.println(
          "警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:" +
          dbClassName + "\r\n链接位置:" + dbUrl);
    }
    return conn;
  }

这里丢错误,因为返回连接没有返回,返回的null

要么用户名密码不对
要么数据库没有启动,或者防火墙把3306端口挡住了
要么你的数据库驱动不对

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐