Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1681|回复: 0
打印 上一主题 下一主题

Mybatis中的TypeHandler

[复制链接]

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
跳转到指定楼层
楼主
发表于 2017-8-3 19:30:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 java 于 2017-8-3 19:32 编辑

无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成 Java 类型。Mybatis默认为我们实现了许多TypeHandler, 当我们没有配置指定TypeHandler时,Mybatis会根据参数或者返回结果的不同,默认为我们选择合适的TypeHandler处理。




TypeHandler是MyBatis config文件中可选的配置选项,其可以对实体属性类型和数据库列类型的转换过程进行干涉,在过程中添加某些可能需要的操作。
1、自定义的typeHandler类需要实现typeHandler接口并且实现接口方法;
2、配置文件添加<typeHandler>;
3、在映射文件中的参数和结果添加类型说明,javaType和jdbcType。




如 DATE MYsql字段 转为 JodaDateTime 的javatype

前者在数据库中直接 以可读时间显示 通过handle转为后者后 可直接在程序中使用
  1. <typeHandler javaType="DateTime" jdbcType="DATE"
  2.                      handler="com.example.mybatis.typehandle.JodaDateTime2DateTypeHandler"></typeHandler>
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-5-8 05:03 , Processed in 0.053347 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表