数据库不添加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以上的版本还是建议添加上这个配置。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题