JDBC常见错误及解决方案

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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包即可。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL druid Java
Java 执行 Postgresql Jdbc 类型异常时,复杂sql难定位的解决方案
Java 执行 Postgresql Jdbc 类型异常时,复杂sql难定位的解决方案
1250 0
Java 执行 Postgresql Jdbc 类型异常时,复杂sql难定位的解决方案
|
8天前
|
SQL Java 关系型数据库
MySQL之JDBC(二)
MySQL之JDBC(二)
37 0
|
8天前
|
关系型数据库 MySQL Java
MySQL之JDBC(一)
MySQL之JDBC
35 0
|
8天前
|
关系型数据库 MySQL Java
MySQL的主从复制 && SpringBoot整合Sharding-JDBC解决读写分离
MySQL的主从复制 && SpringBoot整合Sharding-JDBC解决读写分离
41 0
|
8天前
|
Java 关系型数据库 MySQL
JDBC实现往MySQL插入百万级数据
JDBC实现往MySQL插入百万级数据
|
8天前
|
SQL 关系型数据库 MySQL
Spring_jdbc数据连接池(mysql实现增、删、改、查)
Spring_jdbc数据连接池(mysql实现增、删、改、查)
23 0
|
8天前
|
SQL Java 关系型数据库
JDBC批量插入mysql数据
JDBC批量插入mysql数据
|
8天前
|
Java 关系型数据库 MySQL
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
|
8天前
|
JSON 前端开发 Java
管理系统总结(前端:Vue-cli, 后端Jdbc连接mysql数据库,项目部署tomcat里)
管理系统总结(前端:Vue-cli, 后端Jdbc连接mysql数据库,项目部署tomcat里)
|
8天前
|
Java 关系型数据库 MySQL
{MySQL}索引事务和JDBC
{MySQL}索引事务和JDBC
21 0