解决JAVA给mySQL写数据,navicat中的数据显示问号

@解决JAVA给mySQL写数据,navicat中的数据显示问号

通过MyEclipse向mySQL插入数据,使用navicat查看数据,数据是问号

做项目,用MyEclipse向数据库写数据,利用navicat登陆mySQL数据表,发现数据是问号。在网上搜索各种方法,终于找到问题所在。

1、MyEclise写插入数据库的代码

java代码
上面的是JAVA代码,运行后,通过Navicat查看数据,存储的数据是问号,见下图所示:
数据库存储结果

2、 解决办法

1)认为是Java后台编码问题,给Java代码添加编码转换。

即在连接数据库url后面添加“?useUnicode=true&characterEncoding=utf-8”。运行代码,发现数据库的数据仍然是问号。
在这里插入图片描述

2)检查是不是数据库编码问题。

1、在数据库执行sql插入语句:INSERT INTO T_STUDENT(stu_num,stu_name,stu_sex) VALUES (‘0001’,‘周周’,‘男’)。发现插入的数据是正确的。
在这里插入图片描述
2、在数据库下面查询编码(具体参见https://blog.csdn.net/lsr40/article/details/78736855):
第一步:cmd(以管理员方式运行)-mysql-show variables like “%chara%”;查看下自己所使用的那个库的字符集都是什么.
character_set_client为客户端编码方式;
character_set_connection为建立连接使用的编码方式;
character_set_database为数据库的编码方式;
character_set_results是结果集的编码方式;
character_set_server为数据库服务器的编码方式。
第二步:设置字符集为utf8。在cmd里面设置set charcter_set_connecton=“utf8”,这种修改是临时修改,关闭命令窗口后再次登陆mySQL,需要重新设置,并且对于navicat,临时修改不起作用(session级别的修改,即换页面或平台不起作用);
第三步:修改my.ini.
有两种情况,一种是这个my.ini在mysql安装目录下,一种是没有这个文件,只有my-default.ini。第一种情况,将my.ini复制到别的盘(如果文件在 C盘),修改后在替换C盘文件;第二种,将my-default.ini复制到其他盘,命名为my.ini,修改完成后复制到my-default.ini所在的地方。两种情况修改的内容一样,见下图。
第四步:重启mySQL。找到服务——MySQL——重启。
第五步:cmd(以管理员方式运行)-mysql-show variables like “%chara%”;查看下字符集修改情况。下图可以看出都已经修改为utf8.
在这里插入图片描述
在这里插入图片描述
注意:查看mysql使用的配置文件my.ini位置,服务——mySQL(右键-属性)。

3)检查客户端问题:即Navcat编码。

第2)种情况还是没有解决问题,这时在Navcat中输入show variables like “%chara%”,所用字符仍是Latin。表示Navcat编码有问题。
解决办法:
在这里插入图片描述
解决办法:点击连接的数据库——右键——编辑连接——高级——选择编码为“自动”
在这里插入图片描述
再次查询,发现编码已经修改为utf8.
在这里插入图片描述
再次插入数据,发现问题解决了。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值