ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Mybatis入门(四) 核心配置文件详解

2021-08-29 01:02:53  阅读:173  来源: 互联网

标签:xml 配置文件 映射器 配置 别名 详解 Mybatis properties


mybatis核心配置文件,官网默认文件名为mybatis-config.xml,configuration下有如下几个属性配置,其中需要掌握的配置有properties,settings,typeAliases,environment,mappers,其他只做了解即可,开发中基本用不到。

 

properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)

  • environment(环境变量)
  • transactionManager(事务管理器)
  • dataSource(数据源)

databaseIdProvider(数据库厂商标识)
mappers(映射器)

 

 

1,properties

resource可以配置对应config.properties文件读取参数,也可以直接如下通过property配置参数,如果配置文件中的key值和property中的name值一致,会优先使用外部文件的key

 

<properties resource="org/mybatis/example/config.properties">
  <property name="username" value="dev_user"/>
  <property name="password" value="F2Fa3!33TYyg"/>
</properties>

 

配置的参数,可以在environments属性下的datasource使用,如下

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

 

 

2,settings

setting的属性字段很多,当前只需要记住这几个

cacheEnabled 全局性地开启或关闭所有映射器配置文件中已配置的任何缓存 默认关闭 false
lazyLoadingEnabled 默认关闭 false
logImpl SLF4J | LOG4J | LOG4J2 |
useGeneratedKeys 允许 JDBC 支持自动生成主键,需要数据库驱动支持 默认关闭 false

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

 

 

3 typeAliases

类型别名,有两种方式

1)实体类别名,直接将实体类定义一个名字,后续在mapper中只需要用这个名字即可,如下图

    <typeAliases>
        <typeAlias type="com.hys.mybatis.pojo.userDao" alias="user"></typeAlias>
    </typeAliases>

  <mapper namespace="com.hys.mybatis.dao.userDao">
      <select id="getUserList" resultType="user"  >
          select * from school.user
      </select>
  </mapper>

 

2)包名,不能用别名,如下,包名下的类使用小写就可以获得。实在要改别名需要添加注解

  <typeAliases>
    <package name="domain.blog"/>
  </typeAliases>
  <mapper namespace="com.hys.mybatis.dao.userDao">
      <select id="getUserList" resultType="user"  >
          select * from school.user
      </select>
  </mapper>
@Alias("giao")
public class user{
    ...
}

 

 

4 environments

可以配置多套环境,只需要id不一致即可,但只能运行一套环境,通过id来确定用哪一套,如下图一套test,一套debelopment

transactionManager type="JDBC" //事务管理器,默认用jdbc,有两种
dataSource type="POOLED" //池子,作用是可以回收,每次连接关闭数据库都浪费资源,有资源池后,连接之后回收不关闭,下次继续使用

    <environments default="test">
        <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>

        <environment id="test">
            <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>

 

 

5,mappers

 1)相对于路径的资源使用,直接具体到对应的xml文件

    <mappers>
        <mapper resource="com/hys/mybatis/dao/userDao.xml"/>
    </mappers>

2)class文件绑定注册,class指定到具体类,类名和xml文件名必须一致,且在同一个包下面

    <mappers>
        <mapper class="com.hys.mybatis.dao.userDao"></mapper>
    </mappers>

3)将包内的映射器接口实现全部注册为映射器 ,类名和xml文件名必须一致,且在同一个包下面

 

    <mappers>
        <package name="com.hys.mybatis.dao"/>
    </mappers>

 

 

 

标签:xml,配置文件,映射器,配置,别名,详解,Mybatis,properties
来源: https://www.cnblogs.com/carry-huang/p/15201647.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有