MyBatis注解@Options源码解析

@Options 注解是 MyBatis 中用于配置存储过程或函数映射的注解。在源码中,@Options 注解通常被应用于接口方法,用于指定与该方法关联的 SQL 语句或存储过程的配置信息。

mybatis-3.5.3-sources.jar源码:

package org.apache.ibatis.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.apache.ibatis.mapping.ResultSetType;
import org.apache.ibatis.mapping.StatementType;

/**
 * 该注解用于配置MyBatis映射文件中SQL语句的执行选项。
 * 可以应用于方法。
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Options {

    /**
   * {@link Options#flushCache()} 的选项。
   * 默认值为 {@link FlushCachePolicy#DEFAULT}
   */
    enum FlushCachePolicy {
    /** 
     * 对于非SELECT语句,刷新缓存。
     */
    DEFAULT,
    /** 
     * 无论语句类型如何,都刷新缓存。
     */
    TRUE,
    /** 
     * 无论语句类型如何,都不刷新缓存。
     */
    FALSE
}

/**
   * 指定是否使用缓存来执行该语句。
   * 默认值为 true。
   */
boolean useCache() default true;

/**
   * 指定缓存刷新策略。
   * 默认值为 FlushCachePolicy.DEFAULT。
   */
FlushCachePolicy flushCache() default FlushCachePolicy.DEFAULT;

/**
   * 指定语句的结果集类型。
   * 默认值为 ResultSetType.DEFAULT。
   */
ResultSetType resultSetType() default ResultSetType.DEFAULT;

/**
   * 指定语句的类型。
   * 默认值为 StatementType.PREPARED。
   */
StatementType statementType() default StatementType.PREPARED;

/**
   * 指定语句的获取记录数。
   * 默认值为 -1,表示使用驱动程序的默认值。
   */
int fetchSize() default -1;

/**
   * 指定语句的超时时间(以秒为单位)。
   * 默认值为 -1,表示使用驱动程序的默认值。
   */
int timeout() default -1;

/**
   * 指定是否使用自动生成的主键。
   * 默认值为 false。
   */
boolean useGeneratedKeys() default false;

/**
   * 如果使用自动生成的主键,指定要将主键值设置到哪个属性中。
   * 默认值为空字符串。
   */
String keyProperty() default "";

/**
   * 如果使用自动生成的主键,指定主键的列名。
   * 默认值为空字符串。
   */
String keyColumn() default "";

/**
   * 指定语句的结果集名称,用于存储过程调用。
   * 默认值为空字符串。
   */
String resultSets() default "";
}
  • boolean useCache() default true;

这是一个布尔类型的成员变量,表示是否使用缓存。
默认值为true,表示使用缓存。
当设置为true时,表示启用缓存
当设置为false时,表示禁用缓存。默认值为true。

  • FlushCachePolicy flushCache() default FlushCachePolicy.DEFAULT;

这是一个枚举类型的成员变量,用于指定刷新缓存的策略。

  • FlushCachePolicy.DEFAULT:使用默认的刷新缓存策略。
  • FlushCachePolicy.TRUE:在执行语句之前刷新缓存。
  • FlushCachePolicy.FALSE:在执行语句之后刷新缓存。
  • 默认值为FlushCachePolicy.DEFAULT
  • ResultSetType resultSetType() default ResultSetType.DEFAULT;

这是一个枚举类型的成员变量,用于指定结果集的类型。

  • ResultSetType.DEFAULT:使用默认的结果集类型。
  • ResultSetType.FORWARD_ONLY:只能向前遍历结果集。
  • ResultSetType.SCROLL_INSENSITIVE:结果集对数据的修改不敏感。
  • ResultSetType.SCROLL_SENSITIVE:结果集对数据的修改敏感。
    默认值为ResultSetType.DEFAULT。
  • StatementType statementType() default StatementType.PREPARED;

这是一个枚举类型的成员变量,用于指定语句的类型。

  • StatementType.STATEMENT:普通的语句。
  • StatementType.PREPARED:预编译的语句。
  • StatementType.CALLABLE:可调用的语句。
  • 默认值为StatementType.PREPARED。
  • int fetchSize() default -1;

这是一个整数类型的成员变量,用于指定从数据库中获取的记录数。
默认值是-1,表示使用数据库的默认设置。

  • int timeout() default -1;

这是一个整数类型的成员变量,用于指定语句的超时时间(以秒为单位)。
默认值是-1,表示使用数据库的默认超时时间。

  • boolean useGeneratedKeys() default false;

这是一个布尔类型的成员变量,表示是否使用生成的主键。
默认值是false,表示不使用生成的主键。

  • String keyProperty() default “”;

这是一个字符串类型的成员变量,用于指定主键属性的名称。
默认值是空字符串。

  • String keyColumn() default “”;

这是一个字符串类型的成员变量,用于指定主键列的名称。
默认值是空字符串。

  • String resultSets() default “”;

这是一个字符串类型的成员变量,用于指定结果集的名称。
默认值是空字符串。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Orange_橙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值