mybatis resultType自带数据类型别名解读

 更新时间:2024年10月19日 15:54:48   作者:Coder-文小白  
MyBatis为了简化开发,通过org.apache.ibatis.type.TypeAliasRegistry为常见类定义了别名,这些别名包括基本数据类型及其数组、集合类型等,如string对应java.lang.String,int对应java.lang.Integer等,此外,还有特殊前缀的别名如_int对应int类型

mybatis resultType自带数据类型别名

为了简化开发,mybatis 默认在 org.apache.ibatis.type.TypeAliasRegistry 中为我们

定义了一些常见类的别名

public TypeAliasRegistry() {
    registerAlias("string", String.class);

    registerAlias("byte", Byte.class);
    registerAlias("long", Long.class);
    registerAlias("short", Short.class);
    registerAlias("int", Integer.class);
    registerAlias("integer", Integer.class);
    registerAlias("double", Double.class);
    registerAlias("float", Float.class);
    registerAlias("boolean", Boolean.class);

    registerAlias("byte[]", Byte[].class);
    registerAlias("long[]", Long[].class);
    registerAlias("short[]", Short[].class);
    registerAlias("int[]", Integer[].class);
    registerAlias("integer[]", Integer[].class);
    registerAlias("double[]", Double[].class);
    registerAlias("float[]", Float[].class);
    registerAlias("boolean[]", Boolean[].class);

    registerAlias("_byte", byte.class);
    registerAlias("_long", long.class);
    registerAlias("_short", short.class);
    registerAlias("_int", int.class);
    registerAlias("_integer", int.class);
    registerAlias("_double", double.class);
    registerAlias("_float", float.class);
    registerAlias("_boolean", boolean.class);

    registerAlias("_byte[]", byte[].class);
    registerAlias("_long[]", long[].class);
    registerAlias("_short[]", short[].class);
    registerAlias("_int[]", int[].class);
    registerAlias("_integer[]", int[].class);
    registerAlias("_double[]", double[].class);
    registerAlias("_float[]", float[].class);
    registerAlias("_boolean[]", boolean[].class);

    registerAlias("date", Date.class);
    registerAlias("decimal", BigDecimal.class);
    registerAlias("bigdecimal", BigDecimal.class);
    registerAlias("biginteger", BigInteger.class);
    registerAlias("object", Object.class);

    registerAlias("date[]", Date[].class);
    registerAlias("decimal[]", BigDecimal[].class);
    registerAlias("bigdecimal[]", BigDecimal[].class);
    registerAlias("biginteger[]", BigInteger[].class);
    registerAlias("object[]", Object[].class);

    registerAlias("map", Map.class);
    registerAlias("hashmap", HashMap.class);
    registerAlias("list", List.class);
    registerAlias("arraylist", ArrayList.class);
    registerAlias("collection", Collection.class);
    registerAlias("iterator", Iterator.class);

    registerAlias("ResultSet", ResultSet.class);
  }

整理成表格

别名映射类型
stringjava.lang.String
bytejava.lang.Byte
longjava.lang.Long
shortjava.lang.Short
intjava.lang.Integer
integerjava.lang.Integer
doublejava.lang.Double
floatjava.lang.Float
booleanjava.lang.Boolean
byte[]java.lang.Byte[]
long[]java.lang.Long[]
short[]java.lang.Short[]
int[]java.lang.Integer[]
integer[]java.lang.Integer[]
double[]java.lang.Double[]
float[]java.lang.Float[]
boolean[]java.lang.Boolean[]
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
_byte[]byte[]
_long[]long[]
_short[]short[]
_int[]int[]
_integer[]int[]
_double[]double[]
_float[]float[]
_boolean[]boolean[]
datejava.util.Date
decimaljava.math.BigDecimal
bigdecimaljava.math.BigDecimal
bigintegerjava.math.BigInteger
objectjava.lang.Object
date[]java.util.Date[]
decimal[]java.math.BigDecimal[]
bigdecimal[]java.math.BigDecimal[]
biginteger[]java.math.BigInteger[]
object[]java.lang.Object[]
mapjava.util.Map
hashmapjava.util.HashMap
listjava.util.List
arraylistjava.util.ArrayList
collectionjava.util.Collection
iteratorjava.util.Iterator
ResultSetjava.sql.ResultSet

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java搭建简单Netty开发环境入门教程

    Java搭建简单Netty开发环境入门教程

    这篇文章主要介绍了Java搭建简单Netty开发环境入门教程,有详细的代码展示和maven依赖,能够帮助你快速上手Netty开发框架,需要的朋友可以参考下
    2021-06-06
  • java并发编程专题(五)----详解(JUC)ReentrantLock

    java并发编程专题(五)----详解(JUC)ReentrantLock

    这篇文章主要介绍了java(JUC)ReentrantLock的的相关资料,文中讲解非常详细,实例代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 教你怎么通过IDEA设置堆内存空间

    教你怎么通过IDEA设置堆内存空间

    这篇文章主要介绍了教你怎么通过IDEA设置堆内存空间,文中有非常详细的代码示例,对正在使用IDEA的小伙伴们很有帮助哟,需要的朋友可以参考下
    2021-05-05
  • Java中lombok的@Builder注解的解析与简单使用详解

    Java中lombok的@Builder注解的解析与简单使用详解

    这篇文章主要介绍了Java中lombok的@Builder注解的解析与简单使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Java实现通过时间获取8位验证码

    Java实现通过时间获取8位验证码

    这篇文章主要为大家详细介绍了Java如何通过时间获取8位验证码(每两个小时生成一个),文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • Springboot Activemq整合过程代码图解

    Springboot Activemq整合过程代码图解

    这篇文章主要介绍了Springboot Activemq整合过程代码图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • mybaits中if条件中怎样判断布尔值

    mybaits中if条件中怎样判断布尔值

    这篇文章主要介绍了mybaits中if条件中怎样判断布尔值问题,具有很好的参考价值,希望对大家有所帮助,
    2023-08-08
  • Spring依赖注入Bean流程深入解析

    Spring依赖注入Bean流程深入解析

    本文主要介绍了Spring框架中依赖注入和Bean创建流程,包括注入方式、生命周期、代理模式、注入流程、构造函数参数处理以及创建Bean的详细过程,感兴趣的朋友跟随小编一起看看吧
    2026-01-01
  • Java编程环境搭建和变量基本使用图文教程

    Java编程环境搭建和变量基本使用图文教程

    这篇文章主要介绍了Java编程环境搭建和变量基本使用,结合图文形式详细分析了java编程语言环境搭建、配置、变量、注释的基本使用方法,需要的朋友可以参考下
    2020-02-02
  • 在VSCode里使用Jupyter Notebook调试Java代码的详细过程

    在VSCode里使用Jupyter Notebook调试Java代码的详细过程

    Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序,这篇文章主要介绍了在VSCode里使用Jupyter Notebook,调试Java代码,需要的朋友可以参考下
    2022-07-07

最新评论