TypeHandler类型转换

这是一个学习使用TypeHandler的demo

git下载链接: https://gitee.com/ding-ding-car-of-makabaka/mybatis-typehandler.git

下面对项目文件目录下的一些文件的说明:

以下文件都是idea新建项目生成的文件,部分文件我并没有上传git仓库,可能大家下载的时候并没有

  • .gitignore 用git做版本控制时 用这个文件控制那些文件或文件夹 不被提交(不用git的话可删除 没影响)
  • HELP.md md是一种文档格式 这个就是你项目的帮助文档(可删除 没影响)
  • mvnw linux上处理mevan版本兼容问题的脚本(可删除 没影响)
  • mvnw.cmd windows 上处理mevan版本兼容问题的脚本(可删除 没影响)
  • mybatis-typehandler.iml 有的文件每个导入IDEA的项目都会生成一个项目同名的 .iml文件 用于保存你对这个项目的配置 (删了程序重新导入后还会生成 但由于配置丢失可能会造成程序异常)
  • .idea 文件夹下是 IDEA 放项目配置信息、版本历史的目录。
  • .mvn文件夹是maven的一些jar包与配置文件
.gitignore规则

“/” 表示 当前文件所在的目录
eg:忽略public下的所有目录及文件

/public/*

eg:不忽略/public/assets,就是特例的意思,assets文件不忽略

!/public/assets

eg:忽略具体的文件

index.php

eg:忽略所有的php

*.php

eg:忽略 a.php b.php

[ab].php

*匹配规则和linux文件匹配一样
*以斜杠“/”开头表示目录;
以星号“”通配多个字符;
*以问号“?”通配单个字符
*以方括号“[]”包含单个字符的匹配列表;
*以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

类型转换器
类型处理器 TypeHandler

MyBatis 中的 TypeHandler 类型处理器用于 JavaType 与 JdbcType 之间的转换,用于 PreparedStatement 设置参数值和从 ResultSet 或 CallableStatement 中取出一个值。MyBatis 内置了大部分基本类型的类型处理器,所以对于基本类型可以直接处理,当我们需要处理其他类型的时候就需要自定义类型处理器。

MyBatis 内置的 TypeHandler
  • 在 MyBatis 的 TypeHandlerRegistry 类型中,可以看到内置的类型处理器。内置处理器比较多,这里整理常见的一些。
  • BooleanTypeHandler:用于 java 类型 boolean,jdbc 类型 bit、boolean
  • ByteTypeHandler:用于 java 类型 byte,jdbc 类型 TINYINT
  • ShortTypeHandler:用于 java 类型 short,jdbc 类型 SMALLINT
  • IntegerTypeHandler:用于 INTEGER 类型
  • LongTypeHandler:用于 long 类型
  • FloatTypeHandler:用于 FLOAT 类型
  • DoubleTypeHandler:用于 double 类型
  • StringTypeHandler:用于 java 类型 string,jdbc 类型 CHAR、VARCHAR
  • ArrayTypeHandler:用于 jdbc 类型 ARRAY
  • BigDecimalTypeHandler:用于 java 类型 BigDecimal,jdbc 类型 REAL、DECIMAL、NUMERIC
  • DateTypeHandler:用于 java 类型 Date,jdbc 类型 TIMESTAMP
  • DateOnlyTypeHandler:用于 java 类型 Date,jdbc 类型 DATE
  • TimeOnlyTypeHandler:用于 java 类型 Date,jdbc 类型 TIME
  • 对于常见的 Enum 类型,内置了 EnumTypeHandler 进行 Enum 名称的转换和 EnumOrdinalTypeHandler 进行 Enum 序数的转换。这两个类型处理器没有在 TypeHandlerRegistry 中注册,如果需要使用必须手动配置。
自定义 TypeHandler的两种实现方式:

通过实现 org.apache.ibatis.type.TypeHandler 接口实现的
通过继承 org.apache.ibatis.type.BaseTypeHandler 类实现的

TypeHandler接口:

public interface TypeHandler<T> {
   
    /*用于把 java 对象设置到 PreparedStatement 的参数中*/
    void setParameter(PreparedStatement var1, int var2, T var3, JdbcType var4) throws SQLException;
    /*用于从 ResultSet(根据列名或者索引位置获取) 或 CallableStatement(根据存储过程获取) 中取出数据转换为 java 对象。*/
    T getResult(ResultSet var1, String var2) throws SQLException;

    T getResult(ResultSet var1, 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值