文章目录
- 一.Mybatis配置之属性优化
- 1.1 配置解析
- 1.2 默认配置环境
- 1.2.1 事务管理器(transactionManager)了解即可。
- 1.2.2 数据源(dataSource)
- 1.3 属性(properties)
一.Mybatis配置之属性优化
1.1 配置解析
核心配置文件:
mybatis-confing.xml
配置如下:
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
新建项目,新建配置文件:mybatis-confing.xml
1.2 默认配置环境
主要:
1.记住默认的事务管理器:JDBC
2.默认的数据库连接池:POOLED
3.会更改配置环境
MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实情况下有多种理由需要这么做。
不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
我们可以写多套环境在environments里,但是只能启用一个,在environments的default="XX"代表启用哪套环境。
案例如下:
<environments default="test">
<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?useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
1.2.1 事务管理器(transactionManager)了解即可。
- JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。
- MANAGED – 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接。然而一些容器并不希望连接被关闭,因此需要将 closeConnection 属性设置为 false 来阻止默认的关闭行为。
注意: 如果你正在使用 Spring + MyBatis,则没有必要配置事务管理器,因为 Spring 模块会使用自带的管理器来覆盖前面的配置。
1.2.2 数据源(dataSource)
数据库连接池:用完可以回收。
默认连接池为:POOLED
Mybatis其实有三种内建的数据源类型(也就是 type=“[UNPOOLED|POOLED|JNDI]”):
-
UNPOOLED– 这个数据源的实现会每次请求时打开和关闭连接。
-
POOLED– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。
-
JNDI – 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。
1.3 属性(properties)
这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。
可以通过 properties 属性来实现引用配置文件。我们创建一个db.properties。
里面代码如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8
username=root
password=123456
在 xml 中,所的标签都可以规定其顺序
在mybatis-config.xml里引入外部配置文件:
<properties resource="db.properties">
</properties>
更改数据源dataSource引入方式:
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
运行结果: