码迷,mamicode.com
首页 > 其他好文 > 详细

MyBatis 学习记录6 TypeHandler

时间:2018-10-16 19:57:14      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:返回   映射   不可   解析   session   com   初始   设置   比较   

主题

  因为对MyBatis在JDBC数据和Java对象之间数据转化比较感兴趣,所以就记录并学习一下TypeHandler.

 

使用场景

技术分享图片

如上图所示,观察下接口方法就能明白.TypeHandler主要用于JDBC数据与Java对象数据之间转化,比如更新数据库的时候可以设置java对象里的字段怎么映射到JDBC数据库支持的类型.或者查询数据的时候,返回的JDBC的数据怎么转化成Java对象中的属性.

这篇文章主要以一个select查询为例,学习下TypeHandler都被应用在了哪些阶段? 怎么被使用的.

 

 

初始化阶段

正如之前文章分享的那样.MyBatis在初始化build SqlSessionFactory的时候会解析一大堆东西,生成Configuration.内置的TypeHandler在这个阶段被初始化.

技术分享图片

如上图, new Configuration的时候会初始化TypeHandlerRegistry.

而这个Registry的构造方法就是注册各种内置的TypeHandler的地方.

技术分享图片

如上图所示, register方法用于向TypeHandlerRegistry的成员域(Map)里注册TypeHandler.

register方法被重载了N多次.但是可以归纳为大致几种作用.

在此之前先介绍下TypeHandlerRegistry的几个成员域.因为register方法与他们密不可分.

Map<JdbcType, TypeHandler<?>> JDBC_TYPE_HANDLER_MAP

TYPE_HANDLER_MAP

ALL_TYPE_HANDLERS_MAP

 

MyBatis 学习记录6 TypeHandler

标签:返回   映射   不可   解析   session   com   初始   设置   比较   

原文地址:https://www.cnblogs.com/abcwt112/p/9800129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!