2023.10.29
MyBatis中有个核心配置文件,文件名为:mybatis-config.xml,如下图。本章学习这个文件的配置及相关含义。
- configuration:根标签,表示配置信息。
- environments:环境(多个),mybatis的环境可以配置多个数据源。
- environment:具体的环境配置(主要包括:事务管理器的配置 + 数据源的配置)
- id:给当前环境一个唯一标识,该标识用在environments的default后面,用来指定默认环境的选择。
- transactionManager:配置事务管理器
- type属性:指定事务管理器具体使用什么方式,可选值包括两个:
- JDBC:使用JDBC原生的事务管理机制。即不使用自动提交机制,需手动提交
- MANAGED:交给其它容器来管理事务,比如WebLogic、JBOSS等。如果没有管理事务的容器,则没有事务。没有事务的含义:只要执行一条DML语句,则提交一次。(自动提交)
- type属性:指定事务管理器具体使用什么方式,可选值包括两个:
- dataSource:指定数据源
- type属性:用来指定具体使用的数据库连接池的策略,可选值包括三个:
- UNPOOLED:采用传统的获取连接的方式,虽然也实现Javax.sql.DataSource接口,但是并没有使用池的思想。
-
property可以是:
- driver 这是 JDBC 驱动的 Java 类全限定名。
- url 这是数据库的 JDBC URL 地址。
- username 登录数据库的用户名。
- password 登录数据库的密码。
- defaultTransactionIsolationLevel 默认的连接事务隔离级别。
- defaultNetworkTimeout 等待数据库操作完成的默认网络超时时间
-
- POOLED:采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现。
-
property可以是(除了包含UNPOOLED中之外):
- poolMaximumActiveConnections 在任意时间可存在的活动(正在使用)连接数量,默认值:10
- poolMaximumIdleConnections 任意时间可能存在的空闲连接数。
- ......
-
- JNDI:采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到DataSource是不一样。如果不是web或者maven的war工程,JNDI是不能使用的。
- property可以是(最多只包含以下两个属性):
- initial_context 这个属性用来在 InitialContext 中寻找上下文(即,initialContext.lookup(initial_context))这是个可选属性,如果忽略,那么将会直接从 InitialContext 中寻找 data_source 属性。
- data_source 这是引用数据源实例位置的上下文路径。提供了 initial_context 配置时会在其返回的上下文中进行查找,没有提供时则直接在 InitialContext 中查找。
- property可以是(最多只包含以下两个属性):
- UNPOOLED:采用传统的获取连接的方式,虽然也实现Javax.sql.DataSource接口,但是并没有使用池的思想。
- mappers:在mappers标签中可以配置多个sql映射文件的路径。
- mapper:配置某个sql映射文件的路径
- type属性:用来指定具体使用的数据库连接池的策略,可选值包括三个: