在MyBatis中,注解的目的是为了取代XML文件的配置项,而@Options注解的作用是设置如下几项:

1、useCache,是否使用缓存,默认是true
2、fetchSize,获取记录数的限度,默认是-1,没有条数限制
3、timeout,设置超时时间,默认是-1,没有时间限制
4、useGeneratedKeys,是否自动生成注解,默认是false。
5、keyProperty,数据行主键所对应的映射对象的属性,默认是id属性。

当然,还有其他几项,在此不再赘述,@Options注解使用十分简单,我们可以通过阅读它的源码就知道它的用法,源码如下所示:

@Target(ElementType.METHOD)
public @interface Options 
{
  
  public enum FlushCachePolicy 
  {
    DEFAULT,
    TRUE,
    FALSE
  }

  boolean useCache() default true;

  FlushCachePolicy flushCache() default FlushCachePolicy.DEFAULT;

  ResultSetType resultSetType() default ResultSetType.FORWARD_ONLY;

  StatementType statementType() default StatementType.PREPARED;

  int fetchSize() default -1;

  int timeout() default -1;

  boolean useGeneratedKeys() default false;

  String keyProperty() default "id";

  String keyColumn() default "";
  
  String resultSets() default "";
}

@Options注解的例子

@Options(useGeneratedKeys = true, keyProperty = "studentId", keyColumn = "id")
int addStudent(Student student);

说明:在数据库的student表中,主键名为id,可对应Student映射类中studentId属性,因此我们需要将keyProperty和keyColumn设置成studentId和id。

标签: none

添加新评论