Mybatis相关配置元数说明
settings元素
属性名称 | 作用 | 备注 |
---|---|---|
cacheEnabled | 所有映射器中配置的缓存全局开关 | 默认值为true |
lazyLoadingEnabled | 延迟加载全局开关 | |
multipleResultSetsEnabled | 是否允许单一语句返回多结果集(需驱动支持) | 默认值为true |
useColumnLable | 使用列标签代替列名, | 默认值为true |
useGeneratedKeys | 允许jdbc支持自动生成主键, | |
autoMappingBehavior | 指定Mybatis如何自动映射列到字段或属性,NONE表示取消自动映射,PARTIAL会自动映射没有定义嵌套结果集映射的结果集,FULL会自动映射任意复杂结果集 | PARTIAL |
defaultExecutorType | 默认执行器。SIMPLE是普通执行器,REUSE执行器会重用预处理语句(PreparedStatements),BATCH执行器将重用语句并执行批量更新 | SIMPLE |
defaultStatementTimeout | 超时时间设置 | |
defaultRowBoundsEnabled | 允许嵌套语句中使用分页 | 默认值为false |
proxyFactory | 创建具有延迟加载能力对象所用的代理工具 | 3.3.0以上默认JAVASSIST,否则CGLIB |
元素名称 | 作用 | 备注 |
---|---|---|
select | 查询数据 | |
insert | 插入数据 | 返回一个整数,表示插入的条数 |
update | 更新数据 | 返回一个整数,表示更新的条数 |
delete | 删除数据 | 返回一个整数,表示删除的条数 |
parameterMap | 参数映射关系 | |
sql | 预先定义一个sql,然后可以在其他地方引用使用 | |
resultMap | 数据库返回的数据结果与实体之间column和字段之前的映射关系规则 | |
cache | 缓存配置 | |
cache-ref | 其他命名空间缓存配置引用 |
属性名称 | 作用 | 备注 |
---|---|---|
id | 标识符,和对应的mapper的命名空间构成唯一的标识符,如果不唯一,mybatis会报错 | |
pramaterType | 传递参数的类型 | |
resultType | 返回值类型 | 不能和resultMap同时使用 |
resultMap | 引用外部定义的映射集,我们可以使用rsultMap或者resultType其中的一个,resultMap可以给我们自定义映射集的机会 | |
flushCache | 要求mybatis在调用SQL后是否清除之前查询的本地和二级缓存 | |
useCache | 是否开启二级缓存 | |
timeout | 设置超时的时间,超时将抛出异常,单位为秒 | 默认的是JDBC厂商提供的默认值 |
fetchSize | 获取记录总条数的设定 | 默认是jdbc厂商提供默认值 |
statementType | 告诉Mybatis使用jdbc提供的哪个Statement,取值为STATEMENT(Statement),PREPARED(PreparementStatement),CallableStatemet | 默认为PREPARED |
resultSetType | 这是对jdbc的resultSet的接口而言,包括FORWORD_ONLY(允许游标向前访问),scroll_sensitive,scroll_insentive | |
resultOrderId | 用于嵌套结果集 |
其他与select基本相同,一下属性独有:
属性名称 | 作用 | 备注 |
---|---|---|
keyProperty | 哪个列作为主键,不能和keyColumn同时使用,如果使用插入后会回填javabean的id值 |
如果是联合主键,逗号分隔 |
keyColumn | 知名第几列是主键不能和keyProperty同时使用,只接受整型参数, | 联合主键用逗号隔开 |
useGeneratedKeys | mybatis会通过getGeneratedKeys来获取由数据库生成的主键,如mysql和sqlserver,但是oracle序列等,使用它就必须给keyProperty或keyColumn赋值 |
keyProperty="id" resultType="int" order="BEFORE" >
select if(max(id) is null,1,max(id)+1 ) as newId from person
insert into person(name,age,gender,address,phone)
values(#{name},#{age},#{gender},#{address},#{phone})
SQL元素
【2. Mybatis入门,Mybatis元素,select,insert,update,delete相关属性】这个元素用来定义能够被其它语句引用的可重用SQL 语句块。例如:
id,username,password
这个 SQL 语句块能够被其它语句引用,如:
id=”selectUsers” parameterType=”int” resultType=”hashmap”>
select
from some_table
where id = #{id}
resultMap元素
属性名称 | 作用 | 备注 |
---|---|---|
property | 对应类的属性名称 | |
column | 对应数据库中表的字段 | |
javaType | java类型 | |
jdbcType | 数据库类型,基本上mybatis已经配置好了 | |
typeHandler | 可以用来覆盖默认的typeHandler |
推荐阅读
- 框架|Mybatis的一级缓存和二级缓存
- Mybatis日志工厂
- MyBatis的功能架构是怎样的
- Mybatis入门之CRUD
- mybatis之缓存机制
- Mybatis练习(1)
- Java|MyBatis(五)——MyBatis中的缓存机制
- mybatis之脚本解析器
- mybatis|记mybatis查询null字段导致的NPE
- Mybatis 动态查询、插入、修改操作