mybaties核心配置文件的typeAliases属性配置

typeAliases配置

 

类型别名可以给 Java 类型设置一个简称。 它仅用于 XML 配置,意在降低冗余的全限定类名书写,因为书写类的全限定名太长了,我们希望有一个简称来指代它。类型别名在 Mybatis 中分为 系统内置 和 用户自定义 两类,Mybatis 会在解析配置文件时把 typeAliases 实例存储进入 Configuration 对象中,需要使用时直接获取。

例如:像这样配置时,我们就可以在任何需要使用 domain.blog.Author 的地方,直接使用别名 author 。

<typeAliases>

  <typeAlias alias="Author" type="domain.blog.Author"/>

  <typeAlias alias="Blog" type="domain.blog.Blog"/> 

</typeAliases>

 

 

但是,如果遇到项目中特别多 Java 类需要配置别名,怎么更快的设置呢?

可以指定一个包名进行扫描,MyBatis 会在包名下面扫描需要的 Java Bean,比如:

<typeAliases>

  <package name="domain.blog"/>

</typeAliases>

 

每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 domain.blog.Author 的别名为 author;若有 注解 ,则别名为其自定义的注解值。见下面的例子:

@Alias("myAuthor")

public class Author {

    ...

}

 

系统自带的别名:

 

 

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);

  }

上一篇:mybaties的核心配置文件属性之typehandlers


下一篇:mybaties核心配置文件的属性environments