MyBatis入门 (三) 配置优化
MyBatis入门(三)
配置之属性优化
1.核心配置文件
- mybatis-config.xml(官方取的名字,可自定义)
- 属性(properties)掌握
- 设置(settings)掌握
- 类型别名(typeAliases)完全掌握
- 其余了解
2.环境配置(environments)
MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中,
不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
mybatis默认事物管理器是JDBC,默认是有连接池(POOLED)
3.属性(properties)
我们可以通过properties引用配置文件
<properties resource="db.properties"> </properties>
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSl=trueuseUnicode=truecharacterEncoding=UTF-8
username=root
password=root
@Test
public void test(){
//第一步,获得SqlSession对象
SqlSession sqlSession = MyBatisUtils.getSqlSession();
//方式一getMapper:执行SQL
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
如果核心配置文件和外部properties都写了相同属性,优先外部使用properties里的。
配置之别名优化
类型别名(typeAliases)
类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写
个人喜欢写全名,排错的时候方便找,看个人喜好吧
- 给实体类起别名
<typeAliases>
<typeAlias alias="User" type="com.godwin.pojo.User"/>
</typeAliases>
<select id="getUserList" resultType="User">
select * from mybatis.user;
</select>
2.给包起别名
<typeAliases>
<package name="com.godwin.pojo"/>
</typeAliases>
//官方建议用小写
<select id="getUserList" resultType="user">
select * from mybatis.user;
</select>
实体类比较少,使用第一种
实体类比较多,使用第二种
第二种可以在类上设置别名
配置之设置优化
设置(setting)
**这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。
-
cacheEnabled 默认:true
全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。
-
lazyLoadingEnabled 默认:true
延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置
fetchType
属性来覆盖该项的开关状态。true -
useGeneratedKeys 默认:false
允许 JDBC 支持自动生成主键,需要数据库驱动支持。如果设置为 true,将强制使用自动生成主键。尽管一些数据库驱动不支持此特性,但仍可正常工作(如 Derby)。
-
mapUnderscoreToCamelCase 默认:false
是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。
-
logImpl(重要) 默认:未设置
有效值:SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING
指定 MyBatis 所用日志的具体实现,未指定时将自动查找。
映射器
MapperRegistry:注册绑定我们的Mapper文件;
方式一:推荐使用
<!-- 使用相对于类路径的资源引用 -->
<mappers>
<mapper resource="com/godwin/mapper/UserMapper.xml"/>
</mappers>
方式二:
<mappers>
<mapper class="com.godwin.mapper.UserMapper"/>
</mappers>
注意点:
- 接口和Mapper配置文件必须同名
- 接口和Mapper配置文件必须在同一个包下
方式三:
<mappers>
<package name="com.godwin.mapper"/>
</mappers>
注意点:
- 接口和Mapper配置文件必须同名
- 接口和Mapper配置文件必须在同一个包下
其他配置
了解,一般用不到,需要时再回来查看
- 类处理器(typeHandlers)
- 对象工厂(objectFactory)
- 插件 (plugins)