一、properties(属性)
作用:可以引入外部文件中的属性
myProperties.properties
username = root
password = 123456
mybatis-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="myProperties.properties"></properties>
<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/test"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
注:可以在properties标签下使用property标签自定义属性。
二、settings(设置)
作用:设置Mybatis,如配置缓存、懒加载等。后面用到时会具体说明各个设置的作用。
如开启驼峰命名,Mybatis自动将读取到的字段名修改成驼峰命名,如User表中的AAA_BBB字段名修改为aAABBB。
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
三、typeAliases(类型别名)
作用:在xml文件中,采用别名代替全类名,减少许多冗余代码。
(1)给类启用别名,如不指定alias,则别名默认为类名小写。启用别名后,也可在对应类上加注解@Alias(“user”)表示别名自定义为user。
<typeAliases>
<typeAlias type="com.wsh.pojo.User"></typeAlias>
</typeAliases>
(2)给包下所有类起别名(包括在该包下的所有子包中的类),默认别名为类名小写。为解决不同子包下的类名冲突,可用@Alias(“user”)自定义别名。
<typeAliases>
<package name="com.wsh.pojo"/>
</typeAliases>
(3)Mybatis给基本数据类型及复杂数据类型起了别名。
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string String
byte Byte
long Long
short Short
int Integer
integer Integer
double Double
float Float
boolean Boolean
date Date
decimal BigDecimal
bigdecimal BigDecimal
object Object
map Map
hashmap HashMap
list List
arraylist ArrayList
collection Collection
iterator Iterator
注:使用别名时不区分大小写。
四、typeHandlers(类型处理器)
作用:用于JAVA数据类型和数据库数据类型之间的转换。
五、plugins(插件)
作用:可以拦截Mybatis四大对象(StatementHandler、ParameterHandler、Executor、ResultSetHandler)中的某个对象的某个方法,以此实现自定义功能。
六、environments(环境配置)
作用:配置数据源、事务管理器、选取Mybatis运行的环境、
<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/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
注:environments标签中的default可以指定使用哪个环境。
七、databaseIdProvider(数据库厂商标识)
作用:获取当前环境下的数据库厂商表示,如MySQL、Oracle等。还可以给获取到数据库厂商标识起别名。
mybatis-config.xml文件
<databaseIdProvider type="DB_VENDOR">
<property name="MySQL" value="abc"/>
</databaseIdProvider>
UserMapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wsh.mapper.UserMapper">
<select id="selectUserById" parameterType="Long" resultType="User" databaseId="abc">
select * from user where id = #{id}
</select>
</mapper>
八、mappers(映射器)
作用:将mapper的xml文件注册到全局配置文件中,配置对象在创建时会读取该文件中的SQL语句等信息。
<!--目前只打算用这种注册方式,官方文档还有3种-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
九、配置文件的标签需要严格按照文章介绍标签的顺序从上到下来使用。