Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.anyline.data.jdbc.argodb.ArgoDBAdapter Maven / Gradle / Ivy
/*
* Copyright 2006-2023 www.anyline.org
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.anyline.data.jdbc.argodb;
import org.anyline.annotation.Component;
import org.anyline.data.adapter.DriverAdapter;
import org.anyline.data.jdbc.hive.HiveAdapter;
import org.anyline.data.jdbc.transwarp.TranswarpAdapter;
import org.anyline.data.param.ConfigStore;
import org.anyline.data.prepare.RunPrepare;
import org.anyline.data.run.*;
import org.anyline.data.runtime.DataRuntime;
import org.anyline.entity.*;
import org.anyline.entity.authorize.Privilege;
import org.anyline.entity.authorize.Role;
import org.anyline.entity.authorize.User;
import org.anyline.metadata.*;
import org.anyline.metadata.graph.EdgeTable;
import org.anyline.metadata.graph.VertexTable;
import org.anyline.metadata.refer.MetadataFieldRefer;
import org.anyline.metadata.type.DatabaseType;
import org.anyline.metadata.type.TypeMetadata;
import javax.sql.DataSource;
import java.sql.Connection;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@Component("anyline.data.jdbc.adapter.argodb")
public class ArgoDBAdapter extends TranswarpAdapter {
public DatabaseType type() {
return DatabaseType.ArgoDB;
}
public ArgoDBAdapter() {
super();
}
private String delimiter;
/* *****************************************************************************************************************
*
* DML
*
* =================================================================================================================
* INSERT : 插入
* UPDATE : 更新
* SAVE : 根据情况插入或更新
* QUERY : 查询(RunPrepare/XML/TABLE/VIEW/PROCEDURE)
* EXISTS : 是否存在
* COUNT : 统计
* EXECUTE : 执行(原生SQL及存储过程)
* DELETE : 删除
*
******************************************************************************************************************/
/* *****************************************************************************************************************
* INSERT
* -----------------------------------------------------------------------------------------------------------------
* [调用入口]
* long insert(DataRuntime runtime, String random, int batch, Table dest, Object data, ConfigStore configs, List columns)
* [命令合成]
* public Run buildInsertRun(DataRuntime runtime, int batch, Table dest, Object obj, ConfigStore configs, List columns)
* public void fillInsertContent(DataRuntime runtime, Run run, Table dest, DataSet set, ConfigStore configs, LinkedHashMap columns)
* public void fillInsertContent(DataRuntime runtime, Run run, Table dest, Collection list, ConfigStore configs, LinkedHashMap columns)
* public LinkedHashMap confirmInsertColumns(DataRuntime runtime, Table dest, Object obj, ConfigStore configs, List columns, boolean batch)
* public String batchInsertSeparator()
* public boolean supportInsertPlaceholder()
* protected Run createInsertRun(DataRuntime runtime, Table dest, Object obj, ConfigStore configs, List columns)
* protected Run createInsertRunFromCollection(DataRuntime runtime, int batch, Table dest, Collection list, ConfigStore configs, List columns)
* public String generatedKey()
* [命令执行]
* long insert(DataRuntime runtime, String random, Object data, ConfigStore configs, Run run, String[] pks);
******************************************************************************************************************/
/**
* insert [调用入口]
* 执行前根据主键生成器补充主键值,执行完成后会补齐自增主键值
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param data 需要插入入的数据
* @param columns 需要插入的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* 列可以加前缀
* +:表示必须插入
* -:表示必须不插入
* ?:根据是否有值
*
* 如果没有提供columns,长度为0也算没有提供
* 则解析obj(遍历所有的属性工Key)获取insert列
*
* 如果提供了columns则根据columns获取insert列
*
* 但是columns中出现了添加前缀列,则解析完columns后,继续解析obj
*
* 以上执行完后,如果开启了ConfigTable.IS_AUTO_CHECK_METADATA=true
* 则把执行结果与表结构对比,删除表中没有的列
* @return 影响行数
*/
@Override
public long insert(DataRuntime runtime, String random, int batch, Table dest, Object data, ConfigStore configs, List columns) {
return super.insert(runtime, random, batch, dest, data, configs, columns);
}
/**
* insert into table select * from table
* 与query参数一致
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param dest 插入表
* @param prepare 查询表
* @param configs 查询条件及相关配置
* @param obj 查询条件
* @param conditions 查询条件 支持k:v k:v::type 以及原生sql形式(包含ORDER、GROUP、HAVING)默认忽略空值条件
* @return 影响行数
*/
@Override
public long insert(DataRuntime runtime, String random, Table dest, RunPrepare prepare, ConfigStore configs, Object obj, String ... conditions) {
return super.insert(runtime, random, dest, prepare, configs, obj, conditions);
}
/**
* insert [命令合成]
* 填充inset命令内容(创建批量INSERT RunPrepare)
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param obj 需要插入的数据
* @param columns 需要插入的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
public Run buildInsertRun(DataRuntime runtime, int batch, Table dest, Object obj, ConfigStore configs, Boolean placeholder, Boolean unicode, List columns) {
return super.buildInsertRun(runtime, batch, dest, obj, configs, placeholder, unicode, columns);
}
/**
* insert [命令合成]
* 填充inset命令内容(创建批量INSERT RunPrepare)
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param prepare 查询
* @param configs 过滤条件及相关配置
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
public Run buildInsertRun(DataRuntime runtime, Table dest, RunPrepare prepare, ConfigStore configs, Object obj, Boolean placeholder, Boolean unicode, String... conditions) {
return super.buildInsertRun(runtime, dest, prepare, configs, obj, placeholder, unicode, conditions);
}
/**
* insert [命令合成-子流程]
* 填充inset命令内容(创建批量INSERT RunPrepare)
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param set 需要插入的数据集合
* @param columns 需要插入的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
*/
@Override
public void fillInsertContent(DataRuntime runtime, Run run, Table dest, DataSet set, ConfigStore configs, Boolean placeholder, Boolean unicode, LinkedHashMap columns) {
super.fillInsertContent(runtime, run, dest, set, configs, placeholder, unicode, columns);
}
/**
* insert [命令合成-子流程]
* 填充inset命令内容(创建批量INSERT RunPrepare)
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param list 需要插入的数据集合
* @param columns 需要插入的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
*/
@Override
public void fillInsertContent(DataRuntime runtime, Run run, Table dest, Collection list, ConfigStore configs, Boolean placeholder, Boolean unicode, LinkedHashMap columns) {
super.fillInsertContent(runtime, run, dest, list, configs, placeholder, unicode, columns);
}
/**
* 插入子表前 检测并创建子表
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @param dest 表
* @param configs ConfigStore
*/
@Override
public void fillInsertCreateTemplate(DataRuntime runtime, Run run, PartitionTable dest, ConfigStore configs) {
super.fillInsertCreateTemplate(runtime, run, dest, configs);
}
/**
* insert [命令合成-子流程]
* 确认需要插入的列
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param obj Entity或DataRow
* @param batch 是否批量,批量时不检测值是否为空
* @param columns 需要插入的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* 列可以加前缀
* +:表示必须插入
* -:表示必须不插入
* ?:根据是否有值
*
* 如果没有提供columns,长度为0也算没有提供
* 则解析obj(遍历所有的属性工Key)获取insert列
*
* 如果提供了columns则根据columns获取insert列
*
* 但是columns中出现了添加前缀列,则解析完columns后,继续解析obj
*
* 以上执行完后,如果开启了ConfigTable.IS_AUTO_CHECK_METADATA=true
* 则把执行结果与表结构对比,删除表中没有的列
* @return List
*/
@Override
public LinkedHashMap confirmInsertColumns(DataRuntime runtime, Table dest, Object obj, ConfigStore configs, List columns, boolean batch) {
return super.confirmInsertColumns(runtime, dest, obj, configs, columns, batch);
}
/**
* insert [命令合成-子流程]
* 批量插入数据时,多行数据之间分隔符
* @return String
*/
@Override
public String batchInsertSeparator() {
return super.batchInsertSeparator();
}
/**
* insert [命令合成-子流程]
* 插入数据时是否支持占位符
* @return boolean
*/
@Override
public boolean supportInsertPlaceholder() {
return super.supportInsertPlaceholder();
}
/**
* insert [命令合成-子流程]
* 设置主键值
* @param obj obj
* @param value value
*/
@Override
protected void setPrimaryValue(Object obj, Object value) {
super.setPrimaryValue(obj, value);
}
/**
* insert [命令合成-子流程]
* 根据entity创建 INSERT RunPrepare由buildInsertRun调用
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param obj 数据
* @param columns 需要插入的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
protected Run createInsertRun(DataRuntime runtime, Table dest, Object obj, ConfigStore configs, Boolean placeholder, Boolean unicode, List columns) {
return super.createInsertRun(runtime, dest, obj, configs, placeholder, unicode, columns);
}
/**
* insert [命令合成-子流程]
* 根据collection创建 INSERT RunPrepare由buildInsertRun调用
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param list 对象集合
* @param columns 需要插入的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
protected Run createInsertRunFromCollection(DataRuntime runtime, int batch, Table dest, Collection list, ConfigStore configs, Boolean placeholder, Boolean unicode, List columns) {
return super.createInsertRunFromCollection(runtime, batch, dest, list, configs, placeholder, unicode, columns);
}
/**
* insert [after]
* 执行insert后返回自增主键的key
* @return String
*/
@Override
public String generatedKey() {
return super.generatedKey();
}
/**
* insert [命令执行]
*
* 执行完成后会补齐自增主键值
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param data data
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @param pks 需要返回的主键
* @return 影响行数
*/
@Override
public long insert(DataRuntime runtime, String random, Object data, ConfigStore configs, Run run, String[] pks) {
return super.insert(runtime, random, data, configs, run, pks);
}
/**
* 是否支持返回自增主键值
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param configs configs中也可能禁用返回
* @return boolean
*/
@Override
public boolean supportKeyHolder(DataRuntime runtime, ConfigStore configs) {
return super.supportKeyHolder(runtime, configs);
}
/**
* 自增主键值keys
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param configs configs中也可能禁用返回
* @return keys
*/
@Override
public List keyHolders(DataRuntime runtime, ConfigStore configs) {
return super.keyHolders(runtime, configs);
}
/* *****************************************************************************************************************
* UPDATE
* -----------------------------------------------------------------------------------------------------------------
* [调用入口]
* long update(DataRuntime runtime, String random, int batch, Table dest, Object data, ConfigStore configs, List columns)
* [命令合成]
* Run buildUpdateRun(DataRuntime runtime, int batch, Table dest, Object obj, ConfigStore configs, List columns)
* Run buildUpdateRunFromEntity(DataRuntime runtime, Table dest, Object obj, ConfigStore configs, LinkedHashMap columns)
* Run buildUpdateRunFromDataRow(DataRuntime runtime, Table dest, DataRow row, ConfigStore configs, LinkedHashMap columns)
* Run buildUpdateRunFromCollection(DataRuntime runtime, int batch, Table dest, Collection list, ConfigStore configs, LinkedHashMap columns)
* LinkedHashMap confirmUpdateColumns(DataRuntime runtime, Table dest, DataRow row, ConfigStore configs, List columns)
* LinkedHashMap confirmUpdateColumns(DataRuntime runtime, Table dest, Object obj, ConfigStore configs, List columns)
* [命令执行]
* long update(DataRuntime runtime, String random, Table dest, Object data, ConfigStore configs, Run run)
******************************************************************************************************************/
/**
* UPDATE [调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param data 数据
* @param configs 条件
* @param columns 需要插入或更新的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* 列可以加前缀
* +:表示必须更新
* -:表示必须不更新
* ?:根据是否有值
*
* 如果没有提供columns,长度为0也算没有提供
* 则解析obj(遍历所有的属性工Key)获取insert列
*
* 如果提供了columns则根据columns获取insert列
*
* 但是columns中出现了添加前缀列,则解析完columns后,继续解析obj
*
* 以上执行完后,如果开启了ConfigTable.IS_AUTO_CHECK_METADATA=true
* 则把执行结果与表结构对比,删除表中没有的列
* @return 影响行数
*/
@Override
public long update(DataRuntime runtime, String random, int batch, Table dest, Object data, ConfigStore configs, List columns) {
return super.update(runtime, random, batch, dest, data, configs, columns);
}
/**
* 多表关联更新
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param prepare 一般通过TableBuilder生成
* @param data K-VariableValue 更新值key:需要更新的列 value:通常是关联表的列用VariableValue表示,也可以是常量
* @return 影响行数
*/
@Override
public long update(DataRuntime runtime, String random, RunPrepare prepare, DataRow data, ConfigStore configs, String ... conditions) {
return super.update(runtime, random, prepare, data, configs, conditions);
}
/**
* 多表关联更新
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param prepare 一般通过TableBuilder生成
* @param data K-VariableValue 更新值key:需要更新的列 value:通常是关联表的列用VariableValue表示,也可以是常量
* @return 影响行数
*/
@Override
public Run buildUpdateRun(DataRuntime runtime, RunPrepare prepare, DataRow data, ConfigStore configs, Boolean placeholder, Boolean unicode, String ... conditions) {
return super.buildUpdateRun(runtime, prepare, data, configs, placeholder, unicode, conditions);
}
/**
* update [命令合成]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param obj Entity或DtaRow
* @param configs 更新条件
* @param columns 需要插入或更新的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* 列可以加前缀
* +:表示必须更新
* -:表示必须不更新
* ?:根据是否有值
*
* 如果没有提供columns,长度为0也算没有提供
* 则解析obj(遍历所有的属性工Key)获取insert列
*
* 如果提供了columns则根据columns获取insert列
*
* 但是columns中出现了添加前缀列,则解析完columns后,继续解析obj
*
* 以上执行完后,如果开启了ConfigTable.IS_AUTO_CHECK_METADATA=true
* 则把执行结果与表结构对比,删除表中没有的列
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
public Run buildUpdateRun(DataRuntime runtime, int batch, Table dest, Object obj, ConfigStore configs, Boolean placeholder, Boolean unicode, List columns) {
return super.buildUpdateRun(runtime, batch, dest, obj, configs, placeholder, unicode, columns);
}
/**
*
* update [命令合成]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return Run
*/
@Override
public Run buildUpdateRunLimit(DataRuntime runtime, Run run) {
return super.buildUpdateRunLimit(runtime, run);
}
/**
*
* update [命令合成]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param obj Entity或DtaRow
* @param configs 更新条件
* @param columns 需要插入或更新的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* @return Run
*/
@Override
public Run buildUpdateRunFromEntity(DataRuntime runtime, Table dest, Object obj, ConfigStore configs, Boolean placeholder, Boolean unicode, LinkedHashMap columns) {
return super.buildUpdateRunFromEntity(runtime, dest, obj, configs, placeholder, unicode, columns);
}
/**
*
* update [命令合成]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param row DtaRow
* @param configs 更新条件
* @param columns 需要插入或更新的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* @return Run
*/
@Override
public Run buildUpdateRunFromDataRow(DataRuntime runtime, Table dest, DataRow row, ConfigStore configs, Boolean placeholder, Boolean unicode, LinkedHashMap columns) {
return super.buildUpdateRunFromDataRow(runtime, dest, row, configs, placeholder, unicode, columns);
}
/**
*
* update [命令合成]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param list Collection
* @param configs 更新条件
* @param columns 需要插入或更新的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* @return Run
*/
@Override
public Run buildUpdateRunFromCollection(DataRuntime runtime, int batch, Table dest, Collection list, ConfigStore configs, Boolean placeholder, Boolean unicode, LinkedHashMap columns) {
return super.buildUpdateRunFromCollection(runtime, batch, dest, list, configs, placeholder, unicode, columns);
}
/**
* 确认需要更新的列
* @param dest 表
* @param row DataRow
* @param configs 更新条件
* @param columns 需要插入或更新的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* 列可以加前缀
* +:表示必须更新
* -:表示必须不更新
* ?:根据是否有值
*
* 如果没有提供columns,长度为0也算没有提供
* 则解析obj(遍历所有的属性工Key)获取insert列
*
* 如果提供了columns则根据columns获取insert列
*
* 但是columns中出现了添加前缀列,则解析完columns后,继续解析obj
*
* 以上执行完后,如果开启了ConfigTable.IS_AUTO_CHECK_METADATA=true
* 则把执行结果与表结构对比,删除表中没有的列
* @return List
*/
@Override
public LinkedHashMap confirmUpdateColumns(DataRuntime runtime, Table dest, DataRow row, ConfigStore configs, List columns) {
return super.confirmUpdateColumns(runtime, dest, row, configs, columns);
}
/**
* 确认需要更新的列
* @param dest 表
* @param obj Object
* @param configs 更新条件
* @param columns 需要插入或更新的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* 列可以加前缀
* +:表示必须更新
* -:表示必须不更新
* ?:根据是否有值
*
* 如果没有提供columns,长度为0也算没有提供
* 则解析obj(遍历所有的属性工Key)获取insert列
*
* 如果提供了columns则根据columns获取insert列
*
* 但是columns中出现了添加前缀列,则解析完columns后,继续解析obj
*
* 以上执行完后,如果开启了ConfigTable.IS_AUTO_CHECK_METADATA=true
* 则把执行结果与表结构对比,删除表中没有的列
* @return List
*/
@Override
public LinkedHashMap confirmUpdateColumns(DataRuntime runtime, Table dest, Object obj, ConfigStore configs, List columns) {
return super.confirmUpdateColumns(runtime, dest, obj, configs, columns);
}
/**
* update [命令执行]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param data 数据
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return 影响行数
*/
@Override
public long update(DataRuntime runtime, String random, Table dest, Object data, ConfigStore configs, Run run) {
return super.update(runtime, random, dest, data, configs, run);
}
/**
* save [调用入口]
*
* 根据是否有主键值确认insert | update
* 执行完成后会补齐自增主键值
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param data 数据
* @param configs 更新条件
* @param columns 需要插入或更新的列,如果不指定则根据data或configs获取注意会受到ConfigTable中是否插入更新空值的几个配置项影响
* 列可以加前缀
* +:表示必须更新
* -:表示必须不更新
* ?:根据是否有值
*
* 如果没有提供columns,长度为0也算没有提供
* 则解析obj(遍历所有的属性工Key)获取insert列
*
* 如果提供了columns则根据columns获取insert列
*
* 但是columns中出现了添加前缀列,则解析完columns后,继续解析obj
*
* 以上执行完后,如果开启了ConfigTable.IS_AUTO_CHECK_METADATA=true
* 则把执行结果与表结构对比,删除表中没有的列
* @return 影响行数
*/
@Override
public long save(DataRuntime runtime, String random, Table dest, Object data, ConfigStore configs, List columns) {
return super.save(runtime, random, dest, data, configs, columns);
}
/**
*
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param dest 表
* @param data 保存的数据
* @param configs ConfigStore
* @param columns 指定列
* @return long 影响行数
*/
@Override
protected long saveCollection(DataRuntime runtime, String random, Table dest, Collection> data, ConfigStore configs, List columns) {
return super.saveCollection(runtime, random, dest, data, configs, columns);
}
/**
*
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param dest 表
* @param data 保存的数据
* @param configs ConfigStore
* @param columns 指定列
* @return long 影响行数
*/
@Override
protected long saveObject(DataRuntime runtime, String random, Table dest, Object data, ConfigStore configs, List columns) {
return super.saveObject(runtime, random, dest, data, configs, columns);
}
/**
* 有主键值的情况下 检测覆盖
* @param obj Object
* @return boolean
* null:正常执行update
* true或false:检测数据库中是否存在
* 如果数据库中存在匹配的数据
* true:执行更新
* false:跳过更新
*/
@Override
protected Boolean checkOverride(Object obj, ConfigStore configs) {
return super.checkOverride(obj, configs);
}
/**
* 检测主键值
* @param obj Object
* @return Map
*/
@Override
protected Map checkPv(Object obj) {
return super.checkPv(obj);
}
/**
* 是否是可以接收数组类型的值
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @param key key
* @return boolean
*/
@Override
protected boolean isMultipleValue(DataRuntime runtime, TableRun run, String key) {
return super.isMultipleValue(runtime, run, key);
}
/**
* 是否支持集合值
* @param column Column 根据column的数据类型
* @return boolean
*/
@Override
protected boolean isMultipleValue(Column column) {
return super.isMultipleValue(column);
}
/**
* 过滤掉表结构中不存在的列
* @param table 表
* @param columns columns
* @return List
*/
@Override
public LinkedHashMap checkMetadata(DataRuntime runtime, Table table, ConfigStore configs, LinkedHashMap columns) {
return super.checkMetadata(runtime, table, configs, columns);
}
/* *****************************************************************************************************************
* QUERY
* -----------------------------------------------------------------------------------------------------------------
* [调用入口]
* DataSet querys(DataRuntime runtime, String random, RunPrepare prepare, ConfigStore configs, String ... conditions)
* DataSet querys(DataRuntime runtime, String random, Procedure procedure, PageNavi navi)
* EntitySet selects(DataRuntime runtime, String random, RunPrepare prepare, Class clazz, ConfigStore configs, String... conditions)
* List> maps(DataRuntime runtime, String random, RunPrepare prepare, ConfigStore configs, String ... conditions)
* [命令合成]
* Run buildQueryRun(DataRuntime runtime, RunPrepare prepare, ConfigStore configs, String ... conditions)
* List buildQuerySequence(DataRuntime runtime, boolean next, String ... names)
* Run fillQueryContent(DataRuntime runtime, Run run)
* String mergeFinalQuery(DataRuntime runtime, Run run)
* RunValue createConditionLike(DataRuntime runtime, StringBuilder builder, Compare compare, Object value, Boolean placeholder, Boolean unicode)
* Object createConditionFindInSet(DataRuntime runtime, StringBuilder builder, String column, Compare compare, Object value, Boolean placeholder, Boolean unicode)
* List createConditionIn(DataRuntime runtime, StringBuilder builder, Compare compare, Object value, Boolean placeholder, Boolean unicode)
* [命令执行]
* DataSet select(DataRuntime runtime, String random, boolean system, String table, ConfigStore configs, Run run)
* List> maps(DataRuntime runtime, String random, ConfigStore configs, Run run)
* Map map(DataRuntime runtime, String random, ConfigStore configs, Run run)
* DataRow sequence(DataRuntime runtime, String random, boolean next, String ... names)
* List> process(DataRuntime runtime, List> list)
******************************************************************************************************************/
/**
* query [调用入口]
*
* 返回DataSet中包含元数据信息,如果性能有要求换成maps
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param prepare 构建最终执行命令的全部参数,包含表(或视图|函数|自定义SQL)查询条件 排序 分页等
* @param configs 过滤条件及相关配置
* @param conditions 查询条件 支持k:v k:v::type 以及原生sql形式(包含ORDER、GROUP、HAVING)默认忽略空值条件
* @return DataSet
*/
@Override
public DataSet querys(DataRuntime runtime, String random, RunPrepare prepare, ConfigStore configs, String ... conditions) {
return super.querys(runtime, random, prepare, configs, conditions);
}
/**
* query procedure [调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param procedure 存储过程
* @param navi 分页
* @return DataSet
*/
@Override
public DataSet querys(DataRuntime runtime, String random, Procedure procedure, PageNavi navi) {
return super.querys(runtime, random, procedure, navi);
}
/**
* query [调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param clazz 类
* @param prepare 构建最终执行命令的全部参数,包含表(或视图|函数|自定义SQL)查询条件 排序 分页等
* @param configs 过滤条件及相关配置
* @param conditions 查询条件 支持k:v k:v::type 以及原生sql形式(包含ORDER、GROUP、HAVING)默认忽略空值条件
* @return EntitySet
* @param Entity
*/
@Override
public EntitySet selects(DataRuntime runtime, String random, RunPrepare prepare, Class clazz, ConfigStore configs, String ... conditions) {
return super.selects(runtime, random, prepare, clazz, configs, conditions);
}
/**
* select [命令执行-子流程]
* DataRow转换成Entity
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param clazz entity class
* @param table table
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return EntitySet
* @param entity.class
*
*/
@Override
protected EntitySet select(DataRuntime runtime, String random, Class clazz, Table table, ConfigStore configs, Run run) {
return super.select(runtime, random, clazz, table, configs, run);
}
/**
* query [调用入口]
*
* 对性能有要求的场景调用,返回java原生map集合,结果中不包含元数据信息
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param prepare 构建最终执行命令的全部参数,包含表(或视图|函数|自定义SQL)查询条件 排序 分页等
* @param configs 过滤条件及相关配置
* @param conditions 查询条件 支持k:v k:v::type 以及原生sql形式(包含ORDER、GROUP、HAVING)默认忽略空值条件
* @return maps 返回map集合
*/
@Override
public List> maps(DataRuntime runtime, String random, RunPrepare prepare, ConfigStore configs, String ... conditions) {
return super.maps(runtime, random, prepare, configs, conditions);
}
/**
* select[命令合成] 最终可执行命令
* 创建查询SQL
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param prepare 构建最终执行命令的全部参数,包含表(或视图|函数|自定义SQL)查询条件 排序 分页等
* @param configs 过滤条件及相关配置
* @param conditions 查询条件 支持k:v k:v::type 以及原生sql形式(包含ORDER、GROUP、HAVING)默认忽略空值条件
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
public Run buildQueryRun(DataRuntime runtime, RunPrepare prepare, ConfigStore configs, Boolean placeholder, Boolean unicode, String ... conditions) {
return super.buildQueryRun(runtime, prepare, configs, placeholder, unicode, conditions);
}
/**
* query run初始化,检测占位符、忽略不存在的列等
* select[命令合成]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @param configs 过滤条件及相关配置
* @param conditions 查询条件 支持k:v k:v::type 以及原生sql形式(包含ORDER、GROUP、HAVING)默认忽略空值条件
*/
@Override
public void init(DataRuntime runtime, Run run, ConfigStore configs, String ... conditions) {
super.init(runtime, run, configs, conditions);
}
/**
* 解析文本中的占位符
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
*/
@Override
public void parseText(DataRuntime runtime, TextRun run) {
super.parseText(runtime, run);
}
/**
* 查询序列cur 或 next value
* @param next 是否生成返回下一个序列 false:cur true:next
* @param names 序列名
* @return String
*/
@Override
public List buildQuerySequence(DataRuntime runtime, boolean next, String ... names) {
return super.buildQuerySequence(runtime, next, names);
}
/**
* select[命令合成-子流程]
* 构造查询主体, 中间过程有可能转换类型
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
*/
@Override
public Run fillQueryContent(DataRuntime runtime, Run run, Boolean placeholder, Boolean unicode) {
return super.fillQueryContent(runtime, run, placeholder, unicode);
}
/**
* select[命令合成-子流程]
* 构造查询主体
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param builder 有可能合个run合成一个 所以提供一个共用builder
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
*/
@Override
public Run fillQueryContent(DataRuntime runtime, StringBuilder builder, Run run, Boolean placeholder, Boolean unicode) {
return super.fillQueryContent(runtime, builder, run, placeholder, unicode);
}
/**
* select[命令合成-子流程]
* 构造查询主体
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run XMLRun
*/
@Override
protected Run fillQueryContent(DataRuntime runtime, XMLRun run, Boolean placeholder, Boolean unicode) {
return super.fillQueryContent(runtime, run, placeholder, unicode);
}
/**
*
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param builder 有可能合个run合成一个 所以提供一个共用builder
* @param run TextRun
*/
@Override
protected Run fillQueryContent(DataRuntime runtime, StringBuilder builder, XMLRun run, Boolean placeholder, Boolean unicode) {
return super.fillQueryContent(runtime, builder, run, placeholder, unicode);
}
/**
* select[命令合成-子流程]
* 构造查询主体
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run TextRun
*/
@Override
protected Run fillQueryContent(DataRuntime runtime, TextRun run, Boolean placeholder, Boolean unicode) {
return super.fillQueryContent(runtime, run, placeholder, unicode);
}
/**
*
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param builder 有可能合个run合成一个 所以提供一个共用builder
* @param run TextRun
*/
@Override
protected Run fillQueryContent(DataRuntime runtime, StringBuilder builder, TextRun run, Boolean placeholder, Boolean unicode) {
return super.fillQueryContent(runtime, builder, run, placeholder, unicode);
}
/**
*
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run TextRun
*/
@Override
protected Run fillQueryContent(DataRuntime runtime, TableRun run, Boolean placeholder, Boolean unicode) {
return super.fillQueryContent(runtime, run, placeholder, unicode);
}
/**
* 有些非JDBC环境也需要用到SQL
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param builder 有可能合个run合成一个 所以提供一个共用builder
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
*/
@Override
protected Run fillQueryContent(DataRuntime runtime, StringBuilder builder, TableRun run, Boolean placeholder, Boolean unicode) {
return super.fillQueryContent(runtime, builder, run, placeholder, unicode);
}
/**
* 主表
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param builder 有可能合个run合成一个 所以提供一个共用builder
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @param prepare TablePrepare
* @return Run
*/
@Override
public Run fillMasterTableContent(DataRuntime runtime, StringBuilder builder, TableRun run, RunPrepare prepare) {
return super.fillMasterTableContent(runtime, builder, run, prepare);
}
/**
* 关联表
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param builder 有可能合个run合成一个 所以提供一个共用builder
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @param prepare TablePrepare
* @return Run
*/
@Override
public Run fillJoinTableContent(DataRuntime runtime, StringBuilder builder, TableRun run, RunPrepare prepare) {
return super.fillJoinTableContent(runtime, builder, run, prepare);
}
/**
* select[命令合成-子流程]
* 合成最终 select 命令 包含分页 排序
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return String
*/
@Override
public String mergeFinalQuery(DataRuntime runtime, Run run) {
return super.mergeFinalQuery(runtime, run);
}
/**
* select[命令合成-子流程]
* 构造 LIKE 查询条件
* 如果不需要占位符 返回null 否则原样返回value
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param builder builder
* @param compare 比较方式 默认 equal 多个值默认 in
* @param value value
* @return value 有占位符时返回占位值,没有占位符返回null
*/
@Override
public RunValue createConditionLike(DataRuntime runtime, StringBuilder builder, Compare compare, Object value, Boolean placeholder, Boolean unicode) {
return super.createConditionLike(runtime, builder, compare, value, placeholder, unicode);
}
/**
* select[命令合成-子流程]
* 构造(NOT) IN 查询条件
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param builder builder
* @param compare 比较方式 默认 equal 多个值默认 in
* @param value value
* @return builder
*/
@Override
public List createConditionIn(DataRuntime runtime, StringBuilder builder, Compare compare, Object value, Boolean placeholder, Boolean unicode) {
return super.createConditionIn(runtime, builder, compare, value, placeholder, unicode);
}
/**
* select [命令执行]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param system 系统表不检测列属性
* @param table 表
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return DataSet
*/
@Override
public DataSet select(DataRuntime runtime, String random, boolean system, Table table, ConfigStore configs, Run run) {
return super.select(runtime, random, system, table, configs, run);
}
/**
* select [命令执行]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return maps
*/
@Override
public List> maps(DataRuntime runtime, String random, ConfigStore configs, Run run) {
return super.maps(runtime, random, configs, run);
}
/**
* select [命令执行]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return map
*/
@Override
public Map map(DataRuntime runtime, String random, ConfigStore configs, Run run) {
return super.map(runtime, random, configs, run);
}
/**
* select [命令执行]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param next 是否查下一个序列值
* @param names 存储过程名称s
* @return DataRow 保存序列查询结果 以存储过程name作为key
*/
@Override
public DataRow sequence(DataRuntime runtime, String random, boolean next, String ... names) {
return super.sequence(runtime, random, next, names);
}
/**
* select [结果集封装-子流程]
* JDBC执行完成后的结果处理
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param list JDBC执行返回的结果集
* @return maps
*/
@Override
public List> process(DataRuntime runtime, List> list) {
return super.process(runtime, list);
}
/* *****************************************************************************************************************
* COUNT
* -----------------------------------------------------------------------------------------------------------------
* [调用入口]
* long count(DataRuntime runtime, String random, RunPrepare prepare, ConfigStore configs, String ... conditions)
* [命令合成]
* String mergeFinalTotal(DataRuntime runtime, Run run)
* [命令执行]
* long count(DataRuntime runtime, String random, Run run)
******************************************************************************************************************/
/**
* count [调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param prepare 构建最终执行命令的全部参数,包含表(或视图|函数|自定义SQL)查询条件 排序 分页等
* @param configs 过滤条件及相关配置
* @param conditions 查询条件 支持k:v k:v::type 以及原生sql形式(包含ORDER、GROUP、HAVING)默认忽略空值条件
* @return long
*/
@Override
public long count(DataRuntime runtime, String random, RunPrepare prepare, ConfigStore configs, String ... conditions) {
return super.count(runtime, random, prepare, configs, conditions);
}
/**
* count [命令合成]
* 合成最终 select count 命令
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return String
*/
@Override
public String mergeFinalTotal(DataRuntime runtime, Run run) {
return super.mergeFinalTotal(runtime, run);
}
/**
* count [命令执行]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return long
*/
@Override
public long count(DataRuntime runtime, String random, Run run) {
return super.count(runtime, random, run);
}
/* *****************************************************************************************************************
* EXISTS
* -----------------------------------------------------------------------------------------------------------------
* boolean exists(DataRuntime runtime, String random, RunPrepare prepare, ConfigStore configs, String ... conditions)
* String mergeFinalExists(DataRuntime runtime, Run run)
******************************************************************************************************************/
/**
* exists [调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param prepare 构建最终执行命令的全部参数,包含表(或视图|函数|自定义SQL)查询条件 排序 分页等
* @param configs 查询条件及相关设置
* @param conditions 查询条件 支持k:v k:v::type 以及原生sql形式(包含ORDER、GROUP、HAVING)默认忽略空值条件
* @return boolean
*/
@Override
public boolean exists(DataRuntime runtime, String random, RunPrepare prepare, ConfigStore configs, String ... conditions) {
return super.exists(runtime, random, prepare, configs, conditions);
}
/**
* exists [命令合成]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return String
*/
@Override
public String mergeFinalExists(DataRuntime runtime, Run run) {
return super.mergeFinalExists(runtime, run);
}
/* *****************************************************************************************************************
* EXECUTE
* -----------------------------------------------------------------------------------------------------------------
* [调用入口]
* long execute(DataRuntime runtime, String random, RunPrepare prepare, ConfigStore configs, String ... conditions)
* long execute(DataRuntime runtime, String random, int batch, ConfigStore configs, RunPrepare prepare, Collection values)
* boolean execute(DataRuntime runtime, String random, Procedure procedure)
* [命令合成]
* Run buildExecuteRun(DataRuntime runtime, RunPrepare prepare, ConfigStore configs, String ... conditions)
* void fillExecuteContent(DataRuntime runtime, Run run)
* [命令执行]
* long execute(DataRuntime runtime, String random, ConfigStore configs, Run run)
******************************************************************************************************************/
/**
* execute [调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param prepare 构建最终执行命令的全部参数,包含表(或视图|函数|自定义SQL)查询条件 排序 分页等
* @param configs 查询条件及相关设置
* @param conditions 查询条件 支持k:v k:v::type 以及原生sql形式(包含ORDER、GROUP、HAVING)默认忽略空值条件
* @return 影响行数
*/
@Override
public long execute(DataRuntime runtime, String random, RunPrepare prepare, ConfigStore configs, String ... conditions) {
return super.execute(runtime, random, prepare, configs, conditions);
}
/**
* execute [调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param batch 批量执行每批最多数量
* @param prepare 构建最终执行命令的全部参数,包含表(或视图|函数|自定义SQL)查询条件 排序 分页等
* @param configs 查询条件及相关设置
* @param values values
* @return 影响行数
*/
@Override
public long execute(DataRuntime runtime, String random, int batch, ConfigStore configs, RunPrepare prepare, Collection values) {
return super.execute(runtime, random, batch, configs, prepare, values);
}
/**
* execute [调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param batch 批量执行每批最多数量
* @param vol 批量执行每行参数数量
* @param prepare 构建最终执行命令的全部参数,包含表(或视图|函数|自定义SQL)查询条件 排序 分页等
* @param configs 查询条件及相关设置
* @param values values
* @return 影响行数
*/
@Override
public long execute(DataRuntime runtime, String random, int batch, int vol, ConfigStore configs, RunPrepare prepare, Collection values) {
return super.execute(runtime, random, batch, vol, configs, prepare, values);
}
/**
* procedure [命令执行]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param procedure 存储过程
* @param random random
* @return 影响行数
*/
@Override
public boolean execute(DataRuntime runtime, String random, Procedure procedure) {
return super.execute(runtime, random, procedure);
}
/**
* execute [命令合成]
* 创建执行SQL
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param prepare 构建最终执行命令的全部参数,包含表(或视图|函数|自定义SQL)查询条件 排序 分页等
* @param configs 查询条件及相关设置
* @param conditions 查询条件 支持k:v k:v::type 以及原生sql形式(包含ORDER、GROUP、HAVING)默认忽略空值条件
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
public Run buildExecuteRun(DataRuntime runtime, RunPrepare prepare, ConfigStore configs, Boolean placeholder, Boolean unicode, String ... conditions) {
return super.buildExecuteRun(runtime, prepare, configs, placeholder, unicode, conditions);
}
/**
* execute [命令合成]
* 填充execute命令
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run XMLRun
*/
@Override
protected void fillExecuteContent(DataRuntime runtime, XMLRun run) {
super.fillExecuteContent(runtime, run);
}
/**
* execute [命令合成]
* 填充execute命令
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run XMLRun
*/
@Override
protected void fillExecuteContent(DataRuntime runtime, TextRun run, Boolean placeholder, Boolean unicode) {
super.fillExecuteContent(runtime, run, placeholder, unicode);
}
/**
* execute [命令合成]
* 填充execute命令
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run XMLRun
*/
@Override
protected void fillExecuteContent(DataRuntime runtime, TableRun run, Boolean placeholder, Boolean unicode) {
super.fillExecuteContent(runtime, run, placeholder, unicode);
}
/**
* execute [命令合成-子流程]
* 填充 execute 命令内容
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
*/
@Override
public void fillExecuteContent(DataRuntime runtime, Run run, Boolean placeholder, Boolean unicode) {
super.fillExecuteContent(runtime, run, placeholder, unicode);
}
/**
* execute [命令执行]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return 影响行数
*/
@Override
public long execute(DataRuntime runtime, String random, ConfigStore configs, Run run) {
return super.execute(runtime, random, configs, run);
}
/* *****************************************************************************************************************
* DELETE
* -----------------------------------------------------------------------------------------------------------------
* [调用入口]
* long deletes(DataRuntime runtime, String random, int batch, String table, ConfigStore configs, String column, Collection values)
* long delete(DataRuntime runtime, String random, String table, ConfigStore configs, Object obj, String... columns)
* long delete(DataRuntime runtime, String random, String table, ConfigStore configs, String... conditions)
* long truncate(DataRuntime runtime, String random, String table)
* [命令合成]
* List buildDeleteRun(DataRuntime runtime, String table, ConfigStore configs, Object obj, String ... columns)
* List buildDeleteRun(DataRuntime runtime, int batch, String table, ConfigStore configs, String column, Object values)
* List buildTruncateRun(DataRuntime runtime, String table)
* List buildDeleteRunFromTable(DataRuntime runtime, int batch, String table, ConfigStore configs,String column, Object values)
* List buildDeleteRunFromEntity(DataRuntime runtime, String table, ConfigStore configs, Object obj, String ... columns)
* void fillDeleteRunContent(DataRuntime runtime, Run run)
* [命令执行]
* long delete(DataRuntime runtime, String random, ConfigStore configs, Run run)
******************************************************************************************************************/
/**
* delete [调用入口]
*
* 合成 where column in (values)
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param table 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param values 列对应的值
* @return 影响行数
* @param T
*/
@Override
public long deletes(DataRuntime runtime, String random, int batch, Table table, ConfigStore configs, String key, Collection values) {
return super.deletes(runtime, random, batch, table, configs, key, values);
}
/**
* delete [调用入口]
*
* 合成 where k1 = v1 and k2 = v2
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param obj entity或DataRow
* @param columns 删除条件的列或属性,根据columns取obj值并合成删除条件
* @return 影响行数
*/
@Override
public long delete(DataRuntime runtime, String random, Table dest, ConfigStore configs, Object obj, String... columns) {
return super.delete(runtime, random, dest, configs, obj, columns);
}
/**
* delete [调用入口]
*
* 根据configs和conditions过滤条件
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param table 表
* @param configs 查询条件及相关设置
* @param conditions 查询条件 支持k:v k:v::type 以及原生sql形式(包含ORDER、GROUP、HAVING)默认忽略空值条件
* @return 影响行数
*/
@Override
public long delete(DataRuntime runtime, String random, Table table, ConfigStore configs, String... conditions) {
return super.delete(runtime, random, table, configs, conditions);
}
/**
* truncate [调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param table 表
* @return 1表示成功执行
*/
@Override
public long truncate(DataRuntime runtime, String random, Table table) {
return super.truncate(runtime, random, table);
}
/**
* delete[命令合成]
* 合成 where k1 = v1 and k2 = v2
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param dest 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param obj entity或DataRow
* @param columns 删除条件的列或属性,根据columns取obj值并合成删除条件
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
public List buildDeleteRun(DataRuntime runtime, Table dest, ConfigStore configs, Object obj, Boolean placeholder, Boolean unicode, String ... columns) {
return super.buildDeleteRun(runtime, dest, configs, obj, placeholder, unicode, columns);
}
/**
* delete[命令合成]
* 合成 where column in (values)
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param table 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param key 列
* @param values values
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
public List buildDeleteRun(DataRuntime runtime, int batch, Table table, ConfigStore configs, Boolean placeholder, Boolean unicode, String key, Object values) {
return super.buildDeleteRun(runtime, batch, table, configs, placeholder, unicode, key, values);
}
/**
* delete[命令合成]
* 合成 where column in (values)
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param table 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
public List buildTruncateRun(DataRuntime runtime, Table table) {
return super.buildTruncateRun(runtime, table);
}
/**
* delete[命令合成-子流程]
* 合成 where column in (values)
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param table 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源
* @param column 列
* @param values values
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
public List buildDeleteRunFromTable(DataRuntime runtime, int batch, Table table, ConfigStore configs, Boolean placeholder, Boolean unicode, String column, Object values) {
return super.buildDeleteRunFromTable(runtime, batch, table, configs, placeholder, unicode, column, values);
}
/**
* delete[命令合成-子流程]
* 合成 where k1 = v1 and k2 = v2
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param table 表 如果不提供表名则根据data解析,表名可以事实前缀<数据源名>表示切换数据源 如果为空 可以根据obj解析
* @param obj entity或DataRow
* @param columns 删除条件的列或属性,根据columns取obj值并合成删除条件
* @return Run 最终执行命令 如JDBC环境中的 SQL 与 参数值
*/
@Override
public List buildDeleteRunFromEntity(DataRuntime runtime, Table table, ConfigStore configs, Object obj, Boolean placeholder, Boolean unicode, String... columns) {
return super.buildDeleteRunFromEntity(runtime, table, configs, obj, placeholder, unicode, columns);
}
/**
* delete[命令合成-子流程]
* 构造查询主体 拼接where group等(不含分页 ORDER)
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
*/
@Override
public void fillDeleteRunContent(DataRuntime runtime, Run run, Boolean placeholder, Boolean unicode) {
super.fillDeleteRunContent(runtime, run, placeholder, unicode);
}
/**
* delete[命令执行]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param configs 查询条件及相关设置
* @param run 最终待执行的命令和参数(如JDBC环境中的SQL)
* @return 影响行数
*/
@Override
public long delete(DataRuntime runtime, String random, ConfigStore configs, Run run) {
return super.delete(runtime, random, configs, run);
}
/* *****************************************************************************************************************
*
* metadata
*
* =================================================================================================================
* database : 数据库(catalog, schema)
* table : 表
* master table : 主表
* partition table : 分区表
* column : 列
* tag : 标签
* primary key : 主键
* foreign key : 外键
* index : 索引
* constraint : 约束
* trigger : 触发器
* procedure : 存储过程
* function : 函数
******************************************************************************************************************/
/* *****************************************************************************************************************
* database
* -----------------------------------------------------------------------------------------------------------------
* [调用入口]
* String version(DataRuntime runtime, String random)
* String product(DataRuntime runtime, String random)
* Database database(DataRuntime runtime, String random)
* LinkedHashMap databases(DataRuntime runtime, String random, String name)
* List databases(DataRuntime runtime, String random, boolean greedy, String name)
* Database database(DataRuntime runtime, String random, String name)
* Database database(DataRuntime runtime, String random)
* String String product(DataRuntime runtime, String random);
* String String version(DataRuntime runtime, String random);
* [命令合成]
* List buildQueryProductRun(DataRuntime runtime)
* List buildQueryVersionRun(DataRuntime runtime)
* List buildQueryDatabasesRun(DataRuntime runtime, boolean greedy, String name)
* List buildQueryDatabaseRun(DataRuntime runtime, boolean greedy, String name)
* List buildQueryProductRun(DataRuntime runtime, boolean greedy, String name)
* List buildQueryVersionRun(DataRuntime runtime, boolean greedy, String name)
* List buildQueryDatabaseRun(DataRuntime runtime)
* [结果集封装]
* LinkedHashMap databases(DataRuntime runtime, int index, boolean create, LinkedHashMap databases, Catalog catalog, Schema schema, DataSet set)
* List databases(DataRuntime runtime, int index, boolean create, List databases, Catalog catalog, Schema schema, DataSet set)
* Database database(DataRuntime runtime, boolean create, Database dataase, DataSet set)
* Database database(DataRuntime runtime, boolean create, Database dataase)
* String product(DataRuntime runtime, boolean create, Database product, DataSet set)
* String product(DataRuntime runtime, boolean create, String product)
* String version(DataRuntime runtime, int index, boolean create, String version, DataSet set)
* String version(DataRuntime runtime, boolean create, String version)
* Catalog catalog(DataRuntime runtime, boolean create, Catalog catalog, DataSet set)
* Catalog catalog(DataRuntime runtime, boolean create, Catalog catalog)
* Schema schema(DataRuntime runtime, boolean create, Schema schema, DataSet set)
* Schema schema(DataRuntime runtime, boolean create, Schema schema)
* Database database(DataRuntime runtime, boolean create, Database dataase)
* String product(DataRuntime runtime, int index, boolean create, String product, DataSet set)
* String product(DataRuntime runtime, boolean create, String product)
******************************************************************************************************************/
/**
* database[调用入口]
* 当前数据库
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @return Database
*/
@Override
public Database database(DataRuntime runtime, String random) {
return super.database(runtime, random);
}
/**
* database[调用入口]
* 当前数据源 数据库描述(产品名称+版本号)
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @return String
*/
@Override
public String product(DataRuntime runtime, String random) {
return super.product(runtime, random);
}
/**
* database[调用入口]
* 当前数据源 数据库类型
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @return String
*/
@Override
public String version(DataRuntime runtime, String random) {
return super.version(runtime, random);
}
/**
* database[调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param greedy 贪婪模式 true:查询权限范围内尽可能多的数据 false:只查当前catalog/schema/database范围内数据
* @param query 查询条件 根据metadata属性
* @return LinkedHashMap
*/
@Override
public List databases(DataRuntime runtime, String random, boolean greedy, Database query) {
return super.databases(runtime, random, greedy, query);
}
/**
* database[调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param query 查询条件 根据metadata属性
* @return LinkedHashMap
*/
@Override
public LinkedHashMap databases(DataRuntime runtime, String random, Database query) {
return super.databases(runtime, random, query);
}
/**
* database[命令合成]
* 查询当前数据源 数据库产品说明(产品名称+版本号)
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @return runs
* @throws Exception 异常
*/
@Override
public List buildQueryProductRun(DataRuntime runtime) throws Exception {
return super.buildQueryProductRun(runtime);
}
/**
* database[命令合成]
* 查询当前数据源 数据库版本 版本号比较复杂 不是全数字
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @return runs
* @throws Exception 异常
*/
@Override
public List buildQueryVersionRun(DataRuntime runtime) throws Exception {
return super.buildQueryVersionRun(runtime);
}
/**
* database[命令合成]
* 查询全部数据库
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param query 查询条件 根据metadata属性
* @param greedy 贪婪模式 true:查询权限范围内尽可能多的数据 false:只查当前catalog/schema/database范围内数据
* @return runs
* @throws Exception 异常
*/
@Override
public List buildQueryDatabasesRun(DataRuntime runtime, boolean greedy, Database query) throws Exception {
return super.buildQueryDatabasesRun(runtime, greedy, query);
}
/**
* database[结果集封装]
* database 属性与结果集对应关系
* @return MetadataFieldRefer
*/
@Override
public MetadataFieldRefer initDatabaseFieldRefer() {
return super.initDatabaseFieldRefer();
}
/**
* database[结果集封装]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照 buildQueryDatabaseRun 返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @param set 查询结果集
* @return LinkedHashMap
* @throws Exception
*/
@Override
public LinkedHashMap databases(DataRuntime runtime, int index, boolean create, LinkedHashMap previous, Database query, DataSet set) throws Exception {
return super.databases(runtime, index, create, previous, query, set);
}
/**
* database[结果集封装]
*
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照 buildQueryDatabaseRun 返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @param set 查询结果集
* @return List
* @throws Exception
*/
@Override
public List databases(DataRuntime runtime, int index, boolean create, List previous, Database query, DataSet set) throws Exception {
return super.databases(runtime, index, create, previous, query, set);
}
/**
* database[结果集封装]
* 当前database 根据查询结果集
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照 buildQueryDatabaseRun 返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param meta 上一步查询结果
* @param set 查询结果集
* @return database
* @throws Exception 异常
*/
@Override
public Database database(DataRuntime runtime, int index, boolean create, Database meta, DataSet set) throws Exception {
return super.database(runtime, index, create, meta, set);
}
/**
* database[结果集封装]
* 当前database 根据驱动内置接口补充
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param meta 上一步查询结果
* @return database
* @throws Exception 异常
*/
@Override
public Database database(DataRuntime runtime, boolean create, Database meta) throws Exception {
return super.database(runtime, create, meta);
}
/**
* database[结果集封装]
* 根据查询结果集构造 product
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param product 上一步查询结果
* @param set 查询结果集
* @return product
* @throws Exception 异常
*/
@Override
public String product(DataRuntime runtime, int index, boolean create, String product, DataSet set) {
return super.product(runtime, index, create, product, set);
}
/**
* database[结果集封装]
* 根据JDBC内置接口 product
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param product 上一步查询结果
* @return product
* @throws Exception 异常
*/
@Override
public String product(DataRuntime runtime, boolean create, String product) {
return super.product(runtime, create, product);
}
/**
* database[结果集封装]
* 根据查询结果集构造 version
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param version 上一步查询结果
* @param set 查询结果集
* @return version
* @throws Exception 异常
*/
@Override
public String version(DataRuntime runtime, int index, boolean create, String version, DataSet set) {
return super.version(runtime, index, create, version, set);
}
/**
* database[结果集封装]
* 根据JDBC内置接口 version
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param version 上一步查询结果
* @return version
* @throws Exception 异常
*/
@Override
public String version(DataRuntime runtime, boolean create, String version) {
return super.version(runtime, create, version);
}
/**
* schema[结果集封装]
* 根据查询结果封装 schema 对象,只封装catalog,schema,name等基础属性
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param meta 上一步封装结果
* @param query 查询条件 根据metadata属性
* @param row 查询结果集
* @return Database
*/
@Override
public T init(DataRuntime runtime, int index, T meta, Database query, DataRow row) {
return super.init(runtime, index, meta, query, row);
}
/**
* database[结果集封装]
* 根据查询结果封装 database 对象,更多属性
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param meta 上一步封装结果
* @param row 查询结果集
* @return Table
*/
@Override
public T detail(DataRuntime runtime, int index, T meta, Database query, DataRow row) {
return super.detail(runtime, index, meta, query, row);
}
/* *****************************************************************************************************************
* catalog
* -----------------------------------------------------------------------------------------------------------------
* [调用入口]
* LinkedHashMap catalogs(DataRuntime runtime, String random, String name)
* List catalogs(DataRuntime runtime, String random, boolean greedy, String name)
* [命令合成]
* List buildQueryCatalogsRun(DataRuntime runtime, boolean greedy, String name)
* [结果集封装]
* LinkedHashMap catalogs(DataRuntime runtime, int index, boolean create, LinkedHashMap catalogs, DataSet set)
* List catalogs(DataRuntime runtime, int index, boolean create, List catalogs, DataSet set)
* LinkedHashMap catalogs(DataRuntime runtime, boolean create, LinkedHashMap catalogs)
* List catalogs(DataRuntime runtime, boolean create, List catalogs)
*
* Catalog catalog(DataRuntime runtime, int index, boolean create, Catalog catalog, DataSet set)
* Catalog catalog(DataRuntime runtime, int index, boolean create, Catalog catalog)
******************************************************************************************************************/
/**
* catalog[调用入口]
* 当前Catalog
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @return Catalog
*/
@Override
public Catalog catalog(DataRuntime runtime, String random) {
return super.catalog(runtime, random);
}
/**
* catalog[调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param query 查询条件 根据metadata属性
* @return LinkedHashMap
*/
@Override
public LinkedHashMap catalogs(DataRuntime runtime, String random, Catalog query) {
return super.catalogs(runtime, random, query);
}
/**
* catalog[调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param query 查询条件 根据metadata属性
* @return LinkedHashMap
*/
@Override
public List catalogs(DataRuntime runtime, String random, boolean greedy, Catalog query) {
return super.catalogs(runtime, random, greedy, query);
}
/**
* catalog[命令合成]
* 查询当前catalog
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @return runs
* @throws Exception 异常
*/
@Override
public List buildQueryCatalogRun(DataRuntime runtime, String random) throws Exception {
return super.buildQueryCatalogRun(runtime, random);
}
/**
* catalog[命令合成]
* 查询全部catalog
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param query 查询条件 根据metadata属性
* @param greedy 贪婪模式 true:查询权限范围内尽可能多的数据 false:只查当前catalog/schema/database范围内数据
* @return runs
* @throws Exception 异常
*/
@Override
public List buildQueryCatalogsRun(DataRuntime runtime, boolean greedy, Catalog query) throws Exception {
return super.buildQueryCatalogsRun(runtime, greedy, query);
}
/**
* Catalog[结果集封装]
* Catalog 属性与结果集对应关系
* @return MetadataFieldRefer
*/
@Override
public MetadataFieldRefer initCatalogFieldRefer() {
return super.initCatalogFieldRefer();
}
/**
* catalog[结果集封装]
* 根据查询结果集构造 Database
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照 buildQueryDatabaseRun 返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @param set 查询结果集
* @return databases
* @throws Exception 异常
*/
@Override
public LinkedHashMap catalogs(DataRuntime runtime, int index, boolean create, LinkedHashMap previous, Catalog query, DataSet set) throws Exception {
return super.catalogs(runtime, index, create, previous, query, set);
}
/**
* catalog[结果集封装]
* 根据查询结果集构造 Database
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照 buildQueryDatabaseRun 返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @param set 查询结果集
* @return databases
* @throws Exception 异常
*/
@Override
public List catalogs(DataRuntime runtime, int index, boolean create, List previous, Catalog query, DataSet set) throws Exception {
return super.catalogs(runtime, index, create, previous, query, set);
}
/**
* catalog[结果集封装]
* 根据驱动内置接口补充 catalog
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @return catalogs
* @throws Exception 异常
*/
@Override
public LinkedHashMap catalogs(DataRuntime runtime, boolean create, LinkedHashMap previous) throws Exception {
return super.catalogs(runtime, create, previous);
}
/**
* catalog[结果集封装]
* 根据驱动内置接口补充 catalog
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @return catalogs
* @throws Exception 异常
*/
@Override
public List catalogs(DataRuntime runtime, boolean create, List previous) throws Exception {
return super.catalogs(runtime, create, previous);
}
/**
* catalog[结果集封装]
* 当前catalog 根据查询结果集
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照 buildQueryDatabaseRun 返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param meta 上一步查询结果
* @param set 查询结果集
* @return Catalog
* @throws Exception 异常
*/
@Override
public Catalog catalog(DataRuntime runtime, int index, boolean create, Catalog meta, DataSet set) throws Exception {
return super.catalog(runtime, index, create, meta, set);
}
/**
* catalog[结果集封装]
* 当前catalog 根据驱动内置接口补充
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param meta 上一步查询结果
* @return Catalog
* @throws Exception 异常
*/
@Override
public Catalog catalog(DataRuntime runtime, boolean create, Catalog meta) throws Exception {
return super.catalog(runtime, create, meta);
}
/**
* catalog[结果集封装]
* 根据查询结果封装 catalog 对象,只封装catalog,schema,name等基础属性
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param meta 上一步封装结果
* @param query 查询条件 根据metadata属性
* @param row 查询结果集
* @return Catalog
*/
@Override
public T init(DataRuntime runtime, int index, T meta, Catalog query, DataRow row) {
return super.init(runtime, index, meta, query, row);
}
/**
* catalog[结果集封装]
* 根据查询结果封装 catalog 对象,更多属性
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param meta 上一步封装结果
* @param row 查询结果集
* @return Table
*/
@Override
public T detail(DataRuntime runtime, int index, T meta, Catalog query, DataRow row) {
return super.detail(runtime, index, meta, query, row);
}
/* *****************************************************************************************************************
* schema
* -----------------------------------------------------------------------------------------------------------------
* [调用入口]
* LinkedHashMap schemas(DataRuntime runtime, String random, Catalog catalog, String name)
* List schemas(DataRuntime runtime, String random, boolean greedy, Catalog catalog, String name)
* [命令合成]
* List buildQuerySchemasRun(DataRuntime runtime, boolean greedy, Catalog catalog, String name)
* [结果集封装]
* LinkedHashMap schemas(DataRuntime runtime, int index, boolean create, LinkedHashMap schemas, Catalog catalog, Schema schema, DataSet set)
* List schemas(DataRuntime runtime, int index, boolean create, List schemas, Catalog catalog, Schema schema, DataSet set)
* Schema schema(DataRuntime runtime, int index, boolean create, Schema schema, DataSet set)
* Schema schema(DataRuntime runtime, int index, boolean create, Schema schema)
******************************************************************************************************************/
/**
* schema[调用入口]
* 当前Schema
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @return Schema
*/
@Override
public Schema schema(DataRuntime runtime, String random) {
return super.schema(runtime, random);
}
/**
* schema[调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param query 查询条件 根据metadata属性
* @return LinkedHashMap
*/
@Override
public LinkedHashMap schemas(DataRuntime runtime, String random, Schema query) {
return super.schemas(runtime, random, query);
}
/**
* schema[调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param query 查询条件 根据metadata属性
* @return LinkedHashMap
*/
@Override
public List schemas(DataRuntime runtime, String random, boolean greedy, Schema query) {
return super.schemas(runtime, random, greedy, query);
}
/**
* schema[命令合成]
* 查询当前schema
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @return runs
* @throws Exception 异常
*/
@Override
public List buildQuerySchemaRun(DataRuntime runtime, String random) throws Exception {
return super.buildQuerySchemaRun(runtime, random);
}
/**
* catalog[命令合成]
* 查询全部数据库
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param query 查询条件 根据metadata属性
* @param greedy 贪婪模式 true:查询权限范围内尽可能多的数据 false:只查当前catalog/schema/database范围内数据
* @return runs
* @throws Exception 异常
*/
@Override
public List buildQuerySchemasRun(DataRuntime runtime, boolean greedy, Schema query) throws Exception {
return super.buildQuerySchemasRun(runtime, greedy, query);
}
/**
* Schema[结果集封装]
* Schema 属性与结果集对应关系
* @return MetadataFieldRefer
*/
@Override
public MetadataFieldRefer initSchemaFieldRefer() {
return super.initSchemaFieldRefer();
}
/**
* schema[结果集封装]
* 根据查询结果集构造 Schema
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照 buildQueryDatabaseRun 返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @param set 查询结果集
* @return databases
* @throws Exception 异常
*/
@Override
public LinkedHashMap schemas(DataRuntime runtime, int index, boolean create, LinkedHashMap previous, Schema query, DataSet set) throws Exception {
return super.schemas(runtime, index, create, previous, query, set);
}
/**
* schema[结果集封装]
* 根据查询结果集构造 Schema
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照 buildQueryDatabaseRun 返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @param set 查询结果集
* @return databases
* @throws Exception 异常
*/
@Override
public List schemas(DataRuntime runtime, int index, boolean create, List previous, Schema query, DataSet set) throws Exception {
return super.schemas(runtime, index, create, previous, query, set);
}
/**
* schema[结果集封装]
* 根据驱动内置接口补充 Schema
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @return databases
* @throws Exception 异常
*/
@Override
public LinkedHashMap schemas(DataRuntime runtime, boolean create, LinkedHashMap previous, Schema query) throws Exception {
return super.schemas(runtime, create, previous, query);
}
/**
* schema[结果集封装]
* 根据驱动内置接口补充 Schema
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @return databases
* @throws Exception 异常
*/
@Override
public List schemas(DataRuntime runtime, boolean create, List previous, Schema query) throws Exception {
return super.schemas(runtime, create, previous, query);
}
/**
* schema[结果集封装]
* 当前schema 根据查询结果集
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照 buildQuerySchemaRun 返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param meta 上一步查询结果
* @param set 查询结果集
* @return schema
* @throws Exception 异常
*/
@Override
public Schema schema(DataRuntime runtime, int index, boolean create, Schema meta, DataSet set) throws Exception {
return super.schema(runtime, index, create, meta, set);
}
/**
* schema[结果集封装]
* 当前schema 根据驱动内置接口补充
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param meta 上一步查询结果
* @return schema
* @throws Exception 异常
*/
@Override
public Schema schema(DataRuntime runtime, boolean create, Schema meta) throws Exception {
return super.schema(runtime, create, meta);
}
/**
* 根据结果集对象获取列结构,如果有表名应该调用metadata().columns(table);或metadata().table(table).getColumns()
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param prepare 构建最终执行命令的全部参数,包含表(或视图|函数|自定义SQL)查询条件 排序 分页等
* @param comment 是否需要查询列注释
* @return LinkedHashMap
*/
@Override
public LinkedHashMap metadata(DataRuntime runtime, RunPrepare prepare, boolean comment) {
return super.metadata(runtime, prepare, comment);
}
/**
* 检测name,name中可能包含catalog.schema.name
* 如果有一项或三项,在父类中解析
* 如果只有两项,需要根据不同数据库区分出最前一项是catalog还是schema,如果区分不出来的抛出异常
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param meta 表,视图等
* @return T
* @throws Exception 如果区分不出来的抛出异常
*/
@Override
public T checkName(DataRuntime runtime, String random, T meta) throws RuntimeException {
return super.checkName(runtime, random, meta);
}
/**
* schema[结果集封装]
* 根据查询结果封装 schema 对象,只封装catalog,schema,name等基础属性
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param meta 上一步封装结果
* @param query 查询条件 根据metadata属性
* @param row 查询结果集
* @return Schema
*/
@Override
public T init(DataRuntime runtime, int index, T meta, Schema query, DataRow row) {
return super.init(runtime, index, meta, query, row);
}
/**
* schema[结果集封装]
* 根据查询结果封装 schema 对象,更多属性
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param meta 上一步封装结果
* @param row 查询结果集
* @return Table
*/
@Override
public T detail(DataRuntime runtime, int index, T meta, Schema query, DataRow row) {
return super.detail(runtime, index, meta, query, row);
}
/* *****************************************************************************************************************
* table
* -----------------------------------------------------------------------------------------------------------------
* [调用入口]
* List tables(DataRuntime runtime, String random, boolean greedy, Catalog catalog, Schema schema, String pattern, int types, boolean struct)
* LinkedHashMap tables(DataRuntime runtime, String random, Catalog catalog, Schema schema, String pattern, String types, boolean struct)
* [命令合成]
* List buildQueryTablesRun(DataRuntime runtime, boolean greedy, Catalog catalog, Schema schema, String pattern, int types, ConfigStore configs)
* List buildQueryTablesCommentRun(DataRuntime runtime, Catalog catalog, Schema schema, String pattern, int types)
* [结果集封装]
* LinkedHashMap tables(DataRuntime runtime, int index, boolean create, LinkedHashMap tables, Catalog catalog, Schema schema, DataSet set)
* List tables(DataRuntime runtime, int index, boolean create, List tables, Catalog catalog, Schema schema, DataSet set)
* LinkedHashMap tables(DataRuntime runtime, boolean create, LinkedHashMap tables, Catalog catalog, Schema schema, String pattern, int types)
* List tables(DataRuntime runtime, boolean create, List tables, Catalog catalog, Schema schema, String pattern, int types)
* LinkedHashMap comments(DataRuntime runtime, int index, boolean create, LinkedHashMap tables, Catalog catalog, Schema schema, DataSet set)
* [调用入口]
* List ddl(DataRuntime runtime, String random, Table table, boolean init)
* [命令合成]
* List buildQueryDdlRun(DataRuntime runtime, Table table)
* [结果集封装]
* List ddl(DataRuntime runtime, int index, Table table, List ddls, DataSet set)
******************************************************************************************************************/
/**
*
* table[调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param greedy 贪婪模式 true:查询权限范围内尽可能多的数据 false:只查当前catalog/schema/database范围内数据
* @param query 查询条件 根据metadata属性
* @param types 查询的类型 参考 Table.TYPE 多个类型相加算出总和
* @param struct 查询的属性 参考Metadata.TYPE 多个属性相加算出总和 true:表示查询全部
* @return List
* @param Table
*/
@Override
public List tables(DataRuntime runtime, String random, boolean greedy, Table query, int types, int struct, ConfigStore configs) {
return super.tables(runtime, random, greedy, query, types, struct, configs);
}
/**
* table[结果集封装-子流程]
* 查出所有key并以大写缓存 用来实现忽略大小写
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param query 查询条件 根据metadata属性
*/
@Override
protected void tableMap(DataRuntime runtime, String random, boolean greedy, Table query, ConfigStore configs) {
super.tableMap(runtime, random, greedy, query, configs);
}
/**
* table[结果集封装-子流程]
* 查出所有key并以大写缓存 用来实现忽略大小写
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param query 查询条件 根据metadata属性
*/
@Override
public LinkedHashMap tables(DataRuntime runtime, String random, Table query, int types, int struct, ConfigStore configs) {
return super.tables(runtime, random, query, types, struct, configs);
}
/**
* table[命令合成]
* 查询表,不是查表中的数据
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param greedy 贪婪模式 true:查询权限范围内尽可能多的数据 false:只查当前catalog/schema/database范围内数据
* @param query 查询条件 根据metadata属性
* @param types 查询的类型 参考 Table.TYPE 多个类型相加算出总和
* @return String
* @throws Exception Exception
*/
@Override
public List buildQueryTablesRun(DataRuntime runtime, boolean greedy, Table query, int types, ConfigStore configs) throws Exception {
return super.buildQueryTablesRun(runtime, greedy, query, types, configs);
}
/**
* Table[结果集封装]
* Table 属性与结果集对应关系
* @return MetadataFieldRefer
*/
@Override
public MetadataFieldRefer initTableFieldRefer() {
return super.initTableFieldRefer();
}
/**
* Table[结果集封装]
* TableComment 属性与结果集对应关系
* @return MetadataFieldRefer
*/
@Override
public MetadataFieldRefer initTableCommentFieldRefer() {
return super.initTableCommentFieldRefer();
}
/**
* table[命令合成]
* 查询表备注
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param query 查询条件 根据metadata属性
* @param types 查询的类型 参考 Table.TYPE 多个类型相加算出总和
* @return String
* @throws Exception Exception
*/
@Override
public List buildQueryTablesCommentRun(DataRuntime runtime, Table query, int types) throws Exception {
return super.buildQueryTablesCommentRun(runtime, query, types);
}
/**
* table[结果集封装]
* 根据查询结果集构造Table
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照buildQueryTablesRun返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param query 查询条件 根据metadata属性
* @param previous 上一步查询结果
* @param set 查询结果集
* @return tables
* @throws Exception 异常
*/
@Override
public LinkedHashMap tables(DataRuntime runtime, int index, boolean create, LinkedHashMap previous, Table query, DataSet set) throws Exception {
return super.tables(runtime, index, create, previous, query, set);
}
/**
* table[结果集封装]
* 根据查询结果集构造Table
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照buildQueryTablesRun返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param query 查询条件 根据metadata属性
* @param previous 上一步查询结果
* @param set 查询结果集
* @return tables
* @throws Exception 异常
*/
@Override
public List tables(DataRuntime runtime, int index, boolean create, List previous, Table query, DataSet set) throws Exception {
return super.tables(runtime, index, create, previous, query, set);
}
/**
* table[结果集封装]
* 根据驱动内置方法补充
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @param query 查询条件 根据metadata属性
* @param types 查询的类型 参考 Table.TYPE 多个类型相加算出总和
* @return tables
* @throws Exception 异常
*/
@Override
public LinkedHashMap tables(DataRuntime runtime, boolean create, LinkedHashMap previous, Table query, int types) throws Exception {
return super.tables(runtime, create, previous, query, types);
}
/**
* table[结果集封装]
* 根据驱动内置方法补充
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param create 上一步没有查到的,这一步是否需要新创建
* @param previous 上一步查询结果
* @param query 查询条件 根据metadata属性
* @param types 查询的类型 参考 Table.TYPE 多个类型相加算出总和
* @return tables
* @throws Exception 异常
* @param Table
*/
@Override
public List tables(DataRuntime runtime, boolean create, List previous, Table query, int types) throws Exception {
return super.tables(runtime, create, previous, query, types);
}
/**
* table[结果集封装]
* 根据查询结果封装Table对象,只封装catalog,schema,name等基础属性
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param meta 上一步封装结果
* @param query 查询条件 根据metadata属性
* @param row 查询结果集
* @return Table
* @param Table
*/
@Override
public T init(DataRuntime runtime, int index, T meta, Table query, DataRow row) {
return super.init(runtime, index, meta, query, row);
}
/**
* table[结果集封装]
* 根据查询结果封装Table对象,更多属性
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param meta 上一步封装结果
* @param row 查询结果集
* @return Table
* @param Table
*/
@Override
public T detail(DataRuntime runtime, int index, T meta, Table query, DataRow row) {
return super.detail(runtime, index, meta, query, row);
}
/**
* table[结果集封装]
* 表备注
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照buildQueryTablesRun返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param query 查询条件 根据metadata属性
* @param previous 上一步查询结果
* @param set 查询结果集
* @return tables
* @throws Exception 异常
*/
@Override
public LinkedHashMap comments(DataRuntime runtime, int index, boolean create, LinkedHashMap previous, Table query, DataSet set) throws Exception {
return super.comments(runtime, index, create, previous, query, set);
}
/**
* table[结果集封装]
* 表备注
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照buildQueryTablesRun返回顺序
* @param create 上一步没有查到的,这一步是否需要新创建
* @param query 查询条件 根据metadata属性
* @param previous 上一步查询结果
* @param set 查询结果集
* @return tables
* @throws Exception 异常
*/
@Override
public List comments(DataRuntime runtime, int index, boolean create, List previous, Table query, DataSet set) throws Exception {
return super.comments(runtime, index, create, previous, query, set);
}
/**
*
* table[调用入口]
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param random 用来标记同一组命令
* @param table 表
* @param init 是否还原初始状态 如自增状态
* @return List
*/
@Override
public List ddl(DataRuntime runtime, String random, Table table, boolean init) {
return super.ddl(runtime, random, table, init);
}
/**
* table[命令合成]
* 查询表DDL
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param table 表
* @return List
*/
@Override
public List buildQueryDdlRun(DataRuntime runtime, Table table) throws Exception {
return super.buildQueryDdlRun(runtime, table);
}
/**
* table[结果集封装]
* 查询表DDL
* @param runtime 运行环境主要包含驱动适配器 数据源或客户端
* @param index 第几条SQL 对照 buildQueryDdlRun 返回顺序
* @param table 表
* @param set sql执行的结果集
* @return List
*/
@Override
public List ddl(DataRuntime runtime, int index, Table table, List ddls, DataSet set) {
return super.ddl(runtime, index, table, ddls, set);
}
/* *****************************************************************************************************************
* vertex
* -----------------------------------------------------------------------------------------------------------------
* [调用入口]
* List vertexs(DataRuntime runtime, String random, boolean greedy, Catalog catalog, Schema schema, String pattern, int types, boolean struct)
* LinkedHashMap vertexs(DataRuntime runtime, String random, Catalog catalog, Schema schema, String pattern, String types, boolean struct)
* [命令合成]
* List buildQueryVertexsRun(DataRuntime runtime, boolean greedy, Catalog catalog, Schema schema, String pattern, int types, ConfigStore configs)
* List buildQueryVertexsCommentRun(DataRuntime runtime, Catalog catalog, Schema schema, String pattern, int types)
* [结果集封装]
* LinkedHashMap vertexs(DataRuntime runtime, int index, boolean create, LinkedHashMap vertexs, Catalog catalog, Schema schema, DataSet set)
* List vertexs(DataRuntime runtime, int index, boolean create, List vertexs, Catalog catalog, Schema schema, DataSet set)
* LinkedHashMap