mybatis全局配置文件
一、properties标签
作用:mybatis可以使用properties来引入外部properties配置文件的内容
属性:
- resource:引入类路径下的资源
- url:引入网络或磁盘路径下的资源
二、settings标签
作用用来设置每一个设置项。包含很多setting
setting属性
- name:设置参数
- value:设置项取值
设置参数 | 描述 | 有效值 | 默认值 |
---|---|---|---|
cacheEnabled | 该配置影响所有映射器中配置的缓存的全局开关(二级缓存) | true|false | true |
lazyLoadingEnabled | 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态 | true|false | false |
useColumn | 使用列标签代替列名。不同驱动在这方面会有不同的表现。 | true|false | true |
defaultStatementTimeout | 设置超时时间,它决定驱动等待数据库响应的秒数 | 任何正的整型数据 | null |
mapUnderscoreToCamelCase | 是否开启自动驼峰命名规则映射。即从经典数据库列名A_COLUMN到经典java属性名aColumn的关系映射 | true|false | false |
三、typeAliases
- 作用: 别名处理器,可以为我们的java类型起别名。其下有typeAlias标签和package标签。别名不区分大小写。
- typeAlias标签
- type:指定要起别名的类的全类名;默认就是类型小写。
- alias:指定新的别名
- package标签为某个包下的所有类批量起别名。
- name:指定包名(为当前包及下面的子包中的每一个类都起一个默认别名)
- 注:在批量起别名的情况下,如果类型重复,可以使用@Alias注解可以指定新的别名
四、typeHandlers标签
作用:将java中的数据类型与数据库的数据类型进行转换。
五、plugins标签
作用:使用插件可以拦截方法
插件如:
- Executor(update,query,flushStatements,commit,rollback,getTransaction,close,isClosed)
- ParameterHandler(getParameterObject,setParameters)
- ResultSetHandler(handleResultSets,handleOutputParameters)
- StatementHandler(prepare,parameterize,batch,update,query)
六、environments标签
- default属性:指定使用某种环境。可以快速切换
- 内部配置多种环境,使用environment标签
- environment标签
- 作用:配置一个具体的环境信息。内部必须有transactionManager和DataSource标签。
- id属性:代表当前环境的唯一标识,与environments的default搭配使用
- transactionManager(事务管理器)标签:
- type属性:事务管理器的类型;JDBC(JdbcTransactionFactory)|MANAGED(ManagedTransactionFactory)。
- 可以自定义事务管理器,实现TransactionFactory接口,type指定为全类名dateSource(数据源)标签:type:数据源类型;UNPOOLED | POOLED | JNDI。自定义数据源,实现DataSourceFactory接口,type为全类名
七、databaseIdProvider标签
支持多数据库厂商
type="DB_VENDOR":VendorDatabaseIdProvider
作用:得到数据库厂商的标识,mybatis就能根据数据库厂商标识来执行不同的sql。
<databaseIdProvider> <!--为不同的数据库厂商起别名--> <property name="Mysql" value="mysql" /> <property name="Oracle" value="oracle" /></databaseIdProvider>
在映射文件的select标签中可以使用databaseId属性指定数据库别名,这样在指定的数据库环境下才会执行。
八、mappers标签
将sql映射注册到全局配置中。
mapper:注册一个sql映射
注册配置文件
- resource:引入类路径下的sql映射文件
- url:引入网络路径或者磁盘路径下的sql映射文件
注册接口
- class:引入接口
- 1.有sql的映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下
- 2.没有映射文件,所有的sql都是利用注解写在接口上
推荐:比较重要的,复杂的Dao接口来写sql映射文件;不重要,简单的,可以使用注解。
package:批量注册。接口和映射文件在同一包下。