Spring的别名管理比较规范,有严格的接口规范,SimpleAliasRegistry实现 -> AliasRegistry接口,而且是线程安全的,Map也用的是ConcurrentHashMap,key是String,value是String,而且可以循环引用。

mybatis的别名管理器是TypeAliasRegistry类,个人感觉有点不规范,可能是看Spring源码看多了,线程不安全,Map用的是普通的HashMap,key是String,value是Class<?>,没有循环引用问题。

先从TypeAliasRegistry构造函数开始,先注册一些别名:

8大基本数据类型的添加,加了一个下划线"_"

8个基本数据类型的包装类型

和一些集合框架常用的类的别名。

再看Configuration的构造函数,注册了一些常用的别名。

还有一个途径就是,mybatis-config.xml文件中配置typeAlias标签,

有两种方式,直接定义别名使用"alias"与"type",另一种是扫描包方式使用"package",该包下使用@Alias注解,都会注册进管理器中。

从方法开始:Class<T> resolveAlias(String string) ;

内部实现是先从Map中获取,获取到就返回,获取不到就把这个字符串当做类的全限定名,使用Class<?> c = Class.forName方法返回。

MyBatis别名的更多相关文章

  1. MyBatis 别名标签 & sql的复用

    1.MyBatis 别名标签 如果在映射文件中,大量使用类名比较长,可以在sqlMapConfig.xml声明别名, 在映射文件中可以使用别名缩短配置,注意此配置要放在最前面 sqlMapConfig ...

  2. springboot之mybatis别名的设置

    mybatis别名设置 在具体的mapper.xml文件中,定义很多的statement,statement需要parameterType指定输入参数的类型.需要resultType指定输出结果的映射 ...

  3. Mybatis 别名机制,自动扫描 数据的增删改

    mybatis别名机制: 在mybatis.xml文件中的<configuration></configuration>标签中间加入属性<typeAliases>& ...

  4. MyBatis别名与util类技能了解

    1.别名 在java中String类型就是String类型,但是在MyBatis中可不会识别java中的类型,在MyBatis中String类型的别名是'string',小写的String,或者也可以 ...

  5. springboot值mybatis 别名等配置

    在application配置文件中添加如下: mybatis: #该配置替换在sql-config-map中的typeAliases配置 type-aliases-package: com.ww.ww ...

  6. Mybatis关联查询(嵌套查询)

    上一篇文章介绍了基于Mybatis对数据库的增.删.改.查.这一篇介绍下关联查询(join query). 三张表:user article blog 表的存储sql文件: /* Navicat My ...

  7. Mybatis实现数据的增删改查(CRUD)

    什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBat ...

  8. 转!!!Mybatis实现数据的增删改查(CRUD)

    什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBat ...

  9. MyBatis 配置的一些小知识点

    MyBatis别名配置——typeAliases 类型别名是为 Java 类型设置一个短的名字.它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余.说白了就是预先设置包名 api是这 ...

随机推荐

  1. Mybatis 类的转换器

    想一个事情 ,例: 我数据库的表 定义了一个表student 里面有一个字段 stu_sex  int类型  可是我对应的实体类是 String 类型或者其他类型 这个时候 实体类与数据库表肯定对应不 ...

  2. git log 与 git reflog 的 区别

    git log: commit 的版本日志 包含提交的版本 操作者 日期 (方便查看commit的版本,但是版本回退后,使用git log 看不到回退版本号之后的版本记录) commit ce0d69 ...

  3. Elasticsearch(八)【NEST高级客户端--Mapping映射】

    要使用NEST与Elasticsearch进行交互,我们需要能够将我们的解决方案中的POCO类型映射到存储在Elasticsearch中的反向索引中的JSON文档和字段.本节介绍NEST中可用的所有不 ...

  4. [Objective-C语言教程]错误处理(22)

    在Objective-C编程中,错误处理由Foundation框架中提供的NSError类提供处理. 与仅使用错误代码或错误字符串相比,NSError对象封装了更丰富且更具可扩展性的错误信息. NSE ...

  5. day 09 课后作业

    # -*- coding: utf-8 -*-# @Time : 2018/12/28 14:25# @Author : Endless-cloud# @Site : # @File : 08 课后作 ...

  6. hive连接mysql遇到的问题

    启动hive之前应该先启动metastore,也是在bin目录下:./hive --service metastore &然后再启动hive: ./hive 今天连接hive时总是报错:Una ...

  7. linux下安装gcc详解

    1.了解一下gcc 目前,GCC可以用来编译C/C++.FORTRAN.JAVA.OBJC.ADA等语言的程序,可根据需要选择安装支持的语言.我自己linux上是4.1.2版本,是不支持openMP的 ...

  8. QuantLib 金融计算——基本组件之 DateGeneration 类

    目录 QuantLib 金融计算--基本组件之 DateGeneration 类 QuantLib 金融计算--基本组件之 DateGeneration 类 许多产品的估值依赖于对未来现金流的分析,因 ...

  9. Vue 不睡觉教程1-从最土开始

    目标最近在学习vue的过程中发现网上的vue教程总有些不同的问题,有的教程上来只说语法,有的教程上来就用vue-cli来建项目,但是vue-cli是整合了webpack等多个插件的工具,不利于我们学习 ...

  10. 11种绕过CDN查找真实IP方法

    0x01 验证是否存在CDN 方法1: 很简单,使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有: http://ping.chin ...