mybatis 项目配置文件实例详解
mybatis项目配置
首先这事一个简单的mybatis项目配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<? xml version = "1.0" encoding = "UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
< configuration >
< 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 >
< mappers >
< mapper resource = "org/mybatis/example/BlogMapper.xml" />
</ mappers >
</ configuration >
|
environment
mybatis支持多个环境,可以任意配置
比如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
< 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 >
< environment id = "test" >
< 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 >
|
就会有两个环境,environments中的defalut标签选择哪一个,默认就是哪一个
transactionManager
mybatis支持两种类型的事务管理器,jdbc和managed(托管)
jdbc:应用程序管理数据库连接的生命周期
managed:由应用服务器负责管理数据库连接的生命周期(一般商业服务器才有此功能,如JBOSS WebLogic)
dataSource
type:用来配置数据源,类型有:UNPOOLED、POOLED、JNDI
UNPOOLED:没有连接池,每次数据库操作,mybatis都会创建一个新的连接,用完后,关闭:适合小并发项目
POOLED:有连接池
JNDI:使用应用服务器配置JNDI数据源获取数据库连接
properties
配置属性
比如:
1
2
3
4
5
6
7
8
9
10
11
|
< properties resource = "org/mybatis/example/config.properties" >
< property name = "username" value = "dev_user" />
< property name = "password" value = "F2Fa3!33TYyg" />
</ properties >
< dataSource type = "POOLED" >
< property name = "driver" value = "${driver}" />
< property name = "url" value = "${url}" />
< property name = "username" value = "${username}" />
< property name = "password" value = "${password}" />
</ dataSource >
|
typeAliases
给类的完整限定名取别名,方便使用
比如:
1
2
3
4
5
6
7
8
9
10
11
12
|
< typeAliases >
< typeAlias alias = "Author" type = "domain.blog.Author" />
< typeAlias alias = "Blog" type = "domain.blog.Blog" />
< typeAlias alias = "Comment" type = "domain.blog.Comment" />
< typeAlias alias = "Post" type = "domain.blog.Post" />
< typeAlias alias = "Section" type = "domain.blog.Section" />
< typeAlias alias = "Tag" type = "domain.blog.Tag" />
</ typeAliases >
<!-- 最常用-->
< typeAliases >
< package name = "domain.blog" />
</ typeAliases >
|
mappers
引入映射文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<!-- Using classpath relative resources -->
< mappers >
< mapper resource = "org/mybatis/builder/AuthorMapper.xml" />
< mapper resource = "org/mybatis/builder/BlogMapper.xml" />
< mapper resource = "org/mybatis/builder/PostMapper.xml" />
</ mappers >
<!-- Using url fully qualified paths -->
< mappers >
< mapper url = "file:///var/mappers/AuthorMapper.xml" />
< mapper url = "file:///var/mappers/BlogMapper.xml" />
< mapper url = "file:///var/mappers/PostMapper.xml" />
</ mappers >
<!-- Using mapper interface classes -->
< mappers >
< mapper class = "org.mybatis.builder.AuthorMapper" />
< mapper class = "org.mybatis.builder.BlogMapper" />
< mapper class = "org.mybatis.builder.PostMapper" />
</ mappers >
<!-- Register all interfaces in a package as mappers -->
< mappers >
< package name = "org.mybatis.builder" />
</ mappers >
|
settings
An example of the settings element fully configured is as follows:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
< settings >
< setting name = "cacheEnabled" value = "true" />
< setting name = "lazyLoadingEnabled" value = "true" />
< setting name = "multipleResultSetsEnabled" value = "true" />
< setting name = "useColumnLabel" value = "true" />
< setting name = "useGeneratedKeys" value = "false" />
< setting name = "autoMappingBehavior" value = "PARTIAL" />
< setting name = "autoMappingUnknownColumnBehavior" value = "WARNING" />
< setting name = "defaultExecutorType" value = "SIMPLE" />
< setting name = "defaultStatementTimeout" value = "25" />
< setting name = "defaultFetchSize" value = "100" />
< setting name = "safeRowBoundsEnabled" value = "false" />
< setting name = "mapUnderscoreToCamelCase" value = "false" />
< setting name = "localCacheScope" value = "SESSION" />
< setting name = "jdbcTypeForNull" value = "OTHER" />
< setting name = "lazyLoadTriggerMethods" value = "equals,clone,hashCode,toString" />
</ settings >
|
plugins
插件 比如:
分页插件
1
2
3
4
5
6
7
8
|
< plugins >
< plugin interceptor = "com.github.pagehelper.PageHelper" >
< property name = "dialect" value = "mysql" />
< property name = "offsetAsPageNum" value = "true" />
< property name = "rowBoundsWithCount" value = "true" />
< property name = "pageSizeZero" value = "true" />
</ plugin >
</ plugins >
|
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
本文由主机测评网发布,不代表主机测评网立场,转载联系作者并注明出处:https://zhuji.jb51.net/shujuku/2908.html