读书人

Ibatis中文有关问题

发布时间: 2012-11-20 09:55:43 作者: rapoo

Ibatis中文问题
我使用Ibatis做数据库查询。
1. sql语句【select user from userInfo where username in $value$】
a. 其中$value$ -> ('john','tom') 时,结果是正确的
b. 如果$value$ -> ('张三','李四') 时,就查不出来了。
注:数据库中有张三,李四的记录

2. debug的时候ibatis里面生成的sql是正确的,不是乱码,但是结果就是0条,没有记录。
把生成的sql在oracle中运行是正确的。

各位xdjm帮忙看看有没有什么办法,可以解决这个问题。 1 楼 yananay 2007-06-19 怎么说呢,我想说的是,如果是UTF-8编码,就什么问题都没有。
2 楼 ddandyy 2007-06-19 你debug是在哪看到sql语句的
你能确认在你看到sql语句之前他对sql没有进行转码么
你能确认你看到的码和他运行的码是一样的么 3 楼 hhongq 2007-06-19 现在程序里面的编码是GBK的,我是用eclipse远程调试debug进去的,看到的sql是正确的 4 楼 ddandyy 2007-06-19 eclipse里面看到的 都是被转码过的
在eclipse里面可以设置查看的编码的

不明白你的“程序里面的编码”是指哪里

你应该是在sql的xml文件里指定 5 楼 hhongq 2007-06-19 程序里面值的是我的web应用中使用的编码是GBK的,包括取得请求参数等等 6 楼 wangdi 2007-06-19 都用utf-8,一切搞定…… 7 楼 hhongq 2007-06-19 ddandyy 写道eclipse里面看到的 都是被转码过的
在eclipse里面可以设置查看的编码的

不明白你的“程序里面的编码”是指哪里

你应该是在sql的xml文件里指定
我在xml中使用GBK和UTF-8都不行,得到的结果都是没有的 8 楼 宏基小键盘 2007-06-20 不是ibatis配置文件编码的问题,而是你web容器的问题,如tomcat 9 楼 hhongq 2007-06-20 容器会有什么问题?我在run.bat中设置了编码:
-Dapplication.codeset=GBK -Ddatabase.codeset=ISO-8859-1 10 楼 totobacoo 2007-06-21
确保你的程序、配置、数据库都使用同一字符集。

除了上面回复的之外,你可能还需要检查一下你mysql table 的 character set。 确保与应用中一致。 11 楼 dwangel 2007-06-21 hhongq 写道容器会有什么问题?我在run.bat中设置了编码:
-Dapplication.codeset=GBK -Ddatabase.codeset=ISO-8859-1
这两个明显不一致啊。 12 楼 zyp731 2007-06-21 在sqlplus中执行一下试试.

还有,从页面,到程序,再到数据库,最好都使用UTF-8的格式.不要使用GBK. 13 楼 sunbaoyu 2007-08-01 我猜测你查询不到结果的原因是因为字符集。
1)如果文字从页面输入,则字符编码与页面编码相同。
2)如果你在程序中直接编写,则字符编码与你保存的文件编码相同。

明确你的字符来源,然后确定是否你的字符来源的编码与数据库相符。 14 楼 maomaode 2007-09-17 我也碰到了同样的问题,

我用ibatis2.1.7
mysql-connector-java 5.0.5
mysql 版本 5.0.45
JDK 1.6

my.ini 已经是
[mysqld]
default-character-set=UTF8

ibatis 中的连接字符串 jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=UTF8

数据库创建的脚本:
create database mydb default charset utf8 COLLATE utf8_general_ci;

用ibatis 进行插入操作, 为什么表的数据,还是??乱码呢?


读书人网 >软件架构设计

热点推荐