可选属性(@Options)

Exisi 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属性只在某些数据库中有效(如 OraclePostgreSQL 等)

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 语句使用。