JDBC与java8.0以上连接时区错误解决方法

JDBC与java8.0以上连接时区错误解决方法

在我们连接数据库与java的时候,会出现一些我们意想不到的难以解决的问题,这是很正常的事,下面就介绍一个问题:

No suitable driver found for jdbc:mysql://localhost:3306/test:找不到适用于jdbc:mysql:// localhost:3306 / test的驱动程序

这个需要我们设置一下我们的连接的数据库的问题\

public static final String URL = “jdbc:mysql://localhost:3306/products”;
public static final String USER = “root”;
public static final String PASSWORD = “147852”;

public static void main(String[] args) throws Exception {
    //加载数据库驱动
    try {
        Class.forName("com.mysql.cj.jdbc.Driver");
        //获得数据库连接
        Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
        //操作数据库,实现增删改查
        Statement stam = conn.createStatement();
        ResultSet rs = stam.executeQuery("SELECT productName,productCount FROM productplan");
        //如果有数据,rs.next()返回true
        while (rs.next()) {
            System.out.println(rs.getString("productName") +
                    " 数量:" + rs.getInt("productCount")
            );
        }
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }

我们需要将点号改为冒号“:”在数据库名的后面加上“?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC” 这句话
大家可以看到这句话的意思,用户编码是否为真、字符编码设置为utf-8、时区为UTC
在这里插入图片描述

这样就不会再出现问题了,当然8.0以上版本可能还会有需要加上“.cj.”的问题在这里插入图片描述
以上就是此问题的解决方法了,

还有一个更简单的方法

就是在数据库的加上几句编码,直接修改设置时区,就不用再在代码中添加一长串的代码了,当然只是针对时区的问题,如果有另外两个错误还是得加上另外两个

方法

1、show variables like “%time_zone%”;
2、set global time_zone = ‘+8:00’;
3、set time_zone = ‘+8:00’;
4、flush privileges;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值