文章目录
1、environment:设置数据库环境
<environments/>
用于设置连接数据库的环境- 可以有很多个
<environment/>
,但只能用其中一个作为项目的数据库连接,这个连接的id需要卸载<environments/>
的default参数中。
<!--设置连接数据库的环境-->
<environments default="development">
<!--每一个environment都是具体连接数据库的环境-->
<!--
一个项目中只会用一个环境,default用于使用默认使用的环境:
id:表示连接数据库的环境的唯一标识 不能重复
-->
<environment id="development">
2、transactionManager:设置事务管理方式
属性:type="JDBC/MANAGED"
- JDBC: 在当前环境中,执行sql时,使用的是jdbc原生的事务管理方式,需要手动的提交和回滚事务
- MANAGED:被管理,例如Spring
<transactionManager type="JDBC"/>
3、${} + properties:动态写入信息
如果想动态地写数据库驱动的信息,可以新建一个配置文件(jdbc.properties),文件类型为resource bundle。
(1)在jdbc.properties
文件中,以字符串形式定义各个属性。
⚠️ 每个属性最好以有意义的标识作前缀,如jdbc.xxx
。
(2)在mybatis-config.xml
文件中,添加<properties>
元素,将资源文件引入配置文件。
<properties resource="jdbc.properties"></properties>
(3)在dataSource中,使用${xxx}
格式,引入对应的属性
<!-- dataSource:配置数据源
属性"
type:设置数据源的类型
type="POOLED/UNPOOLED/JNDI"
POOLED:表示使用数据库连接池缓存数据库连接
UNPOOLED:表示不实用数据库连接池
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>
4、typeAlias/package:设置某个类型的别名
typeAlias属性:
- type: 设置需要设置别名的类型
- alias: 设置某个类型的别名,如果不设置该属性,那么该类型拥有默认的类名,且不区分大小写
<typeAliases>
<typeAlias type="com.atguigu.mybatis.pojo.User" alias="User"></typeAlias>
</typeAliases>
即,使用User
作为com.atguigu.mybatis.pojo.User
的别名,可以在mapper的配置文件中直接使用User来代表这个类。
也可以使用<package>
来表示,以该包为单位,将包下所有的类型设置默认的类型别名且不区分大小写。
<typeAliases>
<!-- 以包为单位,将包下所有的类型设置默认的类型别名且不区分大小写-->
<package name="com.atguigu.mybatis.pojo"/>
</typeAliases>
5、mappers:引入映射文件
以包为单位引入映射文件,要求:
1。 mapper接口所在的包要和映射文件所在的包一致
2。 mapper接口要和映射文件的名字一致
⚠️ com.atguigu.mybatis.mapper
创建包时要用/分隔(new package时,名称要写成com/atguigu/mybatis/mapper
),这样才是目录,否则这整一个就只是文件夹名字而已,就不能正确映射,会报错:BindingException: Type interface com.atguigu.mybatis.mapper.UserMapper is not known to the MapperRegistry.
。
<!--引入映射文件-->
<mappers>
<!-- <mapper resource="mappers/UserMapper.xml"/>-->
<package name="com.atguigu.mybatis.mapper"/>
</mappers>
配置文件注释汇总
<?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>
<!-- MyBatis核心配置文件,标签的顺序
properties?,settings?,typeAliases?,typeHandlers?,
objectFactory?,objectWrapperFactory?,reflectorFactory?,
plugins?,environments?,databaseIdProvider?,mappers?-->
<properties resource="jdbc.properties"></properties>
<!-- 设置类型别名,大小写不敏感。
如果不设置alias,则默认为类名(大小写不敏感)-->
<typeAliases>
<!--
typeAlias: 设置某个类型的别名
属性:
type 设置需要设置别名的类型
alias 设置某个类型的别名,如果不设置该属性,那么该类型拥有默认的类名,且不区分大小写
-->
<typeAlias type="com.atguigu.mybatis.pojo.User" alias="User"></typeAlias>
<!-- 以包为单位,将包下所有的类型设置默认的类型别名且不区分大小写-->
<package name="com.atguigu.mybatis.pojo"/>
</typeAliases>
<!--设置连接数据库的环境--> <environments default="development">
<!--每一个environment都是具体连接数据库的环境-->
<!--
一个项目中只会用一个环境,default用于使用默认使用的环境:
id:表示连接数据库的环境的唯一标识 不能重复
-->
<environment id="development">
<!--
transactionmanager:设置事务管理方式
属性:
type="JDBC/MANAGED"
JDBC: 在当前环境中,执行sql时,使用的时jdbc原声的事务管理方式,需要手动的提交和回滚事务
MANAGED:被管理,例如Spring
-->
<transactionManager type="JDBC"/>
<!-- dataSource:配置数据源
属性"
type:设置数据源的类型
type=""
POOLED:表示使用数据库连接池缓存数据库连接
UNPOOLED:表示不实用数据库连接池
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>
<!--引入映射文件-->
<mappers>
<!-- <mapper resource="mappers/UserMapper.xml"/>-->
<!-- BindingException: Type interface com.atguigu.mybatis.mapper.UserMapper is not known to the MapperRegistry.
没有成功建立映射关系
以包为单位引入映射文件,要求:
1。 mapper接口所在的包要和映射文件所在的包一致
2。 mapper接口要和映射文件的名字一致-->
<!-- com.atguigu.mybatis.mapper创建包时要用/分隔,这样才是目录,否则这整一个就只是文件夹名字而已-->
<package name="com.atguigu.mybatis.mapper"/>
</mappers>
</configuration>