0 0

还是ibatis的中文乱码问题10

jdk 1.6
eclipse 3.3
sqlserver2000
ibatis2.3
在执行数据插入时出现乱码。多方查找资料,仍无法解决;源码如下:
sqlMapConfig.xml


<sqlmapconfig>
<transactionmanager type="JDBC">
<datasource type="SIMPLE">
<property name="JDBC.Driver" value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
<property name="JDBC.ConnectionURL" value="jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=UserDB;SelectMethod=Cursor">
<property name="JDBC.Username" value="sa">
<property name="JDBC.Password" value="sa">
</datasource>
</transactionmanager>
<sqlmap resource="com/hanhl/map/User.xml"></sqlmap>
</sqlmapconfig>
User.xml:


<sqlmap namespace="User">
<select id="getuser"> <!----> <!----> </select>
<select id="getAlluser"> <!----> <!----> </select>
<insert id="insertuser" parameterclass="com.hanhl.obj.User">


</insert>
<delete id="delete user" parameterclass="int">


</delete>
</sqlmap>
User:
package com.hanhl.obj;

import java.io.Serializable;

@SuppressWarnings("serial")
public class User implements Serializable {
private int id;
private String name;
private int sex;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
}


TestClass:
package com.hanhl.unmi;

import java.io.Reader;
import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.List;

import com.hanhl.obj.User;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class MySqlMapConfig {

@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception{
//从配置文件中得到SqlMapClient对象
Reader reader = Resources.getResourceAsReader("com/hanhl/xml/salMapConfig.xml");
SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();

//创建用户数据
for(int i=0; i<10; i++){
User user = new User();
user.setName("我");
if(i%2==0){
user.setSex(0);
}else{
user.setSex(1);
}
sqlMapper.insert("insertuser", user);
}

//查询用户数据
List users = sqlMapper.queryForList("getAlluser");
for (Iterator iter = users.iterator(); iter.hasNext();) {
User user = (User) iter.next();
System.out.println(user.getId());
System.out.println(user.getName());
System.out.println(user.getSex());
}
// for(Iterator iter = users.iterator(); iter.hasNext();){
// User user = (User) iter.next();
// if(user.getSex()!=1||user.getSex()!=0){
// sqlMapper.delete(String.valueOf(user.getId()));
// }
// }

}


}
以上信息在执行后,不出错,但是数据库中name字段为“ ”空格 ,无法显示插入的“我”,请各位指点,初次接触ibatis请各位提供宝贵学习资料,在下不甚感激......

问题补充:
首先感谢各位的回答,我的这个程序是可以正常运行的,不会报错,而且数据也可插入到数据库,只是插入的数据如果为中文时,在数据库中看到的是乱码,比如“我” 插入后在数据库中为“ ”空格 ......
2008年8月13日 09:07

4个答案 按时间排序 按投票排序

0 0

采纳的答案

1, 把你的数据库编码改成UTF-8
2, 在你的JDBC.ConnectionURL后面加上charset属性: charset=UTF-8

2008年8月14日 10:48
0 0

