可选属性(@Options)

isixe 2021-03-27 07:44:42
Categories: Tags:
  • @Options 用于配合 SQL 注解设置字段的属性,例如主键,超时时间等

 

参数

描述

useCache

是否使用二级缓存

flushCache

设置刷新二级缓存机制

Options.FlushCachePolicy.DEFAULT

表示查询时使用默认策略刷新缓存

Options.FlushCachePolicy.FALSE

表示查询时不刷新缓存

Options.FlushCachePolicy.TRUE

表示查询时刷新缓存

resultSetType

指定resultSet数据集合的类型

statementType

设置编译的方式

  • StatementType.STATEMENT

直接操作sql,不进行预编译,获取数据

  • StatementType.PREPARED

预处理,参数,进行预编译,获取数据,默认

  • StatementType.CALLABLE:执行存储过程

fetchSize

设置每次查询的最大数据条数

timeout

设置超时时间

useGeneratedKeys

是否根据主键自增

keyProperty

实体类中主键的名称

keyColumn

数据库中的主键字段名

注

keyColumn属性只在某些数据库中有效(如 Oracle、PostgreSQL 等)

resultSets

指定resultSet集合数据

databaseId

MyBatis 3.5.5以上可用, 如果有一个配置好的 DatabaseIdProvider, MyBatis 会加载不带 databaseId 属性和带有匹配当前数据库 databaseId 属性的所有语句。如果同时存在带 databaseId 和不带 databaseId 属性的相同语句,则后者会被舍弃。

示例

public interface PersonMapper {

@Options( useGeneratedKeys=true, keyProperty="id", keyColumn="id" )

@Insert("insert into person (id, name, age) values(#{id}, #{name}, #{age}")

public Person add(Person person);

}

注

@Options 只能搭配 Insert 语句使用。