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 > |
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!