数据库不添加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回答
同学你好,同学说不添加serverTimezone的配置会报错,是会报出如下错误吗:
如果是如上问题,这是时区的问题,必须要加上serverTimezone的配置。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
好帮手慕小班
2020-06-25
同学你好,同学可以先登录mysql数据库,然后通过select version();查看自己数据库版本
如上所示数据库版本是8的版本,对应connector数据库的连接也要使用8的版本,比如:
如上所示,就是mysql8的版本以及连接。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
好帮手慕小班
2020-06-25
同学你好,同学使用的是mysql8的版本吧,因为mysql6.0以上版本会与系统的时差引起差异问题,所以推荐的解决办法就是在url中加入serverTimezone来解决时区问题。
如果同学是msql6以上的版本还是建议添加上这个配置。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题