mybatis 配置文件解析【vaynexiao】

 配置文件标签有严格的顺序

configration
    properties 
    settings
    typeAliases
    typeHandlers类型处理器
    objectFactory对象工厂, objectWrapperFactory?, reflectorFactory
    plugins
    environments
	    1,environment环境子属性对象
	    2,transactionManager事务管理
	    3,dataSource数据源 
    databaseIdProvider
    mappers
configration

properties 

db.properties文件保存数据库连接信息

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8
username=root
password=123456
<configuration>
    <!--导入properties文件-->
    <properties resource="db.properties"/>
    <!-- properties 中可以使用子属性property自定义属性值,但优先会使用外部文件 -->

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

setting

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

 typeAliases

<!--User可以用在任何使用com.kuang.pojo.User的地方-->
<typeAliases>
    <typeAlias type="com.kuang.pojo.User" alias="User"/>
</typeAliases>

<!-- 每一个在包 com.kuang.pojo 中的 Java Bean,在没有注解的情况下,
会使用 Bean 的首字母小写的非限定类名来作为它的别名。若有注解 @Alias,则别名为其注解值 -->
<typeAliases>
    <package name="com.kuang.pojo"/>
</typeAliases>

environments

default可选择指定的environment,通过environment的id

<configuration>
    <!--导入properties文件-->
    <properties resource="db.properties"/>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

mapper

<mappers>

	<!-- 使用相对于类路径的资源引用(推荐) -->
	<mapper resource="com/mybatis/builder/PostMapper.xml"/>
	
	<!-- 使用完全限定资源定位符(URL)不推荐 -->
	<mapper url="file:///var/mappers/AuthorMapper.xml"/>
	
	<!--  使用映射器接口实现类的完全限定类名
	需要配置文件名称和接口名称一致,并且位于同一目录下 -->
	<mapper class="com.xxx.xxx.UserMapper"/>
	
	<!-- 将包内的映射器接口实现全部注册为映射器
	但是需要配置文件名称和接口名称一致,并且位于同一目录下 -->
	<package name="com.xxx.xxx"/>
	
</mappers>

 

发布了49 篇原创文章 · 获赞 103 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/vayne_xiao/article/details/104867243