前言:本篇学习自:
官方文档:https://mybatis.org/mybatis-3/zh/index.html
视频教程:https://www.bilibili.com/video/BV1NE411Q7Nx?p=4
略有心得,便记录下此文
文章目录
mybatis的核心配置文件中,可配置如下标签来管理mybatis的配置与属性
如图:
一、环境配置(environments)
MyBatis可配置适应多种环境,虽然可以配置多个环境,但每个SqlSessionFactor实例只能选中一种环境。
不同环境通过environment的id属性标识,当前环境通过environments的default属性标识
1、两种类型的事务管理器(transactionManager)
在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"):
- JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。
- MANAGED – 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接。然而一些容器并不希望连接被关闭,因此需要将 closeConnection 属性设置为 false 来阻止默认的关闭行为。
2、三种数据源(dataSource)
- UNPOOLED– 这个数据源的实现会每次请求时打开和关闭连接。虽然有点慢,但对那些数据库连接可用性要求不高的简单应用程序来说,是一个很好的选择。 性能表现则依赖于使用的数据库,对某些数据库来说,使用连接池并不重要,这个配置就很适合这种情形。
- POOLED– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求。
- JNDI – 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。
二、属性(properties)
这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。例如:
db.properties文件
driver = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/mybatisstudy?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username = root
password =
设置好的属性可以在整个配置文件中用来替换需要动态配置的属性值。比如:
<configuration>
<!--引入外部配置文件,可直接根据键取属性值-->
<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>
</configuration>
注:也可单独在properties属性中设置属性与属性值
且properties的外部文件的属性优先级高与properties内部property的属性的优先级。
三、类型别名(typeAliases)
1、类别名
类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。
2、包别名
每一个在起了别名的包中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名,例如 Author 类的别名就是 author
com.zlc.pojo下的User类,因指定了包别名,则此User类的别名默认user
最佳实践:Java Bean较少时可采用起类别名的方式,二较多时则可采用包别名的方式。
类别名可直接指定自定义别名。
包别名需用@Alias注解的方式自定义别名,否则默认会使用 Bean 的首字母小写的非限定类名来作为它的别名.
@Alias("myUser")
public class User {
...
}
也有许多内建的类型别名,具体参考官方文档即可
四、设置(settings)
这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。
官方文档上有许多配置属性,可按需查看与使用
3个入门阶段可能会用到的配置属性
五、其他配置
- typeHandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件):如MyBatis-Plus
六、映射器(mappers)
映射器告诉 MyBatis 到哪里去找映射文件。
建议使用第一种方式: