MyBatis 的主配置文件详解

properties 属性

三种方式使用:

  • property 子元素
  • properties 文件
  • 程序代码传递

settings 设置

<settings>
    <setting name="cacheEnabled" value="true"/>
    ...
</settings>

typeAliases 别名

别名不区分大小写

  • 系统别名
  • 自定义别名

自定义别名
typeAliases 为mapper映射文件中的 POJO(domain)起别名

    方式一:为指定的类分别起别名,别名的命名由我们自己来决定
           type:要为哪个 POJO(domain)起别名,填写【包.类名称】
           alias:别名
<typeAliases>
    <typeAlias alias="role" type="com.mybatis_04.pojo.Role"/>
</typeAliases>

 

    方式二:使用package标签批量起别名,别名是MyBatis默认取好的,别名为类名首字母小写
           name:指定一个包结构,表示在该包下,所有的 POJO(domain)自动起别名
    
    缺点:容易出现重名,此时应当在不同包下的同名POJO类上使用注解 @Alias("别名")
<typeAliases>
    <package name="com.mybatis_04.pojo"/>
</typeAliases>

environments 运行环境

environments 可以配置多个数据库,一般配置一个即可。包含两个可配置元素:transactionManager和 dataSource

environment 作用:配置数据库

<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/>
        <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>
  • transactionManager

    在MyBatis 中,transactionManager 提供了两个实现类(JdbcTransaction 和 ManagedTransaction ),它们需要实现接口 Transaction 。

package org.apache.ibatis.transaction;

import java.sql.Connection;
import java.sql.SQLException;

public interface Transaction {
    Connection getConnection() throws SQLException;

    void commit() throws SQLException;

    void rollback() throws SQLException;

    void close() throws SQLException;

    Integer getTimeout() throws SQLException;
}

JDBC: 使用JdbcTransactionFactory生成的JdbcTransaction对象实现,它是以JDBC的方式对数据库的提交和回滚进行操作。

MANAGED: 使用ManagedTransactionFactory 生成的ManagedTransaction对象实现,MyBatis自己不负责控制事务,而是让容器来处理事务。在默认情况下,MyBatis会关闭连接。阻止默认关闭可以将closeConnection属性设置为false。

<transactionManager type="JDBC"/>

<transactionManager type="MANAGED"/>
  • dataSource

UNPOOLED: 采用非数据库池的管理方式,每次请求会打开一个新的数据库连接。速度慢,对简单应用程序是一个很好的选择。

POOLED: 采用连接池省去创建新的连接实例时必要的初始连接和认证时间。它还控制最大连接数,以避免过多连接导致系统瓶颈。

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

<dataSource type="UNPOOLED">

<dataSource type="POOLED">

<dataSource type="JNDI">

mapper 映射器

mapper:用来在核心配置文件中注册和加载映射文件

  • ① 使用 resource 属性,指定 mapper 文件路径引入映射器
<mappers>
    <mapper resource="com/mybatis_04/mapper/RoleMapper.xml"/>-->
</mappers>
  • ② 使用 package 属性批量注册,指向 mapper(dao) 的包,表示该包下所有的 mapper 映射文件自动注册
<mappers>
    <package name="com.mybatis_04.mapper"/>
</mappers>
  • ③ 使用 class 属性,找到 mapper(dao) 层接口的全路径
<mappers>
    <mapper class="com.mybatis_04.mapper.RoleMapper"/>
</mappers>
  • ④ 使用 url ,暂不赘述
     

 
完整的 mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="jdbc.properties" />
    
    <!-- 效果不明显,一般不用settings来配置 -->
    <!--settings>
        <setting name="" value=""/>
    </settings-->

    <!--
        <typeAliases>为mapper映射文件中的 POJO(domain)起别名

        方式一:为指定的类分别起别名,别名的命名由我们自己来决定
               type:要为哪个 POJO(domain)起别名,填写【包.类名称】
               alias:别名的名字
        方式二:使用package标签批量起别名,别名是MyBatis默认取好的,别名为类名(不区分大小写)
               name:指定一个包结构,表示在该包下,所有的 POJO(domain)自动起好了别名
               
        【总结】 在实际项目中,有需要起别名则用批量方式取别名
    -->
    <typeAliases>
        <!--<typeAlias alias="role" type="com.mybatis_04.pojo.Role"/>-->
        <!--<package name="com.mybatis_04.pojo"/>-->
    </typeAliases>
    <environments default="development">
    <environment id="development">
        <!--
            JDBC:使用JdbcTransactionFactory生成的JdbcTransaction对象实现,MyBatis是以JDBC的方式对数据库的提交和回滚进行操作。
            
            MANAGED: ManagedTransactionFactory 生成的ManagedTransaction对象实现的,MyBatis自己不负责控制事务,而是让容器来
                     处理事务。在默认情况下,MyBatis会关闭连接。阻止默认关闭可以将closeConnection属性设置为false-->
        <transactionManager type="JDBC"/>
        
        <!--
            UNPOOLED:采用非数据库池的管理方式,每次请求会打开一个新的数据库连接。速度慢,对简单应用程序是一个很好的选择。

            POOLED:采用连接池省去创建新的连接实例时必要的初始连接和认证时间。它还控制最大连接数,以避免过多连接导致系统瓶颈。

            JNDI:这个数据源的实现是为了使用如Spring或应用服务器这类的容器。容器可以集中或在外部配置数据源,然后放置一个JNDI上下文
                  引用,MyBatis通过JNDI获取数据源。
        -->
        <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>
    <!--
    mapper:用来在核心配置文件中注册和加载映射文件
    方式一:使用resource属性,指定mapper文件路径引入映射器
    方式二:使用package属性批量注册,指向mapper(dao)的包,表示该包下所有的mapper映射文件自动注册
    方式三:使用class属性,找到mapper(dao)层接口的全路径
    方法四:使用url,暂不赘述

    总结:【在实际项目中,一定使用批量注册mapper映射文件】
    -->
    <mappers>
        <!--<mapper resource="com/mybatis_04/mapper/RoleMapper.xml"/>-->
        <package name="com.mybatis_04.mapper"/>
        <!--<mapper class="com.mybatis_04.mapper.RoleMapper"/>-->
    </mappers>
</configuration>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值