TypeHandler 의 간단 한 인 스 턴 스

9910 단어 TypeHandler
다음으로 이동: http://ccchhhlll1988-163-com.iteye.com/blog/1420149
TypeHandler 는 MyBatis config 파일 에서 선택 할 수 있 는 설정 옵션 으로 실체 속성 유형 과 데이터베이스 열 형식의 변환 과정 에 간섭 할 수 있 으 며, 이 과정 에서 필요 한 동작 을 추가 할 수 있 습 니 다. 1. 사용자 정의 type: Handler 류 는 type: Handler 인 터 페 이 스 를 실현 하고 인터페이스 방법 을 실현 해 야 합 니 다. 2. 프로필 에 < typeHandler > 를 추가 합 니 다. 3. 맵 파일 에 있 는 인자 와 결과 에 유형 설명 을 추가 합 니 다. 자바 Type 과 jdbc Type. 간단 한 실례 는 다음 과 같다. 유형 제어 클래스 
 
package com.chl.mybatis.typehandler;

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 chl
 *      
 *   TypeHandler  
 *       :           ,   mapper.xml                。
 */
public class StringVarcharTypeHandler implements TypeHandler{

    @Override
    public Object getResult(ResultSet rs, String columnName) throws SQLException {
        // TODO Auto-generated method stub
        System.out.println("getResult(rs,columnName)");
        return rs.getString(columnName);
    }

    @Override
    public Object getResult(CallableStatement arg0, int arg1)
            throws SQLException {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void setParameter(PreparedStatement ps, int paraIndex, Object object,
            JdbcType jt) throws SQLException {
        // TODO Auto-generated method stub
        System.out.println("setParameter()");
        ps.setString(paraIndex, (String)object);
    }

}

 
프로필 중:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--        -->
    <properties resource="config.properties"></properties>
    <!--   vo -->
    <typeAliases>
        <typeAlias alias="User" type="com.mybatis.test.vo.User" />
    </typeAliases>
 <!--       --> <typeHandlers> <typeHandler javaType="String" jdbcType="VARCHAR" handler="com.chl.mybatis.typehandler.StringVarcharTypeHandler" /> </typeHandlers>     <!-- end define -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/mybatis/test/maps/UserMapper.xml" />
    </mappers>
</configuration>

이 제어 클래스 의 위 치 를 주의 하 십시오. 탭 의 순 서 는 대체로 다음 과 같 습 니 다.
"(properties,settings,typeAliases,typeHandlers,objectFactory,objectWrapperFactory,plugins,environments,mappers)".
비슷 한 오 류 를 보고 하면 라벨 위치 가 잘못 놓 여 있 기 때문이다.
맵 파일 에 형식 설명 추가:
 
    <insert id="insertUser2" parameterType="User">
        insert into user
        (username, password)
        values
        (#{username, javaType=String, jdbcType=VARCHAR},
        #{password, javaType=String, jdbcType=VARCHAR});
    </insert>
    <!--                 ,  javaType jdbcType      ,     TypeHandler      -->
    <resultMap id="userMap" type="User">
        <result property="username" column="username" javaType="String"    jdbcType="VARCHAR"></result>
        <result property="password" column="password" javaType="String" jdbcType="VARCHAR"></result>
    </resultMap>

좋은 웹페이지 즐겨찾기