`

ibatis处理字符串的编码

阅读更多

<typeHandler javaType="java.lang.String" callback="YourStringTypeHandlerClass"/>

 

 

 

import java.io.UnsupportedEncodingException;

import java.sql.SQLException;

import com.ibatis.sqlmap.client.extensions.ParameterSetter;
import com.ibatis.sqlmap.client.extensions.ResultGetter;
import com.ibatis.sqlmap.client.extensions.TypeHandlerCallback;

public class YourStringTypeHandlerClass implements TypeHandlerCallback {
 public Object getResult(ResultGetter getter) throws SQLException {
  String temp = "";
  try {
   temp = getter.getString() == null ? "" : new String(getter
     .getString().getBytes("UTF-8"), "GBK");
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  }
  return temp;
 }

 public void setParameter(ParameterSetter setter, Object value)
   throws SQLException {
  String str = (String) value;
  String temp = "";
  try {
   temp = str == null ? "" : new String(str.getBytes("GBK"), "GBK");
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  }
  setter.setString(temp);
 }

 public Object valueOf(String value) {
  return value;
 }
}

分享到:
评论

相关推荐

    ibatis sql语句对条件中特殊字符% # 处理

    通过对ibatis框架下SQL语句中特殊字符处理方法的详细分析,我们可以看到,合理地使用字符串转义处理结合动态SQL标签,可以有效地解决特殊字符带来的问题。这样不仅可以保证查询的准确性,还可以提高代码的健壮性和...

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

    - 如果在动态SQL中涉及到字符串拼接,务必确保字符串已经是正确的编码格式。例如,如果数据库使用GBK编码,那么拼接的字符串也应转为GBK。 5. **MyBatis拦截器处理**: - 可以自定义MyBatis拦截器,对输入参数...

    ibatis自定义数据类型在不支持中文的数据库存储汉字

    // 在这里,我们将中文字符串编码为Base64 String encodedStr = Base64.getEncoder().encodeToString(parameter.getBytes("UTF-8")); ps.setString(i, encodedStr); } @Override public String getResult...

    IBatis.NET开发文档

    - 数据源配置:讲解如何配置数据连接字符串,连接池等。 - CRUD操作:详细解释如何使用iBATIS执行增删改查操作。 - 映射实体类:介绍如何将数据库表映射到.NET中的类,以及如何使用ResultMap进行复杂对象的映射。...

    最稳定Ibatis包 ibatis-2.3.0.677.rar

    Ibatis的动态SQL功能是其一大亮点,允许在XML映射文件中编写条件语句,使得SQL语句可以根据传入参数动态生成,避免了大量硬编码的SQL字符串,提高了代码的可复用性和可读性。此外,Ibatis还支持结果映射,可以自动将...

    ibatis经验

    Ibatis提供了多种方式,如#{}(预编译参数)、${}(字符串替换)等,根据不同的需求选择合适的映射方式。 ## 7. 结果映射 结果映射将查询结果映射到Java对象。Ibatis支持自动映射和自定义映射,自动映射会尝试将...

    IBatis.Net for .net framework4.0

    - `providers.config`: 这个文件可能包含了IBatis.Net使用的数据库提供者配置,定义了与不同数据库连接的相关信息,如连接字符串、数据提供者类型等。 - `Castle.Core.dll`: Castle.Core是Castle项目的组件,提供了...

    ibatis.net Demo

    `dao.config`文件是`ibatis.net`的另一种配置方式,它可能包含了与`SqlMapConfig.xml`相似的信息,如数据库连接字符串、事务管理器等。通过这种方式,开发者可以更加灵活地组织和管理配置信息。 4. **LoginTest...

    Struts2+Spring+Ibatis环境配置.doc

    2. `commons-lang.jar`:提供常用操作API,如字符串处理和XML解析。 3. `commons-logging.jar`:抽象的日志接口,允许开发者选择自己喜欢的日志实现。 4. `freemarker-2.3.8.jar`:用于生成动态HTML页面的模板引擎。...

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

    5. Ibatis的SQL映射文件中,如果直接写SQL,确保SQL语句中的字符串也使用UTF-8编码。 以上就是关于“Spring+Struts+Ibatis”框架整合以及中文乱码处理的基本知识点。通过这样的整合,我们可以构建出一个功能完备且...

    Ibatis三层框架软件.rar

    Ibatis支持动态SQL,这使得开发者能够根据条件灵活地构建SQL语句,避免了大量硬编码的字符串拼接。此外,Ibatis还提供了结果映射功能,可以自动将数据库查询结果转化为Java对象,简化了数据处理。 总的来说,Ibatis...

    ibatis.net all source code dll

    在这个文件中,你可以指定数据库连接字符串、事务管理器等关键信息。 2. **SqlMap接口**:每个SqlMap接口代表一个数据库表或视图,它包含了各种数据库操作方法(如Select、Insert、Update、Delete)。开发者可以...

    iBatis详细使用手册(.net版)-26页.pdf

    在开始使用iBatis之前,你需要配置运行环境,这通常涉及到数据库连接字符串、日志处理框架的集成等。日志处理对于排查问题和监控系统性能至关重要,iBatis支持多种日志实现,如Log4Net或NLog,你可以根据项目需求...

    IbatisDemo03

    这些配置文件通常以`.config`或`.xml`为扩展名,包含数据库连接字符串、事务管理设置等。在本示例中,你需要查找并分析这些配置文件,了解它们如何定义数据库连接和SQL语句。 2. **SQL映射文件**:这是IbatisNet的...

    iBATIS-SqlMaps-2_cn.doc

    1. `&lt;properties&gt;`元素允许开发者定义外部属性文件,用于存储敏感信息,如数据库连接字符串,这样可以避免硬编码在代码中。这提高了安全性并便于管理。 2. `&lt;setting&gt;`元素用于设置iBATIS框架的全局配置,例如缓存...

    mybatis乱码的解决方法

    2. **SQL语句的编码**:在编写XML映射文件或者动态SQL时,如果直接在字符串中写入中文,且IDE或编辑器的编码与MyBatis运行环境的编码不一致,也可能导致乱码。 3. **结果集映射**:在处理查询结果时,如果实体类中...

    Struts2+Spring+Ibatis环境配置

    - `commons-lang.jar`:提供了一系列对Java标准库的扩展方法,例如字符串处理、反射操作等。 - `commons-logging.jar`:为日志记录提供了一个简单的抽象层。 - `freemarker-2.3.8.jar`:用于支持FreeMarker模板...

    ibatis开发指南(中文版)

    - **元素**:用于设置SQL Map的全局属性,如数据库连接字符串、驱动名等。 - **元素**:配置SQL Map的一些运行时选项,例如缓存策略、事务管理方式等。 - **元素**:定义类型别名,简化Java类型的引用。 - **元素**...

    通过ibatis解决sql注入问题

    通常情况下,开发人员会使用字符串拼接的方式将参数传递给SQL语句,这样容易导致SQL注入问题。例如,以下代码: ```sql String sql = "SELECT * FROM t_user WHERE name = '" + name + "'"; ``` 如果name的值为“'...

    JAVA安全编码手册.pdf

    例如,在JDBC示例中,用户输入的参数被直接拼接到查询字符串中,如果用户输入的数据被精心构造,就有可能导致SQL注入攻击的发生。 为了防范这类安全风险,文档详细介绍了两种主要的解决方案:使用参数化查询和...

Global site tag (gtag.js) - Google Analytics