MyBatis配置文件 —— 相关标签详解

Posted 会洗碗的CV工程师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis配置文件 —— 相关标签详解相关的知识,希望对你有一定的参考价值。

目录

一、Mybatis配置文件 — properties标签

二、Mybatis配置文件 — settings标签

三、Mybatis配置文件 — plugins标签

四、Mybatis配置文件 — typeAliases标签

五、Mybatis配置文件 — environments标签

六、Mybatis配置文件 — mappers标签


一、Mybatis配置文件 — properties标签

MyBatis配置文件结构:

-configuration

        -properties(属性)

                -property

        -settings(全局配置参数)

                -setting

        -plugins(插件)

                -plugin

        -typeAliases(别名)

                -typeAliase

                -package

        -environments(环境)

                -environment

                        -transactionManager(事务管理)

                        -dataSource(数据源)

        -mappers(映射器)

                -mapper

                -package

properties

属性值定义。properties标签中可以定义属性值,也可以引入外部配置文件。无论是内部定义还是外部引入,都可以使用$name获取值。

例如:我们可以将数据源配置写到外部的db.properties中,再使用properties标签引入外部配置文件,这样可以做到动态配置数据源。

① 编写db.properties

jdbc.driver = com.mysql.cj.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mybatis
jdbc.username = root
jdbc.password = 666666

② 在配置文件中引入db.properties

    <properties resource="db.properties">
    </properties>
    <environments default="mysql">
        <environment id="mysql">
            <!-- 事务类型 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 数据源 -->
            <dataSource type="POOLED">
                <property name="driver" value="$jdbc.driver"/>
                <property name="url" value="$jdbc.url"/>
                <property name="username" value="$jdbc.username"/>
                <property name="password" value="$jdbc.password"/>
            </dataSource>
        </environment>
    </environments>

        当然我们也可以将数据源数据通过 <properties> 配置到MyBatis配置文件内,但这样做没什么意义。

 测试一下findAll方法是否测功执行

OK,说明了确实可以的。 

二、Mybatis配置文件 — settings标签

        <settings> 是配置MyBatis运行时的一些行为的,例如缓存、延迟加载、命名规则等一系列控制性参数。后期我们会使用该标签配置缓存和延迟加载等。

三、Mybatis配置文件 — plugins标签

        <plugins> 是配置MyBatis插件的。插件可以增强MyBatis功能,比如进行sql增强,打印日志,异常处理等。后期我们会使用该标签配置分页插件。

四、Mybatis配置文件 — typeAliases标签

        MyBatis对常用类有默认别名支持,比如java.lang.Stirng的别名为string。除此之外,我们也可以使用 <typeAliases> 设置自定义别名。

        为一个类配置别名,如下图所示

<typeAliases>
 <typeAlias type="全类名" alias="别名"></typeAlias>
</typeAliases>

        此时我们即可在映射文件中使用自定义别名,如帮User类配置一个别名
① 配置文件:

    <typeAliases>
        <typeAlias type="com.mybatisstudy.pojo.User" alias="User"></typeAlias>
    </typeAliases>

② 映射文件:

    <select id="findAll" resultType="User">
        select * from user
    </select>

③ 测试findAll方法:

        OK,同样是可以执行的,说明该方法可以使用 。

        为一个所有包下的所有类配置别名

<typeAliases>
    <package name="包名"></package>
</typeAliases>

        此时该包下的所有类都有了别名,别名省略包名,和类名相同。

        如:

① 配置文件:

    <typeAliases>
        <package name="com.mybatisstudy.pojo"/>
    </typeAliases>

② 映射文件:

    <select id="findPage2" resultType="User" parameterType="PageQuery">
        select * from user limit #startIndex,#pageSize
    </select>

③ 测试结果:

         OK,同样可以运行,说明该方法也可以使用。

五、Mybatis配置文件 — environments标签

        <environments> 可以为 MyBatis 配置数据环境。

事务管理

<environments default="mysql">
    <environment id="mysql">
        <!-- JDBC:使用JDBC的提交和回滚MANAGED:不做事务处理-->
        <transactionManager type="JDBC"></transactionManager>
    </environment>
</environments>

连接池

<environments default="mysql">
    <environment id="mysql">
        <transactionManager type="JDBC"></transactionManager>
        <!-- 连接池设置 -->
        <dataSource type="POOLED">
            <!-- 数据源设置... -->
        </dataSource>
    </environment>
</environments>

