3. 核心配置文件详解

发布时间 2023-06-04 16:54:56作者: 爱敲代码的小北
<?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">

    </properties>

    <typeAliases>
        <package name="com.north.mybatis.pojo"/>
    </typeAliases>
    <!--设置连接数据库的环境-->
    <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>
    <!--引入映射文件-->
    <mappers>
        <!--        <mapper resource="mappers/UserMapper.xml"></mapper>-->
        <package name="com.north.mybatis.mapper"/>
    </mappers>
</configuration>

1. configuration

configuration : 根标签 , 表示配置信息

2. environments

​​image​​

  • environments : 配置多个连接数据库的环境 , 以 "s" 结尾表示复数 , 也就是说 mybatis 的环境可以配置多个数据源

  • default 属性 : 表示默认使用的环境 , default 后面填写的是**environment ​**的 id , ​**default的值只需要和environment的id值一致即可**

  • environment : 配置具体的环境(**主要包括 : 事务管理器的配置 + 数据源的配置**)

    • id:表示连接数据库的环境的唯一标识,不能重复 , 该表示用在 environments 的 default 后面 ,用来指定默认环境的选择

  • transactionManager : 配置事务管理器

    • type 属性:指定事务管理器具体使用什么方式,可选值包括两个

      • JDBC:使用 JDBC 原生的事务管理机制。底层原理:事务开启 conn.setAutoCommit(false); ...处理业务...事务提交 conn.commit(); 执行 SQL 时,使用的是 JDBC 中原生的事务管理方式,事务的提交或回滚需要手动处理
      • MANAGED:交给其它容器来管理事务,比如 WebLogic、JBOSS 等。如果没有管理事务的容器,则没有事务。没有事务的含义:只要执行一条 DML 语句,则提交一次。
  • dataSource : 指定数据源

    • type : 设置数据源的类型 (**type="POOLED|UNPOOLED|JNDI"**)

      • POOLED:表示使用数据库连接池缓存数据库连接
      • UNPOOLED:表示不使用数据库连接池
      • JNDI:表示使用上下文中的数据源

  • property

    <!--设置连接数据库的驱动-->
    <property name="driver" value="${jdbc.driver}"/>
    <!--设置连接数据库的连接地址-->
    <property name="url" value="${jdbc.url}"/>
    <!--设置连接数据库的用户名-->
    <property name="username" value="${jdbc.username}"/>
    <!--设置连接数据库的密码-->
    <property name="password" value="${jdbc.password}"/>
    

3. properties

	<!--引入properties文件-->
	<properties resource="jdbc.properties" />

image

image

4. typeAliases

  • typeAlias:设置某个类型的别名

  • 属性 :

    • type:设置需要设置别名的类型
    • alias:设置某个类型的别名,若不设置该属性,那么该类型拥有默认的别名,即类名且不区分大小写
<!--设置类型别名-->
<typeAliases>
<!--
typeAlias:设置某个类型的别名
属性:
type:设置需要设置别名的类型
alias:设置某个类型的别名,若不设置该属性,那么该类型拥有默认的别名,即类名且不区分大小写
-->
<!--<typeAlias type="com.atguigu.mybatis.pojo.User"></typeAlias>-->
<!--以包为单位,将包下所有的类型设置默认的类型别名,即类名且不区分大小写-->
	<package name="com.atguigu.mybatis.pojo"/>
</typeAliases>

5. mappers

image

  • mappers : 引入映射文件 , 在 mappers 标签中可以配置多个 SQL 映射文件的路径

  • mapper : 配置某个 sql 映射文件的路径

  • 以包为单位引入映射文件的要求 :

    1. mapper 接口所在的包要和映射文件所在的包一致
    2. mapper 接口要和映射文件的名字一致