# 组件源码
```
/**
* <b>方法描述:</b> 执行指定方法 <br/>
* <b>创建者:</b> admin <br/>
* <b>创建时间:</b> 2020-09-11 16:12:11 <br/>
*
* @param poolName
* 入参|数据源|{@link java.lang.String}
* @param className
* 入参|执行类名|{@link java.lang.String}
* @param method
* 入参|方法名称|{@link java.lang.String}
* @param paramList
* 入参|参数列表|{@link java.util.List}
* @param result
* 出参|返回值|{@link Object}
* @return -1 异常<br/>
* 0 失败<br/>
* 1 成功<br/>
*/
@Component(label = "执行指定方法", style = "判断型", type = "同步组件", comment = "执行自定义的数据库操作方法,传入参数:执行类、执行方法和方法参数列表。不能存在同名方法",
version = "1.0.0", deprecated = false, author = "admin", date = "2020-09-11 04:12:11")
@InParams(param = {@Param(name = "poolName", comment = "数据源", type = java.lang.String.class),
@Param(name = "className", comment = "执行类名", type = java.lang.String.class),
@Param(name = "method", comment = "方法名称", type = java.lang.String.class),
@Param(name = "paramList", comment = "参数列表", type = java.util.List.class)})
@OutParams(param = {@Param(name = "result", comment = "返回值", type = Object.class)})
@Returns(
returns = {@Return(id = "-1", desp = "异常"), @Return(id = "0", desp = "失败"), @Return(id = "1", desp = "成功")})
public static ResultBase P_customMethod(String poolName, String className, String method, List paramList) {
try {
AppLog.debug("数据库 执行指定方法,poolName={},className={},method={},paramList={}", poolName, className, method,
paramList);
if (StringUtil.isEmpty(className)) {
return ResultBase.newFailureResult("TPTD0027", "参数错误:执行类参数【className】不能为空");
}
if (StringUtil.isEmpty(method)) {
return ResultBase.newFailureResult("TPTD0028", "参数错误:执行类参数【method】不能为空");
}
setDatasource(poolName);
Object maper = BundleUtil.getService(className);
if (maper == null) {
return ResultBase.newFailureResult("TPTD0010", "错误:当前环境未找到[" + className + "]的可用数据库操作Mapper 实例");
}
Method m = getMethod(maper.getClass(), className, method);
if (m != null) {
AppLog.debug("开始执行相应的Mapper 方法:" + method);
Object obj = null;
if (paramList == null || paramList.isEmpty())
obj = m.invoke(maper);
else
obj = m.invoke(maper, paramList.toArray());
return ResultBase.newSuccessResult(obj);
}
} catch (Exception e) {
AppLog.error(e);
return ResultBase.newExceptionResult("TPTD0029",
"执行数据库方法错误,className=" + className + ",method=" + method + AppLog.errorMsg(e));
}
return ResultBase.newFailureResult("TPTD0030", "数据库 执行指定方法 组件 中没有找到相应的执行方法。");
}
```
# 交易中组件使用方式
![](https://img.kancloud.cn/eb/c3/ebc3683cd46b00c56427d6705ae03dfe_1870x893.png)
# 参数说明及示例
## 入口参数
数据源名称:使用的数据源名称,可以为空
执行操作类名:执行 SQL 语句的类,示例:
`"data.test.test.mapper.TUserMapper"`
方法名称:执行的方法名,示例:
`"selectById"`
参数列表:方法需要的参数,示例:
`[1]`
## 出口参数
返回值:执行方法后返回的结果,示例:
`__INNER__["result"]`
> 当交易部署到微服务上时,数据源在微服务界面上配置。
- 服务组件
- sca-register注册配置中心
- sca-gateway服务网关
- sca-auth认证授权服务
- sca-upms权限管理服务
- sca-quartz定时任务服务
- sca-monitor系统监控服务
- sca-commservie通讯前置服务
- sca-sentinel限流熔断服务
- sca-codegen代码生成服务
- sca-message消息发送服务
- sca-rule规则引擎服务
- sca-workflow工作流引擎服务
- sca-report报表服务
- ELK日志服务
- SkyWalking链路跟踪
- Prometheus监控
- 技术组件
- sca-common-swagger(聚合文档)
- sca-common-log(系统日志)
- sca-common-sentinel(熔断限流)
- sca-common-feign(Feign接口调用)
- sca-common-sequence(分布式发号器)
- sca-common-gray(灰度发布)
- sca-common-security(授权认证)
- sca-common-datasource(动态数据源)
- sca-common-data(数据库及缓存)
- sca-common-oss(文件服务)
- sca-common-xss(XSS安全过滤)
- sca-common-test(微服务单元测试)
- sca-common-test-alone(单体应用单元测试)
- sca-common-memdb(内存数据库)
- 日志脱敏
- Pdf文档转换及预览
- IDE组件
- IDE技术组件介绍
- FastJson技术组件类
- 对象转string技术组件
- JDBC操作技术组件类
- SQL查询(完整SQL)技术组件
- 关闭连接技术组件
- 执行预编译SQL(update)技术组件
- 数据分页查询技术组件
- 数据删除技术组件
- 数据批量插入技术组件
- 数据插入技术组件
- 数据更新技术组件
- 标准数据查询方法(单表)技术组件
- 获取序列号技术组件
- 行数统计技术组件
- 调用存储过程技术组件
- 预编译SQL查询(参数)
- 集合操作技术组件类
- Set和List类型互转技术组件
- 交集技术组件
- 增加元素(批量)技术组件
- 增加元素技术组件
- 差集技术组件
- 并集技术组件
- 替换元素技术组件
- 集合删除(下标)技术组件
- 集合删除(元素)技术组件
- 集合清空技术组件
- 金额处理技术组件类
- 乘技术组件
- 元转换为分技术组件
- 减技术组件
- 删除千分符技术组件
- 加技术组件
- 取金额绝对值技术组件
- 字符串转BigDecimal技术组件
- 是否为0技术组件
- 金额格式化技术组件
- 金额比较技术组件
- 金额舍入技术组件
- 金额转大写技术组件
- 除技术组件
- Redishash操作的组件集合
- 删除字段技术组件
- 字段是否存在技术组件
- 设置字段值(覆盖)技术组件
- 获取字段值技术组件
- 设置字段值(不覆盖)技术组件
- 批量设置字段值技术组件
- 批量获取字段值技术组件
- 获取字段数量技术组件
- 获取字段名称列表技术组件
- 获取字段值列表技术组件
- 获取字段和值列表技术组件
- Redis_Key操作技术组件类
- 获得redisTemplate技术组件
- 重命名key技术组件
- 清空Redis技术组件
- key是否存在技术组件
- 取消过期时间技术组件
- 获取数据结构类型技术组件
- 设置过期时间(毫秒)技术组件
- 设置固定过期时间技术组件
- 剩余存活时间(秒)技术组件
- 删除(批量)技术组件
- 删除(单个)技术组件
- 移动key到指定db技术组件
- 集合排序(正序)技术组件
- Redis_List操作组件操作类
- 插入(尾部)技术组件
- 插入(头部)技术组件
- 列表长度技术组件
- 截取区间列表元素技术组件
- 保留列表元素技术组件
- 获取列表元素(按下标)技术组件
- 设置列表元素(按下标)技术组件
- 删除元素(按值出现次数)技术组件
- 移除并返回元素(头部)技术组件
- 移除并返回元素(尾部)技术组件
- 已有列表插入(尾部)技术组件
- 已有列表插入(头部)技术组件
- 已有列表插入(按位置)技术组件
- 配置中心技术组件类
- 获取Nacos配置内容技术组件
- 通讯前置技术组件类
- 异步应答技术组件
- 组报文(前置)技术组件
- 解报文(前置)技术组件
- 调用第三方交易技术组件
- 调试输出技术组件类
- 输出日志(debug)技术组件
- 输出日志(warn)技术组件
- 输出日志(error)技术组件
- 输出日志(info)技术组件
- 编解码处理技术组件类
- BCD编码技术组件
- BCD解码技术组件
- Base64编码技术组件
- Base64解码技术组件
- 服务调用技术组件类
- 交易调用(分布式)技术组件
- 交易调用(第三方系统)技术组件
- 服务调用(rest服务名)技术组件
- 服务调用(ip-port)技术组件
- 日期时间技术组件类
- 当前时间(date)技术组件
- 当前时间(字符串)技术组件
- 当前时间(毫秒)技术组件
- 日期格式检查技术组件
- 日期比较技术组件
- 日期相加技术组件
- 格式化日期技术组件
- 获取日历字段技术组件
- 计算时间差(Date)技术组件
- 计算时间差(字符串)技术组件
- 转换日期对象技术组件
- 文件操作技术组件类
- MD5计算签名技术组件
- ZIP文件压缩技术组件
- ZIP文件解压缩技术组件
- 写文件内容技术组件
- 创建文件技术组件
- 创建文件目录技术组件
- 文件删除技术组件
- 文件合并技术组件
- 文件大小技术组件
- 文件存在检查技术组件
- 文件拷贝技术组件
- 文件查找技术组件
- 读文件内容技术组件
- 读文件行技术组件
- 数据库操作技术组件类
- 切换数据源技术组件
- 删除(BatchIds)技术组件
- 删除(Entity)技术组件
- 删除(ID)技术组件
- 删除(columnMap)技术组件
- 回滚上一事务技术组件
- 回滚全部事务技术组件
- 开启事务技术组件
- 执行指定方法技术组件
- 提交上一事务技术组件
- 提交全部事务技术组件
- 新增数据技术组件
- 更新(Entity)技术组件
- 更新(ID)技术组件
- 查询(BatchIds)技术组件
- 查询(ID)技术组件
- 查询(Objects)技术组件
- 查询(columnMap)技术组件
- 查询(list)技术组件
- 查询(map)技术组件
- 查询(分页)技术组件
- 查询(单条)技术组件
- 查询(总条数)技术组件
- 清理数据源技术组件
- 数据字典技术组件类
- 平台字典技术组件
- 应用字典技术组件
- 银行字典技术组件
- 平台内置组件技术组件类
- switch选择器技术组件
- 从异步组件中获取数据技术组件
- 初始化线程池技术组件
- 判断异步组件是否已完成技术组件
- 当期线程休眠技术组件
- 获取异常信息到容器技术组件
- 获取环境变量技术组件
- 获取系统变量技术组件
- 表达式判断技术组件
- 设置全局错误技术组件
- 随机正整数技术组件
- 对象操作技术组件类
- map转对象技术组件
- 创建list技术组件
- 创建实体类对象(空对象)技术组件
- 创建实体对象(赋值)技术组件
- 反序列化对象技术组件
- 对象属性赋值技术组件
- 对象序列化成数组技术组件
- 获取对象类型名称技术组件
- 获得对象字段值技术组件
- 获得对象属性及值列表技术组件
- Redis_Set操作技术组件类
- 添加元素技术组件
- 获取所有元素技术组件
- 移除指定元素技术组件
- 随机移除并返回(一个)技术组件
- 随机移除并返回(多个)技术组件
- 集合元素数量技术组件
- 是否包含指定元素技术组件
- 随机返回元素(一个)技术组件
- 随机返回元素(多个)技术组件
- Redis_String操作技术组件类
- 设置值(覆盖)技术组件
- 获取值技术组件
- 获取值(批量)技术组件
- 字符串追加值技术组件
- 设置值(不覆盖)技术组件
- 设置值(带过期时间:秒)技术组件
- 覆盖部分值技术组件
- 截取区间字符串技术组件
- 赋值并返回旧值技术组件
- 值长度技术组件
- Redis_ZSet操作技术组件类
- ZSet添加元素技术组件
- 获取区间集合元素(正序按下标)技术组件
- 获取区间集合元素(倒序按下标)技术组件
- 移除集合元素技术组件
- 增加元素的排序值技术组件
- 获取元素排名(正序)技术组件
- 获取元素排名(倒序)技术组件
- ZSet集合元素数量技术组件
- 获取元素排序值技术组件
- 统计区间元素数量技术组件
- 移除区间元素(按排名)技术组件
- 移除区间元素(按排序值)技术组件
- 容器操作技术组件类
- 取容器深度技术组件
- 容器删除(按value)技术组件
- 容器变量删除(保留keys)技术组件
- 容器变量删除(删除单个key)技术组件
- 容器变量删除(删除多个key)技术组件
- 容器变量赋值技术组件
- 容器变量赋值(批量)技术组件
- 获取容器变量值技术组件
- 容器变量拷贝技术组件
- 容器变量获取(批量)技术组件
- 容器清空技术组件
- 容器多层次赋值技术组件
- Redis计算操作组件类
- 减(整数)技术组件
- 减1技术组件
- 加(整数)技术组件
- 加1技术组件
- 加(浮点数)技术组件
- hash字段加(整数)技术组件
- UUID和ID技术组件类
- 生成UUID技术组件
- 生成ID技术组件
- 批量生成ID技术组件
- 公共方法源码
- 安全组件技术组件类
- 3DES加密技术组件
- 3DES解密技术组件
- DES加密技术组件
- DES解密技术组件
- MD5十进制字符串技术组件
- MD5计算签名技术组件
- 获取CRC16码技术组件
- excel技术组件类
- 获取工作簿技术组件
- 获取工作簿(文件名)技术组件
- 工作簿写文件技术组件
- sheet数技术组件
- sheet行数技术组件
- 工作簿数据行数技术组件
- sheet列表技术组件
- 获取sheet技术组件
- 创建工作簿(xlsx)技术组件
- 创建工作簿(指定格式)技术组件
- 工作簿64编码技术组件
- 文件是否超出限制技术组件
- 文件是否超出限制(文件名)技术组件
- 输出文件地址技术组件
- 新建日期文件夹技术组件
- 截取文件路径技术组件
- 工作簿清理技术组件
- 打开Excel文件技术组件
- 取Excel列数据技术组件
- 取Excel单元格技术组件
- 取Excel行列数技术组件
- 取Excel行数据技术组件
- 公共方法
- 字符串技术组件类
- 字符串切割技术组件
- 字符串去空格技术组件
- 字符串是否包含技术组件
- 字符串截取技术组件
- 统计字符数技术组件
- 统计字节数技术组件
- 以子字符串开始技术组件
- 以子字符串结尾技术组件
- 字符串转大写技术组件
- 字符串转小写技术组件
- 是否包含全角字符技术组件
- 字符串拼接技术组件
- 字符串连接技术组件
- 字符串替换技术组件
- 字符串正则表达式替换技术组件
- 字符串非空技术组件
- 字符串补齐技术组件
- 正则表达式匹配技术组件
- 字符串编码转换技术组件
- 字符串查找定位技术组件
- 变量操作技术组件类
- 字段检查(长度范围)技术组件
- 正则表达式检查技术组件
- 数字检查(大小区间)技术组件
- 变量字段检查(类型、长度)技术组件
- 身份证号校验技术组件
- 身份照15位转18位技术组件
- 上传下载技术组件类
- FTP文件上传技术组件
- FTP文件下载技术组件
- SFTP文件上传技术组件
- SFTP文件下载技术组件
- 自定义组件开发
- IDE技术组件包,技术组件类创建
- 新建、编辑IDE技术组件
- 过时组件介绍
- 技术组件API
- 新建普通java类
- 注册技术组件
- 打包技术组件
- 前端控件