db.sql.api.impl.cmd.executor.SelectorCall Maven / Gradle / Ivy
package db.sql.api.impl.cmd.executor;
import db.sql.api.DbType;
import java.util.concurrent.Callable;
/**
* 选择器 不同数据库执行不同的方法
*/
public interface SelectorCall {
/**
* 当数据库类型为dbType 时
*
* @param dbType 数据库类型
* @param runnable 执行器
* @return 自己
*/
SelectorCall when(DbType dbType, Callable runnable);
/**
* 当数据库类型在dbTypes 时
*
* @param dbTypes 数据库类型数组
* @param runnable 执行器
* @return 自己
*/
default SelectorCall when(DbType[] dbTypes, Callable runnable) {
for (DbType dbType : dbTypes) {
when(dbType, runnable);
}
return this;
}
/**
* 其他数据库类型时
*
* @param runnable 执行器
* @return 自己
*/
SelectorCall otherwise(Callable runnable);
/**
* 其他数据库类型时 忽略
*/
SelectorCall otherwise();
/**
* 执行
*
* @param dbType 数据库类型
*/
R dbExecute(DbType dbType);
}