mybatis之TypeHandler学习记录

阅读: 评论:0

mybatis之TypeHandler学习记录

mybatis之TypeHandler学习记录

mybatis之TypeHandler学习记录

TypeHandler介绍

TypeHandler,中文名字类型转换器,可以实现Java类型与jdbc类型的转换。mybatis使用prepareStatement来进行参数设置的时候,需要通过typeHandler将传入的java参数设置成合适的jdbc类型参数,这个过程实际上是通过调用PrepareStatement不同的set方法实现的。
同时,mybatis也内置了一些类型转换器。

Java类型jdbc类型Mybatis
booleanbit、booleanBooleanTypeHandler
byteTINYINTByteTypeHandler
shortSMALLINTShortTypeHandler
StringCHAR、VARCHARStringTypeHandler
IntegerIntegerTypeHandler
longLongTypeHandler
FloatFloatTypeHandler
doubleDoubleTypeHandler

自定义类型转换器

除了上述的TypeHandler,Mybatis也可以自定义类型转换器。
自定义类型转换器需要执行以下操作:

  • 新建一个实现类,继承BaseTypeHandler类,BaseTypeHandler<T> 泛型是需要转换的Java类
  • 实现继承类的方法
  • sql映射文件中编写类型转换器的实现类的位置。
    下面写一个demo,实现Date类转换为jdbc的int。
    Java实现类:
batis.handler;import org.pe.BaseTypeHandler;
import org.pe.JdbcType;import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;public class DateTypeHandler extends BaseTypeHandler<Date> {//将java类型转换为数据库类型@Overridepublic void setNonNullParameter(PreparedStatement preparedStatement, int i, Date date, JdbcType jdbcType) throws SQLException {//获取毫秒数long time = Time();//设置为毫秒数preparedStatement.setLong(i,time);}//将数据库类型转换为java类型@Overridepublic Date getNullableResult(ResultSet resultSet, String s) throws SQLException {long birthday = Long(s);Date date = new Date(birthday);return date;}//将数据库类型转换为java类型@Overridepublic Date getNullableResult(ResultSet resultSet, int i) throws SQLException {long birthday = Long(i);Date date = new Date(birthday);return date;}//将数据库类型转换为java类型@Overridepublic Date getNullableResult(CallableStatement callableStatement, int i) throws SQLException {long birthday = Long(i);Date date = new Date(birthday);return date;}
}

xml文件:

<!--自定义类型处理器-->
<typeHandlers><typeHandler handler=&#batis.handler.DateTypeHandler"/>
</typeHandlers>

本文发布于:2024-02-01 07:25:11,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170674351134871.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:mybatis   TypeHandler
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23