尚硅谷MyBatis4_核心配置文件详解

<environments>

可以配置多个连接数据库的环境

default

default 属性指明了默认使用的环境 id

多个 environment 示例

<configuration>
    <!--设置连接数据库的环境-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url"
                          value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>

	<environment id="test"></environment>
    </environments>
    <!--引入映射文件-->
    <mappers>
        <mapper resource="mappers/UserMapper.xml"/>
    </mappers>
</configuration>

<environment>

配置某个具体的环境

id

表示连接数据库的环境的唯一标识,不能重复

<transactionManager>

设置事务管理方式

type

  • JDBC: 表示当前环境中,执行 SQL 时,使用的是 JDBC 中原生的事务管理方式,即事务的提交或者回滚需要手动处理
  • MANAGED:设置事务被管理,如通过 Spring

<dataSource>

配置数据源

type

  • POOLED:表示使用数据库连接池,即会将创建的连接进行缓存,下次使用可以从 缓存中直接获取,不需要重新创建
  • UNPOOLED:表示不使用数据库连接池缓存数据库连接,每次使用连接都需要重新创建
  • JNDI:表示使用上下文中的数据源

<property>

设置连接数据库驱动、链接地址、用户名、密码等

在这里是直接指定了具体的内容:

<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url"
          value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>

也可以将这些值写在配置文件里,比如在 jdbc.properties 中:

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

使用 jdbc.作为前缀是因为可能有多个连接,用前缀加以区分

但是写好配置文件后,为了让 mybatis-config 能够读取到,还需要在 mybatis-config.xml 中引入配置文件:

<properties resource="jdbc.properties"/>

然后使用 ${属性名},就可以读取到指定的配置内容:

<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>

<typeAliases>

MyBatis 核心配置文件的标签顺序

properties、settings、typeAliases、typeHandlers、objectFactory、objectwrapperFactory、reflectorFactory、plugins、environments、databaseIdProvider、mappers

所以 typeAliases 需要放在 properties 之后

typeAliases 包含多个具体类型的别名

<typeAlias>

用于设置某个具体的类型的别名

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

设置了全类名为 com.atguigu.mybatis.pojo.User 的别名为 User,这样在 mapper.xml 中就可以使用别名来替换全类名,注意类型别名不区分大小写

<!--User getUserById();-->
<select id="getUserById" resultType="User">
    select *
    from t_user
    where id = 3
</select>
<!--List<User> getAllUser();-->
<select id="getAllUser" resultType="User">
    select *
    from t_user
</select>

在 typeAlias 中 type 是必须要指定的,且 tyep 为全类名,而 alias 可以不指定,不指定的话就会采用默认的别名,即类名,且不区分大小写

<package>

以包为单位,将包下所有的类型设置默认的类型别名,这个更常用点

<typeAliases>
    <package name="com.atguigu.mybatis.pojo"/>
</typeAliases>

<mappers>

主要用来引入映射文件,可以以包为单位引入映射文件

<mappers>
    <package name="com.atguigu.mybatis.mapper"/>
</mappers>

但是这么做需要符合两个条件:

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

image

并且在 resources 中创建包的方式为:

image

目录中间要用斜杠隔开

posted @ 2023-03-19 16:22  ShaunY  阅读(13)  评论(0编辑  收藏  举报