java mysql 插入不了中文显示为空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java mysql 插入不了中文显示为空相关的知识,希望对你有一定的参考价值。

我的java编码以及数据库的编码都为UTF-8

图片中 name是char格式 当我插入的时候

在数据库却显示不出来 不是NULL 这个问题怎么解决?
数据库新手 求指教
已经试过

显示不出来是因为你的中文那个字段根本没有插进去,应该是SQL有问题,insert into........+"values("+worker_id+",\'"+name+"\',"+...,这样试试,最好把SQL语句打印出来,再在mysql的命令行运行一下,如果正常,那就是其他的问题,如果在命令行不能正常运行,那就是你的SQL有问题,你的截图显示没有"我"这一列,说明插入的字段与数据库中不对应啊,当你在执行前,把SQL在命令行中试一试啊,希望可以帮到你追问

参考技术A 在数据库连接的配置里将url后面加上“?useUnicode=true&characterEncoding=UTF-8”试试。
如:JDBC_URL = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8。
还有你这种写法,name如果不是获取的参数,就应该加上单引号;如果是获取的参数,就应该用双引号隔开,写成……+","+name+","+……这样。追问

String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd+"&characterEncoding=utf-8";

你说的另一个方法也试过了 不行

追答

错了,是这样……+",‘"+name+"’,"+……,单引号忘了写上。还有字段选择为char的时候,也将字符集设为utf-8。还有,把生成的sql语句打印出来,也许是你的参数没传进去

本回答被提问者采纳
参考技术B insert into........+"values("+worker_id+","+name+","+.....应该就可以了吧追问

我试过了 显示这样

参考技术C insert into worker(worker_id,name,age,sex,dept_id,job_Id,phone)
value ("+ worke_id +“,' "+name+" ' "+",'男' "+dept_id+","+job_id+",”+phone+")"
参考技术D name为什么是蓝色的,变成,'"+name+"',试试看。看好了要有最外层的单引号追问

试过还是不行 自己不能插入数据库了 报错

追答

可以把报错内容给我看看吗

追问

谢谢 问题解决了

Java插入sql数据后,显示的中文不正确或乱码

问题描述:

最近在学用IDEA控制MySQL数据库,使用的是MyBatis框架;在插入中文时,显示不正确的中文或者乱码。

问题解决:

  • MySQL设置问题?

由于我不是MySQL的问题,所以跟着修改之后,在IDEA中插入数据之后,中文仍然没有正确显示。

该方法是在其他博主那边看到的,针对MySQL数据库自身数据库出现问题的情况,可以尝试更改。那么为了看看到底是不是MySQL的问题,先不要着急更改,可以先在MySQL终端插入数据看看能不能正确显示中文;可以正确显示中文的话,直接跳到第二个方法。

insert into t_user (username, password, phone, address) values ("tom","456","987","临海");
select * from t_user;

在终端打开MySQL,查看语言设置是否为utf-8:

show variables like 'character%';
图1 原语言设置图

可以看到并不全部为utf-8,所以操作设置为utf-8:

charset utf8;
图2 修改为utf8后的语言设置图
  • IDEA设置问题?

File→Settings...→Editor→File Encodings→Global Encoding、Properties Files;将这两个(即下图4所标的1和3)设置成UTF-8。

当使用配置文件+接口的方式,通过代理自动生成DAO时,图4的2也需要设置成UTF-8,且Path里面的接口,后面Encoding也需要改为UTF-8。

图3 步骤流程1
图4 步骤流程2

设置之后,再用IDEA插入数据,可以看到正确显示的中文,撒花~~~

图5 排错之后正确显示的8/9/10行

希望有所帮助,欢迎讨论,共同进步!

以上是关于java mysql 插入不了中文显示为空的主要内容,如果未能解决你的问题,请参考以下文章

Java连接mysql数据库并插入中文数据显示乱码

mysql插入表中的中文显示为问号(??)的解决方法

使用Java的GUI时,插入图片显示不了

使用Java的GUI时,插入图片显示不了

使用Java的GUI时,插入图片显示不了

Java插入sql数据后,显示的中文不正确或乱码