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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</dataSource>
</environment>
</environments>
<!--每个mapper.xml都需要在mybatis核心配置中注册-->
<mappers>
<mapper resource="dao/UserMapper.xml"/>
</mappers>
</configuration>
优化属性
这些属性可以在外部进行配置,并可以进行动态替换。
编写配置文件
db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=123
在核心配置文件中引入
<properties resource="db.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>
或
<properties resource="db.properties">
<property name="username" value="root"/>
<property name="password" value="123"/>
...
</properties>
优化 使用类型别名
类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。
方式一:
<typeAliases>
<typeAlias type="entity.User" alias="User"/>
</typeAliases>
方式二:指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,默认别名就是类名(首字母小写),若有注解,则别名为其注解值。
<typeAliases>
<package name="entity"/>
</typeAliases>
@Alias("user")
public class User {
......
}
映射器
注册绑定映射文件
方式一:类路径的资源引用
<!--每个mapper.xml都需要在mybatis核心配置中注册-->
<mappers>
<mapper resource="dao/UserMapper.xml"/>
</mappers>
方式二:映射器接口实现类
<mappers>
<!--<mapper resource="dao/UserMapper.xml"/>-->
<mapper class="dao.UserMapper"/>
</mappers>
方式三:将包内的映射器接口实现全部注册为映射器
<mappers>
<!--<mapper resource="dao/UserMapper.xml"/>-->
<!--<mapper class="dao.UserMapper"/>-->
<package name="dao"/>
</mappers>
注意:方式二和三需要满足以下条件:
- 接口和对应的mapper配置文件必须同名
- 接口和对应的mapper配置文件必须在同一包下