JDBC更新数据库数据遇到的问题

JDBC连接本地数据库更新数据时报错

2021/7/6 16:23:40

初学JDBC连接数据库时,遇到几个问题,总结更新一下,以免初学者踩坑,更是为了一起交流学习!!!

废话不多,上代码…

这是一个通过JDBC更新本地数据库数据的简单测试代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/*
    通过JDBC连接数据库,实现更新数据
 */
public class JDBC_Rumen {
public static void main(String[] args) {

    Connection conn = null;
    Statement stmt = null;

    try {
        /*
        驱动管理对象,DriverManager
        注册驱动、获取数据库连接对象
        */
        //导入驱动jar包,注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //获取数据库连接对象
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1","root用户","本机MySQL密码");
        //定义sql
        String sql = "insert into student(sid,sname,sex,avgsco) values(2019321215,'wuzhe','n',88.5)";
        //获取执行sql语句对象
        stmt = conn.createStatement();
        //执行sql语句
        int n = stmt.executeUpdate(sql);
        //处理结果
        if (n > 0){
            System.out.println("执行成功!");
        }else{
            System.out.println("执行失败!");
        }

    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        if (stmt != null){
            try {
                stmt.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

}
}

本以为程序会执行成功,正常更新数据

But…
在这里插入图片描述

从报错信息中隐约看出是字符集的问题,经过搜索,应该是驱动jar包和本机mysql字符集不匹配,于是我又从网上下载了几个其他的驱动jar包,但是依旧没有解决问题。最后通过在url中指定字符集解决了问题。

修改代码

 //获取数据库连接对象
 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf8","root用户","本机MySQL密码");

再次运行便执行成功啦!
在这里插入图片描述
在这里插入图片描述

另外还可能出现的问题:

Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException

这是因为新版MySQL通过JDBC连接时需要添加时区.

解决方案:同样是在url中添加上时区:

?serverTimezone=UTC &&useSSL=false

问题就解决啦。
欢迎大家评论指正!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值