数据库不添加serverTimezone=Asia/Shanghai报错

来源:3-2 自由编程

wacky1

2020-06-24 22:50:07

rt,这是什么原因?我该怎么修改才能不用码上这句?

@Test
public void demo1(){
    //1.注册驱动
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
        Class.forName("com.mysql.cj.jdbc.Driver");
        try {
            conn = DriverManager.getConnection("jdbc:mysql:///zuoye1?serverTimezone=Asia/Shanghai","root","root");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //获取sql语句的对象:
        try {
            stmt = conn.createStatement();
            String sql = "insert goods(name,price,desp) values('香水','500.0','香奈儿')";
            int i =stmt.executeUpdate(sql);
            if(i>0){
                System.out.println("更新成功!");
                rs = stmt.executeQuery("select * from goods");
                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+"  ");
                }
            }else{
                System.out.println("更新失败!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }finally {
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        rs = null;
        if(stmt!=null){
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            stmt = null;
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            conn = null;
        }
    }
}


写回答

3回答

好帮手慕小班

2020-06-25

同学你好,同学说不添加serverTimezone的配置会报错,是会报出如下错误吗:

http://img.mukewang.com/climg/5ef4669c094450f106440148.jpg

如果是如上问题,这是时区的问题,必须要加上serverTimezone的配置。

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

0

好帮手慕小班

2020-06-25

同学你好,同学可以先登录mysql数据库,然后通过select version();查看自己数据库版本

http://img.mukewang.com/climg/5ef42b53095159f804060171.jpg

如上所示数据库版本是8的版本,对应connector数据库的连接也要使用8的版本,比如:

http://img.mukewang.com/climg/5ef42bc909c3a70d02930048.jpg

如上所示,就是mysql8的版本以及连接。

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

0
hacky1
h 我本地的数据库安装的是5.5.4
h020-06-25
共1条回复

好帮手慕小班

2020-06-25

同学你好,同学使用的是mysql8的版本吧,因为mysql6.0以上版本会与系统的时差引起差异问题,所以推荐的解决办法就是在url中加入serverTimezone来解决时区问题。

如果同学是msql6以上的版本还是建议添加上这个配置。

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

0
hacky1
h 老师你说的是connector那个jar包吗
h020-06-25
共1条回复

0 学习 · 8016 问题

查看课程