dataSourcetype属性:

  1.  POOLED:使用连接池管理连接,使用MyBatis自带的连接池。
  2.  UNPOOLED:不使用连接池,直接由JDBC连接。
  3.  JNDI:由JAVAEE服务器管理连接,如果使用Tomcat作为服务器则使用Tomcat自带的连接池管理。

六、Mybatis配置文件 — mappers标签

        <mappers> 用于注册映射文件或持久层接口,只有注册的映射文件才能使用,共有四种方式都可以完成注册:

① 使用相对路径注册映射文件

    <mappers>
        <mapper resource="com/mybatisstudy/mapper/UserMapper.xml"></mapper>
    </mappers>

② 使用绝对路径注册映射文件

<mappers>  
    <mapper url="file:///C:\\javaProjects\\mybatiscase\\mybatisDemo1\\src\\main\\resources\\com\\itbaizhan\\mapper\\UserMapper.xml"/>
</mappers>

③ 注册持久层接口

<mappers>  
    <mapper class="com.itbaizhan.mapper.UserMapper"/>
</mappers>

④ 注册一个包下的所有持久层接口

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

mybatis配置(Configuration.xml)详解

mybatis配置(Configuration.xml)详解

方法/步骤

 
  1.  

    properties:属性配置文件

        mybatis会加载该标签配置的properties文件, 对mybatis配置文件解析时, 使用占位符中的名称作为key, 去properties获得value, 然后进行替换。

  2.  

    setting配置

      对mybatis的一些功能进行设置.

      配置参数:

       例如:

     

     <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="enhancementEnabled" value="false"/> 

     

     <setting name="defaultExecutorType" value="SIMPLE"/> 

     

     <setting name="defaultStatementTimeout" value="25000"/> 

     

     </settings> 

    技术分享图片
  3.  

    environments:环境配置

  4.  

    environment:环境配置

  5.  

    datasource: 数据源配置

    POOLED:每次被请求时简单打开和关闭连接.

     

     

     

    POOLED:JDBC 连接对象的数据源连接池的实现,用来避免创建新的连接实例时必要的初始连接和认证时间。

     

     

     

    poolMaximumActiveConnections –  在任意时间存在的活动(也就是正在使用)连接的数量。默认值:10

     

     

     

    poolMaximumIdleConnections –  任意时间存在的空闲连接数。

     

     

     

    oolMaximumCheckoutTime –  在被强制返回之前,池中连接被检查的时间。默认值:20000 毫秒(也就是 20 秒)

     

     

     

    poolTimeToWait  –  这是给连接池一个打印日志状态机会的低层次设置,还有重新尝试获得连接,这些情况下往往需要很长时间(为了避免连接池没有配置时静默失败)。 默认值:20000 毫秒(也就是 20 秒)

     

     

     

    poolPingQuery –  发送到数据的侦测查询,用来验证连接是否正常工作,并且准备接受请求。默认是“NO

     

     

     

    PING QUERY SET”,这会引起许多数据库驱动连接由一个错误信 息而导致失败。

     

     

     

    poolPingEnabled  –  这是开启或禁用侦测查询。如果开启,你必须用一个合法的SQL语句(最好是很快速的)设置 poolPingQuery 属性。默认值:false。

     

     

     

    poolPingConnectionsNotUsedFor  –  这是用来配置 poolPingQuery 多次时间被用一次。这可以被设置匹配标准的数据库连接超时时间,来避免不必要的侦测。默认值:0 (也就是所有连接每一时刻都被侦测-但仅仅当 poolPingEnabled 为 true 时适用)。 

     

     

     

    JNDI –  这个数据源的实现是为了使用如 Spring 或应用服务器这类的容器,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。

     

     

     

    initial_context  –  这个属性用来从初始上下文中寻找环境(也就是initialContext.lookup(init ial——context))。这是个可选属性,如果被忽略,那么data_source 属性将 会直接以 init ialContext 为背景再次寻找。

     

     

     

    data_source  –  这是引用数据源实例位置的上下文的路径。它会以由 init ial_context查询返回的环境为背景来查找,如果 init ial_context 没有返回结果时,直接以初始上下 文为环境来查找

以上是关于MyBatis配置文件 —— 相关标签详解的主要内容,如果未能解决你的问题,请参考以下文章

mybatis各阶段的详解

SSM相关的配置文件模板

MyBatis全局配置文件标签详解

MyBatis 配置 typeHandlers 详解

mybatis的使用及详解

mybatis核心文件详解