mybatis 类型类型转换器


         这几天在做一个项目,想到ssh的架构这么的啰嗦,就想到用springmvc+spring+mybatis来架构。想着框架都差不多思想,就是用法不一样,就没特别去学这些东西,直接随便看了看资料,再网上弄了个已经搭建了的现成的环境来做,还不错。

       不过做总会遇到问题的,毕竟不熟悉。mybaits有个boollean类型的,要转成一个varchar的Y存在mysql中,在网上找了老半天,都没找到资料,有也是很杂,调理很乱,很无奈。突然想到mybatis有很多自带的typehandle,可以看源码来模仿者写一个,于是立即就下源码,看源码然后写了下面那个,经测试是可以用的,如果有什么不对的地方,欢迎指出

 

package com.lanton.handle;


import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.TypeHandler;

/**
 * 布尔转换器
 * @author xiaohua
 *
 */
public  class BooleanTypeHandler implements TypeHandler<Boolean> {

	/**
	 * 通过rs返回结果
	 */
	public Boolean getResult(ResultSet rs, String name) throws SQLException {
		 	String str = rs.getString(name);     
		       Boolean rt = Boolean.FALSE;     
		      if (str.equalsIgnoreCase("Y")){     
		             rt = Boolean.TRUE;     
		      }     
		         return rt;   
	}

/**
 * 通过CallableStatement 返回结果
 */

	public Boolean getResult(CallableStatement statement, int index)
			throws SQLException {
		String str=statement.getString(index);
		if ("Y".equalsIgnoreCase(str))
			return true;
		else
			return false;
	}

	/**
	 * 设置字段
	 */
	public void setParameter(PreparedStatement pstatment, int index, Boolean bool,
			JdbcType type) throws SQLException {
			if(bool){
				pstatment.setString(index, "Y");
			}else{
				pstatment.setString(index, "N");
			}
	}

/**
 * 通过rs返回是不是Y,是Y则返回true
 */

	public Boolean getResult(ResultSet rs, int index) throws SQLException {
		
		String str=rs.getString(index);
		if("Y".equalsIgnoreCase(str)){
			return true;
		}else{
			return false;
		}
	}

	

}


 

有什么不对欢迎指正,当然我也看到了系统有个自带的Boolean转换器,但是我不知道怎么用,可能中间有差错咯,反正是没用出来,自己的boolean是按招上面的转的

你可能感兴趣的:(mybatis 类型类型转换器)