MyBatis(3)之配置文件常用标签详解

MyBatis(3)之配置文件常用标签详解

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:

属性标签-properties

该标签用于配置一些属性,它们可通过 properties 元素的子元素来设置。例如:

<properties resource="jdbc.properties">
  <property name="username" value="root"/>
  <property name="password" value="root"/>
</properties>

这些属性也可以在典型的 Java 属性文件中设置好然后在配置文件中动态替换,如下:

<dataSource type="POOLED">
  <property name="driver" value="${driver}"/>
  <property name="url" value="${url}"/>
  <property name="username" value="${username}"/>
  <property name="password" value="${password}"/>
</dataSource>

这个例子中的 usernamepassword 将会由 properties 元素中设置的相应值来替换。 driverurl 属性将会由 config.properties 文件中对应的值来替换。这样就为配置提供了诸多灵活选择。

类型别名-typeAliases

类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。例如:

<typeAliases>
  <typeAlias alias="user" type="com.zze.pojo.User"/>
  <typeAlias alias="customer" type="com.zze.pojo.Customer"/>
  <typeAlias alias="order" type="com.zze.pojo.Order"/>
</typeAliases>

当这样配置时, user 可以用在任何使用 com.zze.pojo.User 的地方。

也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,比如:

<typeAliases>
  <package name="com.zze.pojo"/>
</typeAliases>

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

@Alias("order")public class Order{
    ...
}

这是一些为常见的 Java 类型内建的相应的类型别名。它们都是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理。

别名映射的类型
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
objectObject
mapMap
hashmapHashMap
listList
arraylistArrayList
collectionCollection
iteratorIterator

映射器-mappers

我们要定义 SQL 映射语句,首先我们需要告诉 MyBatis 到哪里去找到这些语句。 Java 在自动查找这方面没有提供一个很好的方法,所以最佳的方式是告诉 MyBatis 到哪里去找映射文件。你可以使用相对于类路径的资源引用, 或完全限定资源定位符(包括 file:/// 的 URL),或类名和包名等。例如:

<!-- 使用相对于类路径的资源引用 -->
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<!-- 使用完全限定资源定位符(URL) -->
<mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/BlogMapper.xml"/>
  <mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>
<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.zze.xyz/archives/mybatis3.html

Buy me a cup of coffee ☕.