报错,怎么回事

报错,怎么回事

http://img1.sycdn.imooc.com//climg/5da9bb060921d67f10600361.jpg跟老师代码一样的,为什么报这种错

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
好帮手慕珊 2019-10-19 18:22:34

同学,你好!我用你的代码尝试是没有问题的,同学确认一下properties文件存放的位置是否有问题。或者你下载老师的源码,在老师的源码里测试一下你的代码。祝学习愉快!

http://img1.sycdn.imooc.com//climg/5daae3b40912c67f02900361.jpg

提问者 qq_慕容1283338 2019-10-19 16:14:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package com.imooc.jdbcUtils;
 
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
 
/*
 * JDBC的工具类
 * @author hj
 */
public class JDBCUtils {
    private static final String driverClass;
    private static final String url;
    private static final String username;
    private static final String password;
     
    static {
        //加载属性文件并解析
        Properties props = new Properties();
        //通常情况下使用类的加载器的方式获取属性文件的输入流
        InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
        try {
            props.load(is);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         
         
        driverClass = props.getProperty("driverClass");
        url = props.getProperty("url");
        username = props.getProperty("username");
        password = props.getProperty("password");
    }
     
    /*
     * 注册驱动的方法 
     */
    public static void loadDriver() throws ClassNotFoundException {
        Class.forName(driverClass);
    }
     
    /*
     * 获得连接的方法:
     */
    public static Connection getConnection() throws Exception {
        loadDriver();
        Connection con = DriverManager.getConnection(url, username, password);
        System.out.println(username+"          "+password);
        return con;
    }
     
    /*
     * 资源释放
     */
    public static void release(Statement s,Connection con) {
        if(s != null) {
            try {
                s.close();
            catch (SQLException e) {
                e.printStackTrace();
            }
            s = null;
        }
        if(con != null) {
            try {
                con.close();
            catch (SQLException e) {
                e.printStackTrace();
            }
            con = null;
        }
    }
     
    public static void release(Statement s,Connection con,ResultSet rs) {
        if(s != null) {
            try {
                s.close();
            catch (SQLException e) {
                e.printStackTrace();
            }
            s = null;
        }
        if(rs != null) {
            try {
                rs.close();
            catch (SQLException e) {
                e.printStackTrace();
            }
            rs = null;
        }
        if(con != null) {
            try {
                con.close();
            catch (SQLException e) {
                e.printStackTrace();
            }
            con = null;
        }
    }
}

配置文件

1
2
3
4
driverClass=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbctest?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
username=root
password=1234  

我用下面这种方式代替调用工具类中的函数,就能运行成功:http://img1.sycdn.imooc.com//climg/5daac59f09bbce7a10360160.jpg

这是怎么回事啊,确信用户密码真的没有错!

提问者 qq_慕容1283338 2019-10-19 10:58:00

加上之后又报下面的错误了。。。。。。http://img1.sycdn.imooc.com//climg/5daa7bae09f57d9a11530311.jpg

  • 你好!检查一下数据库的密码是不是写错了。祝学习愉快!
    2019-10-19 14:25:17
  • 提问者 qq_慕容1283338 回复 好帮手慕珊 #2
    密码没有错啊
    2019-10-19 15:15:22
  • 提问者 qq_慕容1283338 回复 好帮手慕珊 #3
    我不用设置配置文件那种方式就能成功进入,但使用配置文件就要报这种错,代码都看了,没什么不一样的啊,用户密码也确认没有打错
    2019-10-19 16:05:14
好帮手慕珊 2019-10-19 10:26:56

你好!有可能和老师的数据库配置不大一样,出现这个问题后,尝试在数据库的url后加上?allowPublicKeyRetrieval=true,看一下是否能解决,如下所示:

http://img1.sycdn.imooc.com//climg/5daa742709e263ea05010054.jpg

如果之前已经有?和相关属性了,可以在末尾添加&allowPublicKeyRetrieval=true

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码