今天在学习jdbc时做了一个项目,项目主要实现的功能是通过jdbc连接数据库,进行添加和查询图书馆书籍。过程中遇到了添加中文到数据库的乱码问题,跟大家分享一下解决方案:
一.添加的时候是否有报错(没有的话直接绕道到二)
如果报错的话应该是如图所示:
这个错误是你数据库的编码问题引起的,可以通过bin>mysql.exe进入mysql后通过执行以下语句来查看目前数据库的编码:
show variables
like
'%char%';
查询结果如下:
可以看到我的编码大多数都是gbk编码,建议大家改成utf8编码或者gbk编码,具体原因可以自己百度以 下就知道了。修改方法如下(以下只说明操作最简单的一种方法):
先打开服务,将MySql服务关闭。再打开mysql安装的目录文件,在文件中打开bin,bin中找到MySQLInstanceConfig.exe文件,打开。打开后界面如下:
这是重新配置mysql的文件,点到默认编码方式这一步,选择最后一项,点开选择列表选择gbk编码方式,然后完成接下来的步骤,重新配置完成。
配置完成后重新打开mysql服务,运行mysql,输入show variables
like
'%char%'(就是开头的步骤),就可以看到与笔者一样的编码配置了;完成以后咱们就接着看第二步,第二步不做的话还是会出现乱码的。
二.配置url
在你jdbc中的url配置后面加上这段代码:?useUnicode=true&characterEncoding=GB18030
比如我本来url的配置是这样的:
String url = "jdbc:mysql://localhost:3306/db_database10";
加了代码后:
String url = "jdbc:mysql://localhost:3306/db_database10?useUnicode=true&characterEncoding=GB18030";
笔者解决了这两个问题后完美运行:
结果:
想要此程序的源代码的小伙伴的们可以在下面留下你们的邮箱,我会发给你们。