要点
属性(properties)
这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。
先创建db.properties文件
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai
username=root
password=123456
然后在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="db.properties"></properties>
<environments default="development">
<environment id="development">
<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>
<mappers>
<mapper resource="com/mybatis/DAO/PeopleMapper.xml"/>
</mappers>
</configuration>
properties中的resource数据优先,如果在标签中添加同名属性,会优先取resource中的值
环境配置(environments)
不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。每个数据库对应一个 SqlSessionFactory 实例
注意一些关键点:
默认使用的环境 ID(比如:default="development")。
每个 environment 元素定义的环境 ID(比如:id="development")。
事务管理器的配置(比如:type="JDBC")。
数据源的配置(比如:type="POOLED")。
默认环境和环境 ID 顾名思义。 环境可以随意命名,但务必保证默认的环境 ID 要匹配其中一个环境 ID。
- 注意
The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".
即configuration中的标签须按顺序
别名(typeAliases)
- 第一种
<typeAliases>
<typeAlias type="com.mybatis.pojo.People" alias="people"/>
</typeAliases>
所有需要写成com.mybatis.pojo.People的地方,都可以写别名为people。
- 第二种
<typeAliases>
<package name="com.mybatis.pojo"/>
</typeAliases>
所有需要写成com.mybatis.pojo.People的地方,都可以写成实体类的类名People,或者这个包下的其他类。
如果不想写类名就在Java类上面加注解@Alias(String value)
@Alias("P")
public class People {}
所有需要写成com.mybatis.pojo.People的地方,都可以写成P
- 所有别名不区分大小写
设置(settings)
插件(plugins)
映射器(mappers)
- 告诉 MyBatis 到哪里去找映射文件。 你可以使用相对于类路径的资源引用、或类名和包名 使用相对于类路径的资源引用
<mappers>
<mapper resource="com/mybatis/DAO/AuthorMapper.xml"/>
</mappers>
使用映射器接口实现类的完全限定类名
- 必须和java接口在同一个包下
- 必须要java接口和Mapper.xml名字要一样
<mappers>
<mapper class="org.mybatis.builder.BlogMapper"/>
</mappers>
将包内的映射器接口实现全部注册为映射器
- 必须和java接口在同一个包下
- 必须要java接口和Mapper.xml名字要一样
<mappers>
<package name="org.mybatis.builder"/>
</mappers>