mybatis学习笔记全局配置文件的属性(标签)

2022-07-09 14:15:23

如果属性在不只一个地方进行了配置,那么 MyBatis 将按照下面的顺序来加载

在mybatis-config.xml映射文件中,所有标签都有顺序

查看标签顺序

  1.1:properties 属性  引入外部配置文件

<property name="username" value="${username:ut_user}"/> <!-- 如果属性 'username' 没有被配置,'username' 属性的值将为 'ut_user' -->

1.2:settings 属性 全局配置(mybatis-config.xml)

<settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/><!--开启命名下划线自动转驼峰!是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。-->
    </settings>

 配置参数

<settings>
  <setting name="cacheEnabled" value="true"/>
  <setting name="lazyLoadingEnabled" value="true"/>
  <setting name="multipleResultSetsEnabled" value="true"/>
  <setting name="useColumnLabel" value="true"/>
  <setting name="useGeneratedKeys" value="false"/>
  <setting name="autoMappingBehavior" value="PARTIAL"/>
  <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
  <setting name="defaultExecutorType" value="SIMPLE"/>
  <setting name="defaultStatementTimeout" value="25"/>
  <setting name="defaultFetchSize" value="100"/>
  <setting name="safeRowBoundsEnabled" value="false"/>
  <setting name="mapUnderscoreToCamelCase" value="false"/>
  <setting name="localCacheScope" value="SESSION"/>
  <setting name="jdbcTypeForNull" value="OTHER"/>
  <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>

1.3:typeAliases属性 为java类取别名(不区分大小写)

      三种方式取别名

       a.<typeAlias type="entity.MyBatis" alias="tis"></typeAlias>为单个取别名

       b.<package name="entity"></package>整个包    如:entity.MyBatis自动取别名为myBatis

       c.@Alias("myBatis") 注解版

1.4:typeHandlers属性 类型处理器(mybatis 3.4以后的版本,类型处理器都自动适配)

       处理java类型与数据库类型的适配

1.5:处理枚举类型

1.6:对象工厂(objectFactory)

1.7:插件(plugins)拦截的方法调用,类似spring中的九大作用域

  • Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
  • ParameterHandler (getParameterObject, setParameters)
  • ResultSetHandler (handleResultSets, handleOutputParameters)
  • StatementHandler (prepare, parameterize, batch, update, query)

1.8:环境配置(environments)快速切换环境配置(如测试环境和开发环境的切换)

<environments default="test"><!-- default指定使用某个环境 -->
        <environment id="development"><!-- 开发环境 -->
        <environment id="test"><!-- 测试环境 -->

<!-- ↓↓↓↓↓↓↓↓↓↓ 不懂看下面 ↓↓↓↓↓↓↓↓↓↓ -->

1.9:数据库厂商标识(databaseIdProvider) 移植性-支持多数据库

      a、配置数据源

<environments default="test"><!-- default指定使用某个环境 -->
    <environment id="development"><!-- 开发环境 -->
            <transactionManager type="dev_mysql"/>
            <dataSource type="POOLED">
                <property name="driver" value="${mys.driver}"/>
                <property name="url" value="${mys.url}"/>
                <property name="username" value="${mys.username}"/>
                <property name="password" value="${mys.password}"/>
            </dataSource>
        </environment>
    <environment id="test"><!-- 测试环境 -->
            <transactionManager type="dev_oracle"/>
            <dataSource type="POOLED">
                <property name="driver" value="${ora.driver}"/>
                <property name="url" value="${ora.url}"/>
                <property name="username" value="${ora.username}"/>
                <property name="password" value="$ora.{password}"/>
            </dataSource>
        </environment>
</environments>

      b、配置产商标识(作用于c,在mapper文件中调用,体现)

<databaseIdProvider type="DB_VENDOR">
  <property name="SQL Server" value="sqlserver"/>
  <property name="MySql" value="mysql"/>
  <property name="Oracle" value="oracle" />
</databaseIdProvider>

    c、mapper.xml文件的SQL语句编写(xml配置文件中配置好别名后,在mybatis映射文件的方法里添加databaseid标签中添加别名)

<insert id="testAdd" databaseId="oracle" parameterType="entity.User"> <!-- databaseId配置使用什么数据库 -->

2.0:映射器(mappers)告诉 MyBatis 到哪里去找映射文件

    <mappers>
        a、xml映射文件   c、注解版
        <mapper resource="mybatis/MyBatisMapping.xml"/><!--映射文件-->
        b、接口
        <mapper class="dao.MyBatisMapping"></mapper><!--接口 映射文件必须和接口同名,并且和接口在同一目录下-->
        d、批量注册(一般使用这种)
        <package name="dao"></package>
    </mappers>
  • 作者:我的麦
  • 原文链接:https://blog.csdn.net/qq_16946803/article/details/95449908
    更新时间:2022-07-09 14:15:23