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

总结

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

相关文章

  • MybatisPlus代码生成器的使用方法详解

    MybatisPlus代码生成器的使用方法详解

    在这里我将展示如何自动生成实体类、控制层、服务层、mapper等代码,这些基础的代码全部不需要我们手动创建,由MybatisPlus自动帮我们完成,我们只需要告诉MybatisPlus怎么生成这些代码就可以了,在此之前我们需要配置好测试的环境,数据库和表数据 ,需要的朋友可以参考下
    2021-06-06
  • 解决nacos的yml配置文件解析@开头的值启动报错问题

    解决nacos的yml配置文件解析@开头的值启动报错问题

    这篇文章主要介绍了解决nacos的yml配置文件解析@开头的值启动报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 基于Springboot疫苗接种行程管理系统的设计与实现

    基于Springboot疫苗接种行程管理系统的设计与实现

    本文主要介绍了基于Springboot实现的疫苗接种行程管理系统的示例代码,系统主要实现个人疫苗接种管理、行程管理、病史管理、风险地区管理、核酸检测报告结果上报、疫情新闻管理等功能,需要的可以参考一下
    2022-03-03
  • Java修改maven的默认jdk版本为1.7的方法

    Java修改maven的默认jdk版本为1.7的方法

    这篇文章主要介绍了Java修改maven的默认jdk版本为1.7的方法,需要的朋友可以参考下
    2018-02-02
  • Java代码里如何拼接SQL语句到mybatis的xml

    Java代码里如何拼接SQL语句到mybatis的xml

    这篇文章主要介绍了Java代码里拼接SQL语句到mybatis的xml操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • SpringBoot 替换 if 的参数校验示例代码

    SpringBoot 替换 if 的参数校验示例代码

    Spring Validation是对hibernate validation的二次封装,用于支持spring mvc参数自动校验,接下来,我们以spring-boot项目为例,介绍Spring Validation的使用,需要的朋友可以参考下
    2022-12-12
  • Java获取CPU和内存占用率最简单的方法

    Java获取CPU和内存占用率最简单的方法

    这篇文章主要介绍了Java获取CPU和内存占用率最简单的方法,文中通过代码示例和图文结合的方式给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-06-06
  • Java程序打包成带参数的jar文件实例代码

    Java程序打包成带参数的jar文件实例代码

    这篇文章主要介绍了Java程序打包成带参数的jar文件实例代码,需要的朋友可以参考下
    2017-09-09
  • 基于python locust库实现性能测试

    基于python locust库实现性能测试

    这篇文章主要介绍了基于python locust库实现性能测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • SpringBoot集成Nacos的项目实践

    SpringBoot集成Nacos的项目实践

    本文主要介绍了SpringBoot集成Nacos的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论