Mybatis—配置文件分解

1.mybatis-config.xml配置顺序

<configuration>
    <!-- 读取外部配置 -->
    <properties resource="jdbc.properties"/>
    
<!-- 全局配置-->
    <settings>
        <setting name=" " value=" "/>
    </settings>
    
    <!-- 别名,可代替全限定名称-->
    <typeAliases>
        <package name=" "/>
    </typeAliases>
    
        <!-- 插件,即拦截器-->
    <plugins>
        <plugin interceptor=" ">
            <property name=" " value=" "/>
        </plugin>
    </plugins>
    
    <!-- 环境-->
    <environments default="development">
        <environment id="development">
      		 <!-- 事务管理器-->
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    
    <!-- 数据库厂商标识-->
    <databaseIdProvider type="DB_VENDOR">
        <property name="MySQL" value="mysql"/>
    </databaseIdProvider>
    
    <!--mapper映射业务-->
    <mappers>
        <package name="org.example.dao.book"/>
    </mappers>
</configuration>

2.settings

<settings>
    <!-- 和cache配合开启二级缓存,默认true -->
   		 <setting name="cacheEnabled" value="true"/>
    <!-- 延迟加载的全局开关,开启时所有关联对象都会延迟加载,默认false-->
   		 <setting name="lazyLoadingEnabled" value="true"/>
     <!-- 是否关闭按需加载,默认false-->
    	 <setting name="aggressiveLazyLoading" value="false"/>
    <!-- 是否使用列标签代替列名, 默认true -->
   		 <setting name="useColumnLabel" value="true"/>
    <!-- MyBatis自动映射列到字段或属性的方式. NONE关闭,PARTIAL映射没有定义嵌套结果字段,FULL映射所有. 默认PARTIAL-->
   		 <setting name="autoMappingBehavior" value="PARTIAL"/>
    <!-- 发现自动映射目标未知列的行为. NONE:不做反应,WARNING: 输出警告日志, FAILING: 映射失败(抛出 SqlSessionException),默认None -->
    	<setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
    <!-- 默认的执行器,SIMPLE普通的执行器, REUSE执行器会重用预处理语句(PreparedStatement), BATCH 执行器不仅重用语句还会执行批量更新,默认SIMPLE -->
    	<setting name="defaultExecutorType" value="SIMPLE"/>
    <!-- 设置超时时间,数据库驱动等待数据库响应的秒数, 默认null -->
    	<setting name="defaultStatementTimeout" value="25"/>
    <!-- 结果集获取数量(fetchSize)设置一个建议值,此参数只可以在查询设置中被覆盖, 默认null -->
   		 <setting name="defaultFetchSize" value="100"/>
    <!-- 是否不允许在嵌套语句中使用分页, 允许使用false, 默认值false -->
    	<setting name="safeRowBoundsEnabled" value="false"/>
    <!-- 是否开启驼峰命名自动映射, 默认false -->
    	<setting name="mapUnderscoreToCamelCase" value="false"/>
    <!-- MyBatis利用本地缓存机制(Local Cache)防止循环引用和加速重复的嵌套查询,
         默认SESSION, 缓存一个会话中执行的所有查询, 若为STATEMENT,本地缓存将仅用于执行语句,对相同SqlSession的不同查询将不会进行缓存 -->
   		 <setting name="localCacheScope" value="SESSION"/>
    <!-- 当没有为参数指定特定的JDBC类型时,空值的默认JDBC类型, 默认other-->
    	<setting name="jdbcTypeForNull" value="OTHER"/>
    <!-- 指定对象的哪些方法触发一次延迟加载 -->
    	<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
     <!-- 使用日志 -->
   		<setting name="logImpl" value="LOG4J" />
</settings>

3.别名

    <typeAliases>
        <!-- 为指定类设置别名, 若alias不指定别名则默认为类名小写 -->
        <!-- <typeAlias type="org.example.pojo.Book" alias="book"/>-->
        <!-- 为整个包下所有类起别名, 每个类别名为类名小写 -->
        <package name="org.example.pojo"/>
    </typeAliases>

4.数据库厂商标识,使用databaseId="mysql"指定

<databaseIdProvider type="DB_VENDOR">
    <property name="MySQL" value="mysql"/>
    <property name="DB2" value="db2"/>
    <property name="Oracle" value="oracle" />
</databaseIdProvider>

5.映射器

<mappers>
 <!-- 使用相对路径 -->
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  <!-- 绝对路径 -->
   <mapper url="file:///var/mappers/PostMapper.xml"/>
   <!-- 接口 -->
   <mapper class="org.mybatis.builder.PostMapper"/>
   <!-- 扫描整个包 -->
    <package name="org.mybatis.builder"/>
</mappers>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值