配置
3.1、核心配置文件
MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:
-
configuration(配置)
-
properties(属性)
-
settings(设置)
-
typeAliases(类型别名)
-
typeHandlers(类型处理器)
-
objectFactory(对象工厂)
-
plugins(插件)
-
environments(环境配置)
-
environment(环境变量)
-
transactionManager(事务管理器)
-
dataSource(数据源)
-
-
-
databaseIdProvider(数据库厂商标识)
-
mappers(映射器)
-
3.2、环境配置(environments)
Mybatis可以配置多套环境
不过要记住,虽然能配置多套环境,但是每个SQLSessionFactory只能选择一种进行实例化
<environments default="test">
<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/shop?userSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
上面的代码中就是配置了两套的数据库配置,可是根据ID自由切换,需要使用的配置。
Mybatis默认使用的事务管理器是JDBC,连接池:POOLED
3.3、属性(properties)
我们可以通过使用properties来实现引用配置文件
这些属性都是可以外部配置并且可以灵活切换的,可以在之前的配置文件中配置,也可以使用properties来进行传递。
1、编写一个配置文件:db.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/shop?userSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT
username=root
password=123456
2、下面就是要在核心配置文件中来引入刚刚咱们创建的配置文件中的数据
使用properties标签,注意------>标签的位置要写在<environments>标签的上面,这是Mybatis的规定,不然会报错。
<?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="db.properties"></properties>
<environments default="test">
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 每一个Mapper.xml文件都需要在Mybatis核心配置文件中注册!!-->
<mappers>
<mapper resource="com/ajie/demo/mapper/UserMapper.xml"/>
</mappers>
</configuration>
这样就可以拿到db.properties配置文件中的值。
3.4、类型别名(typeAliases)
在我们没有为实体类起别名的时候,我们在UserMapper.xml中使用返回值类型时,都要写一连串的地址,非常的不方便。比如:
<!-- select查询全部用户-->
<select id="getUserList" resultType="com.ajie.demo.dao.User">
select * from shop.mtsuser;
</select>
在核心配置文件中可以使用typeAliases来为实体类起别名:
方式一:
<!-- 给实体类起别名-->
<typeAliases>
<typeAlias type="com.ajie.demo.pojo.User" alias="User"/>
</typeAliases>
方式二:
<!-- 起别名方式二-->
<typeAliases>
<package name="com.ajie.demo.pojo"/>
</typeAliases>
区别:方式一可以自定义实体类的名字,但是当实体类的数量较多时不建议使用;
方式二定义实体类的名字是实体类的名字的小写,比如上面的别名为user,该方法适用于当实体类的数量较多的时候。