`
cheerwong
  • 浏览: 13091 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

基于ibatis类型处理接口TypeHandlerCallback解决oracle中文乱码

 
阅读更多

ibatis提供TypeHandlerCallback让编程人员进行一些特殊类型的处理,最近碰到ibatis+oracle中文乱码,由于找不到解决的办法,故用实现该接口进行类型转换:

public class EncodingHandler implements TypeHandlerCallback {

	/**
	 * ISO8859-1->GBK
	 */
	@Override
	public Object getResult(ResultGetter getter) throws SQLException {
		String str = null;
		try {
			if (null != getter.getString()) {
				str = new String(getter.getString().getBytes("ISO8859-1"), "GBK");
			}
		} catch (Exception e) {
			str = getter.getString();
		}
		return str;
	}

	/**
	 * GBK->ISO8859-1
	 */
	@Override
	public void setParameter(ParameterSetter setter, Object parameter) throws SQLException {
		String str = null;
		try {
			if (null != parameter) {
				str = new String(((String) parameter).getBytes("GBK"), "ISO8859-1");
			}
		} catch (Exception e) {
			str = (String) parameter;
		}
		setter.setString(str);
	}

	@Override
	public Object valueOf(String arg0) {
		return arg0;
	}
}

 

sqlmap的配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
 <settings useStatementNamespaces="true" enhancementEnabled="true" />
    <typeHandler callback="EncodingHandler" jdbcType="VARCHAR" javaType="java.lang.String" />

<sqlMap resource="XXX.xml"/>

</sqlMapConfig>

分享到:
评论

相关推荐

    使用iBatis的类型处理器TypeHandlerCallback

    `TypeHandlerCallback`是iBatis(或MyBatis)中的一个重要接口,用于处理Java类型与数据库类型之间的转换。在处理数据库操作时,数据的类型转换是必不可少的步骤,因为Java类型和数据库存储的数据类型往往不完全匹配...

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

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

    ibatis 读取oracle clob类型

    ibatis 读取oracle clob类型

    ibatis+oracle实例

    2. **事务管理**:Ibatis提供了对数据库事务的控制,可以配合Oracle的ACID特性处理复杂的事务场景。 3. **存储过程调用**:Ibatis可以通过`&lt;select&gt;`、`&lt;procedure&gt;`元素调用Oracle的存储过程,增强业务逻辑的封装...

    iBatis简单入门实例(以Oracle为例)

    iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快。如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,这是一个ibtis的增删改查...

    Ibatis.net+ oracle 简单事例

    添加对Oracle 的引用,如Oracle.DataAccess.Client,然后将Ibatis.net 的相关配置文件和Mapper XML文件加入到项目中。使用VS2008的调试工具,可以快速测试SQL语句和业务逻辑。 【示例应用】 "IbatisTet" 可能是一个...

    基于ibatis的分页

    总结来说,这个基于ibatis的分页项目提供了一套完整的解决方案,从数据库查询到前端展示,都已准备就绪。开发者只需理解并调用已有的组件,就能快速实现分页功能,无需从头编写大量代码。对于初学者或者希望提高开发...

    Ibatis调用Oracle存储过程返回自定义类型

    本文将深入探讨如何使用Ibatis框架来调用Oracle数据库中的存储过程,并实现返回自定义类型的处理方法。 #### Oracle自定义类型简介 Oracle支持用户自定义数据类型,这为复杂数据结构的应用提供了极大的便利。...

    ibatis学习总结,oracle , 敏捷开发,

    在IT行业中,Ibatis、Oracle数据库以及敏捷开发是三个关键领域的知识,对于任何软件开发者,尤其是后端工程师来说,理解并掌握这些技能至关重要。本文将深入探讨这三个主题,旨在为你提供一个全面的学习概览。 首先...

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    maven spring struts ibatis oracle框架整合

    "maven spring struts ibatis oracle框架整合"就是一个典型的例子,它涉及到四个关键的技术组件:Maven、Spring、Struts和iBatis,以及数据库管理系统Oracle。 **Maven**是Java项目管理工具,它负责管理项目的依赖...

    ibatis oracle clob

    标题 "ibatis oracle clob" 涉及到的是在Java开发中,使用iBATIS框架与Oracle数据库交互时处理CLOB(Character Large Object)类型数据的问题。CLOB是Oracle数据库用于存储大文本数据(如XML文档、长篇文章等)的...

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

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

    ibatisDemo.zip

    - **Oracle数据库**:Ibatis支持多种数据库,这里特别提到了Oracle,说明示例可能针对Oracle数据库设计,需要了解Oracle的相关知识,如表结构、数据类型等。 - **视频教程**:这部分内容可能是配合代码的讲解视频,...

    ibatis 自己学的一个ibatis项目(只是打通了Oracle) 非常适合入门

    自己写了一个Ibatis入门文件 JDK用的1.4 ibatis用的2.3.0 一定要注意版本问题,不然出现本本不兼容很费劲,我调了一上午,注意一定要用JDK1.4 ibatis2.3.0! 数据库自己建一张简单的表就行了,特别说明 只适合新手...

    Ibatis+Oracle(含对应数据库sql) 源码

    【标题】"Ibatis+Oracle(含对应数据库sql) 源码" 是一个学习和实践Ibatis与Oracle数据库结合使用的资源包。这个资源对于初学者来说尤其有帮助,因为它包含了一个实际项目的源代码和相应的SQL脚本,使得学习者能够...

    Spring MVC+ibatis+oracle框架整合

    Oracle支持多种数据类型、索引策略和存储优化机制,可以满足复杂的数据处理需求。在Spring MVC和iBatis的整合中,Oracle作为后端数据存储,通过JDBC驱动与应用进行交互。 **整合过程** 1. **配置Spring MVC**: 首先...

    ibatis调用oracle的函数,存储过程的方法

    Ibatis,一个轻量级的Java持久层框架,提供了与数据库交互的能力,包括调用这些Oracle的函数和存储过程。本篇文章将详细介绍如何在Ibatis中调用Oracle的函数和存储过程。 首先,理解基本概念: 1. **Oracle函数**...

    ibatis连接oracle所需的jar包

    ojdbc14.jar包含了Oracle JDBC Driver,允许Java代码通过JDBC API执行SQL语句、获取结果集、处理事务等。注意,这个版本的驱动适用于Java 1.4,如果使用更高版本的Java,可能需要更新到ojdbc6.jar或ojdbc8.jar等兼容...

    ibatis3应用实例(oracle数据库)

    《Ibatis3在Oracle数据库中的应用实践》 Ibatis3是一款优秀的Java持久层框架,它提供了灵活的SQL映射机制,使得开发者可以更好地控制数据库的交互。本篇将深入探讨Ibatis3在Oracle数据库环境下的具体应用实例,涵盖...

Global site tag (gtag.js) - Google Analytics