JY_csdn007 2016-09-01 13:06 采纳率: 50%
浏览 2776

关于jdbc的一个奇怪的问题

public class JdbcUtils {
    private static Properties config = new Properties();
    static {
        try {
            config.load(JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties"));
            Class.forName(config.getProperty("jdbc.driverClass"));
        } catch (Exception e) {
        }
    }
    public static Connection getConn() throws SQLException {
        return DriverManager.getConnection(config.getProperty("jdbc.url"), config.getProperty("jdbc.username"),
                config.getProperty("jdbc.password"));
    }
    public static void main(String[] args) throws SQLException {
        System.out.println(getConn());
    }
}

报了下面的错误:
Exception in thread "main" java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:695)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:663)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:653)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:115)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:1663)
at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:662)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:221)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at cn.njit.utils.JdbcUtils.getConn(JdbcUtils.java:20)
at cn.njit.utils.JdbcUtils.main(JdbcUtils.java:24)

但是如果在main方法里面直接打印DriverManager.getConnection("jdbc:mysql:///sx?serverTimezone=Asia/Shanghai&useSSL=false", "root", "123456");是没有问题的

  • 写回答

4条回答 默认 最新

  • 泰 戈 尔 博客专家认证 2016-09-01 13:37
    关注
     在main方法里面直接打印DriverManager.getConnection("jdbc:mysql:///sx?serverTimezone=Asia/Shanghai&useSSL=false", "root", "123456");是没有问题的
    

    这就说明你的root用户在localhost主机上访问异常,所以有可能是获取到的密码或其他字段有误!

    config.getProperty("jdbc.driverClass")

    确认一下此值是否为你的class所需

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大