老师,帮我看看这个

老师,帮我看看这个

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
package com.ht.JDBC.DemoOne;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
 
import org.junit.Test;
 
public class JDBCTest {
    @Test
    public void test() {
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            //注册驱动,调用工具类
            Class.forName(JDBCUntil.driverClass);
            con = DriverManager.getConnection(JDBCUntil.url,JDBCUntil.root,JDBCUntil.password);
            stmt = con.createStatement();
            String insertSql = "insert test2(name,price,desp) values('一加手机',3600,'Oneplus')";
            int i = stmt.executeUpdate(insertSql);
            if(i>0) {
                String resultSet = "select * from test2";
                rs = stmt.executeQuery(resultSet);
                while(rs.next()) {
                    int id = rs.getInt("id");
                    String name = rs.getString("name");
                    float price = rs.getFloat("price");
                    String desp = rs.getString("desp");
                    System.out.println(id+"  "+name+"   "+price+"   "+desp);
                }
            }
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            JDBCUntil.release(con, stmt, rs);
        }
    }
}
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
package com.ht.JDBC.DemoOne;
 
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;
 
public class JDBCUntil {
    public static final String driverClass;
    public static final String url;
    public static final String root;
    public static final String password;
    static {
        //加载文件属性并解析
        Properties pro = new Properties();
        //如何获得文件输入流的属性
        //通常情况下使用类的加载器的方式进行获取
        InputStream iso = JDBCUntil.class.getClassLoader().getResourceAsStream("jdbc.properties");
        try {
            pro.load(iso);
        catch (IOException e) {
            e.printStackTrace();
        }
        driverClass =pro.getProperty("driverClass");// "com.mysql.cj.jdbc.Driver";//proper.getProperty("driverClass");
        url = pro.getProperty("url");//"jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8";//proper.getProperty("url");
        root = pro.getProperty("root");//"root";// proper.getProperty("root");
        password = pro.getProperty("password");//"harden1998";// proper.getProperty("password");
         
    }
    /**
     * 注册驱动的方法
     * @throws Exception 
     */
    public static void loadDriver() throws Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");
    }
    /**
     * 获得连接的方法
     * @throws Exception 
     */
    public static Connection getConnection(Connection con) throws Exception {
        loadDriver();//加载驱动↑方法
        con = DriverManager.getConnection(url,root,password);
        return con ;
    }
    /**
     * 资源的释放
     */
    public static void release(Connection con,Statement stmt) {
        if(con != null) {
            try {
                con.close();
            catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            con = null;
        }
        if(stmt != null) {
            try {
                stmt.close();
            catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            stmt = null ;
        }
    }
    public static void release(Connection con, Statement stmt,ResultSet rs ) {
        if(rs != null) {
            try {
                rs.close();
            catch (SQLException e) {
                e.printStackTrace();
            }
            rs = null;
        }
        if(con != null) {
            try {
                con.close();
            catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            con = null;
        }
        if(stmt != null) {
            try {
                stmt.close();
            catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            stmt = null ;
        }
    }
     
}

driverClass = com.mysql.cj.jdbc.Driver

url = jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8

root = root 

password = 1234

http://img1.sycdn.imooc.com//climg/5d9dcbee094848f816620823.jpghttp://img1.sycdn.imooc.com//climg/5d9dcbf3090b8e5716020424.jpg

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

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

4回答
好帮手慕柯南 2019-10-12 15:41:57

同学你好,

  1. 同学代码中的密码写的是1234吗?看同学cmd下面的密码应该不是这个。

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

  2. 如果正确,建议clean一下项目,测试一下

  3. 如果不可以,同学重新创建一个项目测试一下。

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

提问者 彤宝贝 2019-10-12 10:58:06

在cmd下数据库可以正常登陆啊

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

提问者 彤宝贝 2019-10-10 17:07:34

加上之后显示这样的错误,我看了用户名和密码都没有错啊

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

  • 同学你好。项目中使用的数据库驱动jar包的版本和实际下载的本地数据库版本一致吗?可以使用cmd的mysql -uroot -p登入一下看看是不是正常。看一下mysql服务是否正常启动呢~祝学习愉快~
    2019-10-10 18:01:02
  • 提问者 彤宝贝 回复 芝芝兰兰 #2
    是JUnit包吗,我的MySQL版本是8.0.17的,JUnit包是4.12的,这两者有关系吗 ?
    2019-10-11 10:49:57
  • 同学你好。在cmd中数据库是不是能正常启动呢?将cmd登录mysql后的窗口截图贴一下吧~祝学习愉快~
    2019-10-11 17:32:51
芝芝兰兰 2019-10-10 10:13:31

同学你好。报错信息是com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed

建议将url后添加 allowPublicKeyRetrieval=true 然后再试一下~

1
url = jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true

如果解答了同学的疑问,望采纳~

祝学习愉快~

  • 提问者 彤宝贝 #1
    老师,加上了之后显示这样的错误 java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)
    2019-10-10 17:06:41
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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