All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.egd.prodigal.mybatis.batch.annotations.BatchInsert Maven / Gradle / Ivy

There is a newer version: 2.0.9
Show newest version
package io.github.egd.prodigal.mybatis.batch.annotations;

import org.apache.ibatis.annotations.Param;

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

/**
 * 批量插入注解,与{@link org.apache.ibatis.annotations.Insert}配合使用,添加本注解的插入方法,将被认为是一个批量插入的方法,
 * 本插件将会开启mybatis的批量模式,轮询参数执行单个插入动作,并在满足插入一定数量后提交一次。
 * 

* {@link #collection()} ()} 指定方法入参的对象名,与方法参数的{@link Param#value()}的值一致 * {@link #item()} 指定sql语句里的实体类的参数名,不写此值可以直接用对应的参数名 * {@link #batchSize()} 指定批量一次提交的数据量 * {@link #insert()} 指定单条保存的方法,必须在相同Mapper接口类里 * {@link #flushStatements()} 是否把已执行的数据刷入数据库 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface BatchInsert { /** * 集合入参的名称,与{@link org.apache.ibatis.annotations.Param}注解配置的值一致,为空则默认取参数里的集合对象 * * @return 方法入参配置的集合对象名 {@link Param} */ String collection() default "collection"; /** * sql里的参数名 * * @return String */ String item() default ""; /** * 批量大小,传入的数据,按该值再分批提交 * * @return int */ int batchSize() default 500; /** * 指定其他方法作为单条插入的方法,这个方法必须存在,且本方法入参数量符合指定的方法,否则执行报错 * * @return 本接口类里的其他单条插入的方法名 */ String insert() default ""; /** * 是否把已执行的数据刷入数据库 * * @return boolean */ boolean flushStatements() default true; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy