mybatis连接mysql,在插入中文时,乱码,急求
本帖最后由 hbzyaxiu520 于 2012-02-20 18:25:26 编辑 mybatis连接mysql,在插入中文时,乱码,急求
首先,mysql中的数据库和表都采用的是utf-8编码
同样的表结构用ibatis就没有问题,可是换了mybatis之后,插入数据库的总是乱码
经过,调试,当执行mybatis的insert方法之前,对象的属性值都还是中文(正常的)
表结构如下:
Create Table
CREATE TABLE `BG_OPERATE_LOGS` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水号',
`userId` varchar(100) DEFAULT NULL COMMENT '用户名',
`userDisplayName` varchar(200) DEFAULT NULL COMMENT '用户显示名',
`contentBefore` varchar(3000) DEFAULT NULL COMMENT '修改前的记录',
`contentAfter` varchar(3000) DEFAULT NULL COMMENT '修改后的记录',
`operation` varchar(5000) DEFAULT NULL COMMENT '执行的动作',
`logTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '日志记录日期',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=62189 DEFAULT CHARSET=utf8
插入的数据如下:
如:?UID??1001636??????????!
另外:logback.xml打印出来的运行期SQL:
Executing: INSERT INTO BG_OPERATE_LOGS( userId,userDisplayName,userIp, contentBefore,contentAfter,operation,action ) VALUES (?,?,?,?,?,?,? )
18:13:53.137 DEBUG java.sql.PreparedStatement 28 - ==> Parameters: demo(String), 测试用户(String), (String), WhiteListVo [id=0, uid=1001636](String), null, 将UID为【1001636】的玩家从白名单解除!(String), sgms:user:whiteListDelete(String)
求解决
[最优解释]
没用过mybatis,不过估计是mybatis的编码出了问题,看看mybatis是否有编码设置
[其他解释]
找到答案了,
1、mysql配置文件my.ini中的两个参数全部设置为utf8
character-set-server=utf8主要由这个问题引起的!
default-character-set=utf8
2、重新安装mysql,在设置mysql编码时,选择第三个选项卡,并选择编码为utf8