属性(properties)
在前面的例子中,我们直接在mybatis-config.xml文件里面写死了用户名、密码、url等属性。
<?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>
<!--环境的配置,默认是development,可以配置多个-->
<environments default="development">
<!--development环境配置-->
<environment id="development">
<!--事务管理,默认用jdbc的事务管理-->
<transactionManager type="JDBC"/>
<!--数据源配置-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="pan"/>
</dataSource>
</environment>
</environments>
<!--配置mapper.xml文件,进行注册-->
<mappers>
<mapper resource="com/mybatis/mapper/UserMapper.xml"/>
</mappers>
</configuration>
现在进行优化,将这些用标签<property>
包裹起来的属性,放到外部的配置文件中,然后在mybatis-config.xml文件引入外部配置文件。
- 新建一个外部配置文件application.properties,内容如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username=root
password=pan
- 修改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="application.properties"/>
<!--环境的配置,默认是development,可以配置多个-->
<environments default="development">
<!--development环境配置-->
<environment id="development">
<!--事务管理,默认用jdbc的事务管理-->
<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文件,进行注册-->
<mappers>
<mapper resource="com/mybatis/mapper/UserMapper.xml"/>
</mappers>
</configuration>
类型别名(typeAliases)
- 方式一:直接在mybatis-config.xml中增加
<typeAliases>
<typeAlias type="com.mybatis.entity" alias="User"/>
</typeAliases>
之后在mapper.xml中,resultType的值,则可以直接使用User。
- 方式二:在mybatis-config.xml中指定包名,然后在实体类上增加注解,自定义类名
<typeAliases>
<package name="com.mybatis.entity"/>
</typeAliases>
实体类增加注解,后面在mapper.xml中,resultType的值,可以直接使用注解的值。
@Alias("hello")
public class User {
private int id;
private String name;
private String passWord;
}
设置(settings)
在mybatis-config.xml中,可以进行一些设置,改变mybatis的运行时行为。主要的设置有:
<!--一些基础设置-->
<settings>
<setting name="cacheEnabled" value="true"/> <!--常用,开启缓存-->
<setting name="lazyLoadingEnabled" value="true"/> <!--常用,懒加载-->
<setting name="multipleResultSetsEnabled" value="true"/>
<setting name="useColumnLabel" value="true"/> <!--常用,自动生成列-->
<setting name="useGeneratedKeys" value="false"/> <!--有时用,自动生成主键-->
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25"/>
<setting name="defaultFetchSize" value="100"/>
<setting name="safeRowBoundsEnabled" value="false"/>
<setting name="mapUnderscoreToCamelCase" value="false"/> <!--常用,驼峰转换-->
<setting name="logImpl" value="STDOUT_LOGGING"/> <!--常用,日志打印-->
<setting name="localCacheScope" value="SESSION"/>
<setting name="jdbcTypeForNull" value="OTHER"/>
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
在实际使用时,并不需要都加进去,只要按自己所需,加上常用的即可。
映射器(mappers)
- 方式一
<!--配置mapper.xml文件,进行注册-->
<mappers>
<mapper resource="com/mybatis/mapper/UserMapper.xml"/>
</mappers>
- 方式二
使用class文件绑定注册
<!--配置mapper.xml文件,进行注册-->
<mappers>
<mapper class="com.mybatis.mapper.UserMapper"/>
</mappers>
注意:(1)接口与其Mapper配置文件必须同名(2)接口与其Mapper配置文件必须在同一个包下
- 方式三
使用扫描包进行注入绑定
<!--配置mapper.xml文件,进行注册-->
<mappers>
<package class="com.mybatis.mapper"/>
</mappers>
注意:(1)接口与其Mapper配置文件必须同名(2)接口与其Mapper配置文件必须在同一个包下