mybatis typeAliases
来源:互联网 发布:淘宝口罩属于什么类目 编辑:程序博客网 时间:2024/05/21 07:49
typeAliases 别名
由于类的全限定名很长,需要大量使用时,总是不大方便,所以mybatis提供了别名方式来解决这个问题。在Mybatis中别名由TypeAliasRegistry去定义。值得注意的是,在mybatis中别名不区分大小写
还记得在此前的文章中提供的mybatis实例中
<select id="findRoles" parameterType="string" resultType="role">
其中的parameterType和resultType中的值其实都是别名。mybatis初始化的时候,提供提供了一些别名:
1. 不包括char类型的基本数据类型的别名为 _XXX 例如 _btye , 但是int还有_integer 表示方式。
2. 包装类,String的别名为第一个字母变为小写,例如string 但是Integer还有int表示方式。
3. Date , BigDecimal , Object 的 别名也是第一个字母变为小写。
4. 集合类中提供了 Map , HashMap ,List , ArrayList,Collection 和 Iterator的别名,同样是第一个字母小写。
5. ResultSet的别名为本身,需要特殊记忆。
6. 除了集合类,Object 和ResultSet。其余都可以有数组形式的别名,形式为 别名[] 例如 _int[].
在mybatis中的别名是通过TypeAliasRegistry类注册而来,看一下源码中是如何注册别名的
public TypeAliasRegistry() { registerAlias("string", String.class); registerAlias("byte", Byte.class); registerAlias("long", Long.class); ..............//此后省略 }
我们可以知道它是通过 registerAlias方法来注册别名。
public void registerAlias(String alias, Class<?> value) { if (alias == null) { throw new TypeException("The parameter alias cannot be null"); } // issue #748 String key = alias.toLowerCase(Locale.ENGLISH); if (TYPE_ALIASES.containsKey(key) && TYPE_ALIASES.get(key) != null && !TYPE_ALIASES.get(key).equals(value)) { throw new TypeException("The alias '" + alias + "' is already mapped to the value '" + TYPE_ALIASES.get(key).getName() + "'."); } TYPE_ALIASES.put(key, value); }
上面是registerAlias的源码,TYPE_ALIASES是TypeAliasRegistry类中的一个属性,下面是它的实例化代码。
private final Map<String, Class<?>> TYPE_ALIASES = new HashMap<String, Class<?>>();
由此可知,在mybatis中别名是储存在一个HashMap中。当我们自定义别名时,mybatis会判断别名是否已经被占用。通过判断后,将合法的别名放入这个HashMap中。
我们通常创建别名是下面的这种方式
<typeAliases> <typeAlias alias="role" type="lly.mybatis.example.pojo.Role" /> <typeAlias alias="user" type="lly.mybatis.example.pojo.User" /> </typeAliases>
但是我们还有一种简便的方式,但是别名会默认为类名首字母小写 例如 类名:Role 别名: role
<typeAliases> <package name="lly.mybatis.example.pojo"/> </typeAliases>
当这个路径下有两个类名字一样时,或者你不想使用首字母小写形式,那么可以在pojo对象上添加@Alias(“XXX”) 标签,其中的XXX即你需要重置的别名。
- mybatis typeAliases
- Mybatis之typeAliases
- MyBatis 之 typeAliases 标签
- Mybatis定义别名typeAliases
- Mybatis typeAliases用法
- Mybatis定义别名typeAliases
- MyBatis中typealiases的使用
- MyBatis中typealiases的使用
- typeAliases
- Mybatis 全局配置文件中typeAliases(别名)
- Mybatis为实体类定义别名typeAliases
- MyBatis中关于别名typeAliases的设置
- Mybatis学习之自定义别名Typealiases(四)
- Mybatis(1、核心配置文件、Properties、Settings、typeAliases...)
- MyBatis中关于别名typeAliases的设置
- mybatis-全局配置文件-mybatis-config.xml- typeAliases-5
- Mybatis之XML配置文件之properties,settings,typeAliases,typeHandlers
- 03 Mybatis源码篇---XML配置之typeAliases 类型命名
- 数据结构-栈的静态顺序存储表示-初始化压栈弹栈
- java基础——时间转换
- 在arcgis中若想保存一个数据的符号设置不变应该怎么做?
- SurfaceView的系列用法(未完)
- selenium、python模拟登陆淘宝
- mybatis typeAliases
- js实现sha1加密算法
- springBoot 由浅入深 (二)
- win10怎么关闭独立显卡的硬件加速
- 在线函数画图
- FastDFS的使用
- springboot的通用BaseDAO写法
- 常见的数据库操作
- mybatis typeHandler