java操作数据库,查询表出现乱码。
1.分析出现问题原因
根据出现乱码‘?’,可以判断可能是插入的数据中含有中文而数据库编码方式不兼容中文导致的。
2.如何解决?
根据上面的判断,需要修改数据库的编码方式。
(1)找到安装mysql的目录,如下图所示情况
(2)创建myini配置文件,具体内容如下(注意myini文件不是放入到bin目录里面!!!)
[client]#客户端
default-character-set=utf8
port = 3306
[mysqld]#服务器
basedir=D:\environment\mysql\mysql-5.7.19\mysql-5.7.19- winx64\
datadir=D:\environment\mysql\mysql-5.7.19\mysql-5.7.19-winx64\data\
port=3306
skip-grant-tables
character_set_server=utf8
(3)配置完成后需要重新启动mysql服务(在管理员权限下执行命令行)
①关闭服务net stop mysql
②启动服务net start mysql
(4)登录mysql查询编码方式
通过如下命令行查询 show variables like 'character_set_%';
小结:修改mysql的编码方式:①找到mysql的安装目录下的bin目录②在此处创建一个配置文件(如果已经存在则直接修改内容),并修改编码格式 ④重启mysql服务即可成功设置编码格式