解决中文存到数据库报错问题

springframework.jdbc.UncategorizedSQLException:

1,创建数据库时没有指定编码问题

先查看数据库的系统编码

我的已经设置好了编码,但是一旦重启就又要重新设置编码了

 设置编码命令如下:set character_set_client=utf8;

2,.连接数据库的时候数据编码设置错误  

3,创建数据表时数据编码设置错误

 

甚是纠结,我原本以为应该是以下问题之一:

(1).创建数据库的时候数据编码设置错误

(2).连接数据库的时候数据编码设置错误

对于(1),我删除来原来的数据库,重新创建一个新的数据库在设置编码时,我的设置如下:

character set:utf8 -- UTF-8 Unicode

collation:utf8_general_ci

发现这样设置之后,不能解决这个问题。

对于(2),我将连接语句写为:

"jdbc:mysql://" + ip + ":3306/users?useUnicode=true&characterEncoding=utf8"

但问题仍然没有解决。

又仔细观察我写的程序,发现在程序中有向数据库中创建表的操作,语句如下:

"create table  friendsList (qq varchar(7) primary key,remark varchar(20),groupName varchar(20)) ;"

这样,问题变得明朗了,原来创建每张表的时候都必须设置数据编码方式,改后的语句如下:

 "create table  friendsList (qq varchar(7) primary key,remark varchar(20),groupName varchar(20)) charset utf8 collate utf8_general_ci;"

 

总结一下,引起本文章标题这样的问题的原因有以下几个:

 

(1).创建数据库的时候数据编码设置错误

(2).连接数据库的时候数据编码设置错误

(3).创建表的时候数据编码设置错误

posted @   吖水的程序路  阅读(254)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示