JDBC常见错误及解决方案

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: JDBC常见错误及解决方案

最近很多同学在数据库编程这一块遇到了很多的问题,各种问题都有,但却苦于不知道怎么解决这些问题,以至于编程效率非常低。今天我就来总结一下在数据库编程时经常遇到的问题以及解决方案吧。

 首先我们先回顾一下用Java操作数据库的步骤:

(1)需要装载一个MySQL驱动Class.forName
("com.mysql.jdbc.Driver")

(2)3+1:

三个单词:Connection,Statement,ResultSet;一条sql语句

Connection用于建立与数据库的连接。格式
为:

Connection connection = Driver
Manager.getConnection(

jdbc:mysql:// + ip地址 + :3306/数据库地址,用名,用户密码)很多错误都是因为这里产生的。

(1)用户密码或者密码出错会产生如下异常,只需检查用户名或者密码是否正确即可。

最近很多同学在数据库编程这一块遇到了很多的问题,各种问题都有,但却苦于不知道怎么解决这些问题,以至于编程效率非常低。今天我就来总结一下在数据库编程时经常遇到的问题以及解决方案吧。

 首先我们先回顾一下用Java操作数据库的步骤:

(1)需要装载一个MySQL驱动Class.for
Name("com.mysql.jdbc.Driver")

(2)3+1:

三个单词:Connection,Statement,
ResultSet;一条sql语句

Connection用于建立与数据库的连接。格式
为:

Connection connection = DriverManager.getConnection(

jdbc:mysql:// + ip地址 + :3306/数据库地址,用名,用户密码)很多错误都是因为这里产生的。

(1)用户密码或者密码出错会产生如下异常,只需检查用户名或者密码是否正确即可。

(2)当产生这个异常时,检查自己的MySQL驱动加载字符串是否正确。

(3)出现这个异常时一般是因为数据库连接字符串写错导致的,检查数据库连接字符串,并将其按正确格式书写。

(4)执行insert语句的时候,值过长,提示的错误信息如下:此时需要查看数据库中列的长度。插入合适的长度。

  还有一个问题是许多同学在使用JDBC时出现的比较棘手的问题,那就是数据库中文乱码问题。插入中文数据时会出现“??”乱码。下面我来详细介绍一下他的解决方法。

首先查看你所建的数据库属性,看其字符集是否为UTF-8,若不是,将其改成UTF-8,有些同学只需改动这里就能解决乱码问题。

如果还不能,再去idea里面查看编码字符集是否为UTF-8,依次点击File---Settings----File Encodings。如图全部将其改为UTF-8。

 

如果做了如上操作还出现乱码,那么在数据库连接字符串后面加上characterEncoding=utf-8或者characterEncoding=gbk

用于规定其编码字符集。到这里数据库中文乱码问题就可以解决了。

 

还有的同学遇到了如下错误。

这应该是JDBC驱动包版本与JDK不匹配导致,更换JDBC驱动包即可解决。

例如,使用mysql-connector-java-6.0.6.jar包出现此错误,将其更换为

mysql-connector-java-5.1.16.jar包即可。

(2)当产生这个异常时,检查自己的MySQL驱动加载字符串是否正确。

(3)出现这个异常时一般是因为数据库连接字符串写错导致的,检查数据库连接字符串,并将其按正确格式书写。

(4)执行insert语句的时候,值过长,提示的错误信息如下:此时需要查看数据库中列的长度。插入合适的长度。

  还有一个问题是许多同学在使用JDBC时出现的比较棘手的问题,那就是数据库中文乱码问题。插入中文数据时会出现“??”乱码。下面我来详细介绍一下他的解决方法。

首先查看你所建的数据库属性,看其字符集是否为UTF-8,若不是,将其改成UTF-8,有些同学只需改动这里就能解决乱码问题。

如果还不能,再去idea里面查看编码字符集是否为UTF-8,依次点击File---Settings----File Encodings。如图全部将其改为UTF-8。

 

如果做了如上操作还出现乱码,那么在数据库连接字符串后面加上characterEncoding=utf-8或者characterEncoding=gbk

用于规定其编码字符集。到这里数据库中文乱码问题就可以解决了。

 

还有的同学遇到了如下错误。

这应该是JDBC驱动包版本与JDK不匹配导致,更换JDBC驱动包即可解决。

例如,使用mysql-connector-java-6.0.6.jar包出现此错误,将其更换为

mysql-connector-java-5.1.16.jar包即可。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL druid Java
Java 执行 Postgresql Jdbc 类型异常时,复杂sql难定位的解决方案
Java 执行 Postgresql Jdbc 类型异常时,复杂sql难定位的解决方案
1387 0
Java 执行 Postgresql Jdbc 类型异常时,复杂sql难定位的解决方案
|
1月前
|
Java 关系型数据库 MySQL
mysql5.7 jdbc驱动
遵循上述步骤,即可在Java项目中高效地集成MySQL 5.7 JDBC驱动,实现数据库的访问与管理。
124 1
|
6月前
|
Java 关系型数据库 数据库连接
实时计算 Flink版操作报错之在使用JDBC连接MySQL数据库时遇到报错,识别不到jdbc了,怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
85 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
37 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
46 0
|
3月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
55 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
3月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
125 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
6月前
|
Java 关系型数据库 MySQL
JDBC实现往MySQL插入百万级数据
JDBC实现往MySQL插入百万级数据
|
3月前
|
前端开发 关系型数据库 MySQL
com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的区别
这篇文章讨论了`com.mysql.jdbc.Driver`和`com.mysql.cj.jdbc.Driver`两个MySQL驱动类的区别,指出`com.mysql.jdbc.Driver`适用于MySQL 5的`mysql-connector-java`版本,而`com.mysql.cj.jdbc.Driver`适用于MySQL 6及以上版本的`mysql-connector-java`。文章还提到了在实际使用中如何根据MySQL版本选择合适的驱动类。
com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的区别