<insert id="insertuser" parameterClass="com.hanhl.obj.User">
<!--insert into t_user values(#name#,#sex#)-->
<![CDATA[insert into t_user values(#name#,#sex#)]]>
</insert> 
这里最好写全sql语句, 如果列不匹配会出错.
<insert id="insertuser" parameterClass="com.hanhl.obj.User">
<![CDATA[insert into t_user(name, sex) values(#name#,#sex#)]]>
</insert> 

2008年8月13日 13:17
0 0

sql 语句是否正确.楼主仔细看一下.看看在数据库中能否正常执行.如果还是不行的话,楼主可以把程序发给我看一下.我帮你找找原因:

2008年8月13日 12:28
0 0

从控制台看看是否执行了insert的sql,再把sql语句copy到数据库里直接执行看看有没有问题.

2008年8月13日 12:19

相关推荐

    ibatis乱码解决方法(ibatis独立)

    本文将详细讨论如何解决Ibatis中的乱码问题,特别是涉及到GBK和ISO_8859_1编码格式时的解决方案。 首先,我们需要了解乱码产生的原因。乱码通常是因为字符编码不一致导致的。在Java和数据库之间进行数据交互时,...

    Spring+Struts+Ibatis做的增删改查含有中文乱码处理

    在这个项目中,我们看到的是一个基于Spring、Struts和Ibatis的整合应用,主要实现了图书管理系统的增删改查(CRUD)功能,并且特别关注了中文乱码的处理。下面我们将详细探讨这些知识点。 首先,Spring框架是一个...

    奇怪的struts2的中文乱码问题及解决.docx

    然而,开发过程中经常遇到的一个问题就是字符编码问题,尤其是中文乱码问题。本文将深入探讨一个关于Struts2在Internet Explorer(IE)浏览器中出现中文乱码的奇怪问题及其解决方案。 首先,中文乱码问题通常涉及到...

    ibatis in action 中文版7ibatis in action 中文版7

    4. **社区支持**:作为一个成熟的开源项目,ibatis拥有庞大的用户群体和活跃的社区支持,这对于解决使用过程中遇到的问题非常有帮助。 ### 三、ibatis的应用场景 - **数据访问层的抽象**:ibatis可以作为数据访问...

    mybatis乱码的解决方法

    在使用MyBatis框架进行数据操作时,可能会遇到字符编码问题,导致乱码现象。这里主要探讨的是关于MyBatis(以及它...总的来说,解决MyBatis乱码问题的关键在于确保数据传输的每个环节都使用一致且兼容中文的字符编码。

    spring2.5.5+struts2+ibatis2.3.4登录实例

    - 配置了一个名为`encodingFilter`的Filter,用于解决中文乱码问题,设置了编码为`UTF-8`。 3. **其他配置**: - 设置了会话超时时间为10分钟。 - 指定了默认首页为`index.jsp`。 ### `struts.xml`配置详解 `...

    CHMWriter v3.0

    CHMWriter V3.0较上个版本改进的...2)彻底解决了中文乱码问题. 生成的CHM文件,不会再出现目录项中文乱码问题了. 3)提供了exe可执行文件. 直接双击"CHMWriter.exe"即可运行软件,不用再敲命令行,运行"CHMWriter.jar"了.

    spring2.5.5+struts2+ibatis2.3.4

    - `CharacterEncodingFilter`:用于设置字符编码,避免中文乱码问题。 - **其他配置**: - `session-timeout`:设置 session 的超时时间。 - `welcome-file-list`:定义项目的默认欢迎页面。 #### 2.2 struts....

    WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4+Struts2.1.8

    - 在`web.xml`中配置`CharacterEncodingFilter`解决中文乱码问题。 - 配置Struts2的核心过滤器`StrutsPrepareAndExecuteFilter`,以便处理所有请求。 - 为了减少配置,创建`DynamicActionSupport.java`,这个类...

    数据库迁移及区别比较(Oracle,Sql Server,MySql).pdf

    - 防止中文乱码:可以通过修改MySQL配置文件或在命令行中设置字符集,确保数据库支持UTF-8编码。 - 数据类型兼容性:如SQL Server的bit类型在MySQL中需转换为tinyint(1)。 3. **SQL语句的修改**: - 项目中的SQL...

    spring面试题.doc

    - Struts处理中文乱码的方法:通常需要在Filter中设置字符编码。 - Struts中Action与Tag的区别:Action是业务逻辑处理,而Tag是视图展示辅助。 - Hibernate的乐观锁实现:通过版本字段或时间戳实现。 - ...

    数据库迁移及区别比较(Oracle,Sql Server,MySql).docx

    2. **数据导入与编码设置**:确保数据库编码正确,防止中文等多语言数据出现乱码。这可能需要修改数据库配置文件或使用SQL命令来设置字符集。例如,对于MySQL,可以设置`default-character-set`为`utf8`。 3. **...

    java基础知识点67条

    - **服务器到客户端**: `response.setCharacterEncoding("UTF-8")`用于设置服务器返回给客户端的数据的编码方式,同样是为了避免中文乱码问题。 #### 9. 表单控件样式调整 - 使用内联样式如`style="height:50px;...

    SSH和SSI等框架常用基础配置web.xml

    **解析**:这里定义了一个字符编码过滤器,主要用于解决中文乱码问题。`CharacterEncodingFilter`设置请求和响应的编码方式为`utf-8`。`&lt;url-pattern&gt;/*&lt;/url-pattern&gt;`表示该过滤器应用于所有请求路径。 #### 四、...

Global site tag (gtag.js) - Google Analytics