Mybatis配置文件笔记

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

  <properties>
    <!--...mybatis的相关properties配置,例如引用外部properties文件-->
  </properties>

  <settings>
    <!--...mybatis相关环境配置,例如是否开启缓存,是否开启驼峰命名方式等-->
  </settings>

  <typeAliases>
    <!--...对象别名-->
  </typeAliases>

  <typeHandlers>
    <!--...自定义类型处理器-->
  </typeHandlers>

  <plugins>
    <!--...mybatis相关插件-->
  </plugins>

  <!-- 环境设置,例如数据源等 -->
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <!-- 配置数据源 -->
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/sqls?characterEncoding=utf8"/>
        <property name="username" value="root"/>
        <property name="password" value="admin"/>
      </dataSource>
    </environment>
  </environments>

  <!--给多个数据库厂商取名称-->
  <databaseIdProvider type="DB_VENDOR">
    <property name="MySQL" value="mysql"/>
    <!--多个数据库厂商-->
  </databaseIdProvider>

  <mappers>
    <!--...配置映射-->
  </mappers>

</configuration>

总结规律: 凡是s结尾的标签节点都是configuration标签节点的子标签。

typeAliases 子标签有typeAlias。通过typeAlias子标签可以给指定的类取别名,例如:

<typeAliases>
    <typeAlias type="com.mybatis.bean.Vendor" alias="vendor"/>
</typeAliases>

此时com.mybatis.bean.Vendor被指定为vendor,在mapper映射文件中就可以用vendor替换com.mybatis.bean.Vendor

typeAliases下除了typeAlias还有package子标签:

<typeAliases>
    <package name="com.mybatis.bean"/>
</typeAliases>

此时mybatis就会通过扫描包路径给指定包路径下及其子包下的类取别名。别名为小写类名或类名首字母大写(mybatis取别名时实际上不分大小写)。

如果包路径下及子包下有相同的类名,如果不手动指定类别名mybatis会报错,此时可以用@Alias自定义类别名。如果手动指定了别名,则别名是指定的名称。mapper映射文件中只能使用类全名或指定的别名(别名不区分大小写)。

建议不采用别名,采用全路径名方便查看xml的时候可以知道对应的实体类。

properties标签中有两个属性:resource、url:

properties属性 属性解释
resource 指定类路径下的资源文件(properties文件)
url 指定绝对路径的资源文件(可以是磁盘路径,也可以是网络路径)

settings标签中有通过setting子标签设置mybatis运行时行为设置。例如开启驼峰命名规则:

<settings>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

typeHandlers标签中用多个typeHandler子标签指定多个类型处理器,例如java对象的String类型与数据库varchar类型的映射。

mappers标签中用mapper标签指定映射文件,或用package标签对指定包路径进行扫描映射文件。

例如,如下代码扫描了包路径,并将包路径下的所有mapper映射文件加载值mybatis中:

<mappers>
    <package name="com.heiketu.mapper"/>
</mappers>

plugins标签中指定了mybatis使用的插件,mybaits通过动态代理的方式拦截处理方法调用前的一些自定义行为:
Executor、ParamterHandler、ResultSetHandler、StatementHandler插件会拦截mybatis中的4个和核心对象,对行为进行相应的处理。

databaseIdProvider标签中type属性的值为DB_VENDOR,其作用是配置多个数据库厂商,并给数据库厂商取名。设置完databaseIdProvider后在映射文件中语句便签处添加databaseId值为取的数据库厂商名,则mybatis在切换其他数据库时候可以动态的执行对应的sql。

**mybatis中配置文件的标签有先后顺序,如果顺序打乱则会报错。其顺序如下: properties, settings, typeAliases, typeHandlers, objectFactory,
objectWrapperFactory, reflectorFactory, plugins, environments, databaseIdProvider, mappers。 先后顺序可以不用记住,在eclipse中鼠标移至configuration的开始标签处等几秒会有提示(如果没有导入dtd文件,貌似需要有网络才行)。
**

mybatis配置文件中标签的先后顺序

猜你喜欢

转载自blog.csdn.net/u014268482/article/details/80594351