abel533 / MyBatis-Spring-Boot

Spring Boot集成MyBatis的基础项目
3.37k stars 1.59k forks source link

使用h2内存模式,中文乱码 #8

Open Ryan-Miao opened 8 years ago

Ryan-Miao commented 8 years ago

我采用您的例子,将数据库撤换成h2后,中文乱码。结果: [ { "id": 1, "page": 1, "rows": 10, "name": "鐭冲搴�", "state": "娌冲寳" }, { "id": 2, "page": 1, "rows": 10, "name": "閭兏", "state": "娌冲寳" } ]

使用mysql正常,我修改的地方有: MyBatisMapperScannerConfig: properties.setProperty("IDENTITY", "h2");

配置文件: url: "jdbc:h2:mem:test" username: "sa" password: "" driver-class-name: org.h2.Driver schema: database/import.sql

其中sql为: DROP TABLE IF EXISTS city; CREATE TABLE city( ID INT PRIMARY KEY, NAME VARCHAR(20), state VARCHAR(20) ); DROP TABLE IF EXISTScountry; CREATE TABLEcountry( Idint(11) NOT NULL AUTO_INCREMENT COMMENT '主键', countrynamevarchar(255) DEFAULT NULL COMMENT '名称', countrycodevarchar(255) DEFAULT NULL COMMENT '代码', PRIMARY KEY (Id`) );

INSERT INTO city VALUES ('1', '石家庄', '河北'); INSERT INTO city VALUES ('2', '邯郸', '河北');`

在项目运行过程中,我采用idea的控制台查询中文正常。

不知道为什么java查询出的却是乱码,debug发现在mapper.selectAll的时候出来就是乱码了。

abel533 commented 8 years ago

是不是都是UTF8

2016-06-28 23:12 GMT+08:00 chenxing notifications@github.com:

我采用您的例子,将数据库撤换成h2后,中文乱码。结果: [ { "id": 1, "page": 1, "rows": 10, "name": "鐭冲搴�", "state": "娌冲寳" }, { "id": 2, "page": 1, "rows": 10, "name": "閭兏", "state": "娌冲寳" } ]

使用mysql正常,我修改的地方有: MyBatisMapperScannerConfig: properties.setProperty("IDENTITY", "h2");

配置文件: url: "jdbc:h2:mem:test" username: "sa" password: "" driver-class-name: org.h2.Driver schema: database/import.sql

其中sql为: DROP TABLE IF EXISTS city; CREATE TABLE city( ID INT PRIMARY KEY, NAME VARCHAR(20), state VARCHAR(20) ); DROP TABLE IF EXISTScountry; CREATE TABLEcountry( Idint(11) NOT NULL AUTO_INCREMENT COMMENT '主键', countrynamevarchar(255) DEFAULT NULL COMMENT '名称', countrycodevarchar(255) DEFAULT NULL COMMENT '代码', PRIMARY KEY (Id`) );

INSERT INTO city VALUES ('1', '石家庄', '河北'); INSERT INTO city VALUES ('2', '邯郸', '河北');`

在项目运行过程中,我采用idea的控制台查询中文正常。

不知道为什么java查询出的却是乱码,debug发现在mapper.selectAll的时候出来就是乱码了。

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/abel533/MyBatis-Spring-Boot/issues/8, or mute the thread https://github.com/notifications/unsubscribe/ABtHljpKo1S_DAjrZaCtZKKWjICTxdv_ks5qQTnkgaJpZM4JANV_ .

Ryan-Miao commented 8 years ago

@abel533 乱码是因为没有指定执行sql脚本的编码,指定后正常。

但是,发现h2不兼容insert啊,可以selectAll, 但insert的时候出错。