diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/unit/js/main.js b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/unit/js/main.js
index 8061ab95..87d5381b 100755
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/unit/js/main.js
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/unit/js/main.js
@@ -478,7 +478,7 @@
https://github.com/TommyLemon/APIAuto/issues
如果是请求 APIJSON 后端服务,则使用以下链接:
-https://github.com/Tencent/APIJSON/issues
+https://github.com/APIJSON/APIJSON/issues
There may be something wrong, you can follow by the steps:
1. Check whether the network connection is available, you can open the address with a browser: https://www.google.com/search?q=%22APIJSON%22
@@ -494,7 +494,7 @@ There may be something wrong, you can follow by the steps:
https://github.com/TommyLemon/APIAuto/issues
If you are requesting an APIJSON backend service, use the following link:
-https://github.com/Tencent/APIJSON/issues
+https://github.com/APIJSON/APIJSON/issues
`;
@@ -2252,7 +2252,7 @@ https://github.com/Tencent/APIJSON/issues
if (this.isExportRemote == false) { //下载到本地
if (this.isTestCaseShow) { //文档
- saveTextAs('# ' + this.exTxt.name + '\n主页: https://github.com/Tencent/APIJSON'
+ saveTextAs('# ' + this.exTxt.name + '\n主页: https://github.com/APIJSON/APIJSON'
+ '\n\nBASE_URL: ' + this.getBaseUrl()
+ '\n\n\n## 测试用例(Markdown格式,可用工具预览) \n\n' + this.getDoc4TestCase()
+ '\n\n\n\n\n\n\n\n## 文档(Markdown格式,可用工具预览) \n\n' + doc
@@ -2357,7 +2357,7 @@ https://github.com/Tencent/APIJSON/issues
break;
}
- saveTextAs('# ' + this.exTxt.name + '\n主页: https://github.com/Tencent/APIJSON'
+ saveTextAs('# ' + this.exTxt.name + '\n主页: https://github.com/APIJSON/APIJSON'
+ '\n\n\nURL: ' + StringUtil.get(vUrl.value)
+ '\n\n\nHeader:\n' + StringUtil.get(vHeader.value)
+ '\n\n\nRequest:\n' + StringUtil.get(vInput.value)
@@ -6177,7 +6177,7 @@ Content-Type: ` + contentType) + (StringUtil.isEmpty(headerStr, true) ? '' : hea
+ '\nAPIJSON 中文文档: https://github.com/vincentCheng/apijson-doc '
+ '\nAPIJSON 英文文档: https://github.com/ruoranw/APIJSONdocs '
+ '\nAPIJSON 官方网站: https://github.com/APIJSON/apijson.cn '
- + '\nAPIJSON -Java版: https://github.com/Tencent/APIJSON '
+ + '\nAPIJSON -Java版: https://github.com/APIJSON/APIJSON '
+ '\nAPIJSON - C# 版: https://github.com/liaozb/APIJSON.NET '
+ '\nAPIJSON - Go 版: https://github.com/glennliao/apijson-go '
+ '\nAPIJSON - PHP版: https://github.com/kvnZero/hyperf-APIJSON '
@@ -6218,7 +6218,7 @@ Content-Type: ` + contentType) + (StringUtil.isEmpty(headerStr, true) ? '' : hea
+ '关于
'
+ 'UnitAuto-零代码单元测试'
+ '
机器学习自动化测试、一键导入单元测试用例、自动生成复杂参数组合'
- + '
由 UnitAuto-Admin(前端网页工具), APIJSON(后端接口服务) 等提供技术支持'
+ + '
由 UnitAuto-Admin(前端网页工具), APIJSON(后端接口服务) 等提供技术支持'
+ '
遵循 Apache-2.0 开源协议'
+ '
Copyright © 2020-' + new Date().getFullYear() + ' Tommy Lemon'
+ '
粤ICP备18005508号-1'
@@ -9276,7 +9276,7 @@ Content-Type: ` + contentType) + (StringUtil.isEmpty(headerStr, true) ? '' : hea
var testRecord = item.TestRecord = item.TestRecord || {}
saveTextAs(
- '# APIJSON自动化回归测试-前\n主页: https://github.com/Tencent/APIJSON'
+ '# APIJSON自动化回归测试-前\n主页: https://github.com/APIJSON/APIJSON'
+ '\n\n方法名称: \n' + document.method
+ '\n返回结果: \n' + JSON.stringify(parseJSON(testRecord.response || '{}'), null, ' ')
, '测试:' + document.method + '-前.txt'
@@ -9291,7 +9291,7 @@ Content-Type: ` + contentType) + (StringUtil.isEmpty(headerStr, true) ? '' : hea
setTimeout(function () {
var tests = App.tests[String(App.currentAccountIndex)] || {}
saveTextAs(
- '# APIJSON自动化回归测试-后\n主页: https://github.com/Tencent/APIJSON'
+ '# APIJSON自动化回归测试-后\n主页: https://github.com/APIJSON/APIJSON'
+ '\n\n方法名称: \n' + document.method
+ '\n返回结果: \n' + JSON.stringify(tests[document.id][isRandom ? random.id : 0] || {}, null, ' ')
, '测试:' + document.method + '-后.txt'
@@ -9301,7 +9301,7 @@ Content-Type: ` + contentType) + (StringUtil.isEmpty(headerStr, true) ? '' : hea
if (StringUtil.isEmpty(testRecord.standard, true) == false) {
setTimeout(function () {
saveTextAs(
- '# APIJSON自动化回归测试-标准\n主页: https://github.com/Tencent/APIJSON'
+ '# APIJSON自动化回归测试-标准\n主页: https://github.com/APIJSON/APIJSON'
+ '\n\n方法名称: \n' + document.method
+ '\n测试结果: \n' + JSON.stringify(testRecord.compare || '{}', null, ' ')
+ '\n测试标准: \n' + JSON.stringify(parseJSON(testRecord.standard || '{}'), null, ' ')
From 4702c216ad7cc3acfccd7f1735614e48e20597dc Mon Sep 17 00:00:00 2001
From: TommyLemon
Date: Wed, 7 Oct 2026 23:54:15 +0800
Subject: [PATCH 13/26] =?UTF-8?q?Java:=20MultiDataSource=20=E5=86=85=20API?=
=?UTF-8?q?Auto=EF=BC=9AJSONResponse=20=E6=96=B0=E5=A2=9E=20IGNORE=5FKEYS?=
=?UTF-8?q?=20=E5=BF=BD=E7=95=A5=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../static/api/apijson/JSONResponse.js | 47 ++++++++++++-------
1 file changed, 30 insertions(+), 17 deletions(-)
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
index 799d1acd..7ff22cd1 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
@@ -1064,35 +1064,48 @@ var JSONResponse = {
max = result;
}
} catch (e) {
- log(e)
+ log(e);
}
}
}
- var valueCompare = max.code >= JSONResponse.COMPARE_VALUE_CHANGE
- ? 0 : JSONResponse.compareValue(valueLevel, values, real, target.trend, target.repeat);
-
- var isNum = CodeUtil.isTypeMatch('number', type)
-
- if (isNum) {
- if (JSONResponse.UPGRADE_KEYS.includes(folder)) {
- valueCompare++;
- } else if (JSONResponse.DOWNGRADE_KEYS.includes(folder)) {
- valueCompare--;
+ var isNum = CodeUtil.isTypeMatch('number', type);
+ var ignore = false;
+ var isFolderMeaningful = StringUtil.isNotEmpty(folder) && ! StringUtil.isNumber(folder);
+ if (isFolderMeaningful && (isNum || type == 'string')) {
+ if (JSONResponse.IGNORE_KEYS.includes(folder)) {
+ ignore = true;
} else if (folder.includes('/')) {
var keys = StringUtil.splitPath(folder);
var key = keys == null || keys.length <= 0 ? null : keys[keys.length - 1];
- if (StringUtil.isNotEmpty(key) && !StringUtil.isNumber(key)) {
- if (JSONResponse.UPGRADE_KEYS.includes(key)) {
- valueCompare++;
- } else if (JSONResponse.DOWNGRADE_KEYS.includes(key)) {
- valueCompare--;
- }
+ if (StringUtil.isNotEmpty(key) && ! StringUtil.isNumber(key)) {
+ ignore = JSONResponse.IGNORE_KEYS.includes(key);
}
}
}
+ var valueCompare = ignore || max.code >= JSONResponse.COMPARE_VALUE_CHANGE
+ ? 0 : JSONResponse.compareValue(valueLevel, values, real, target.trend, target.repeat);
+
if (valueCompare > 0) {
+ if (isNum && isFolderMeaningful) {
+ if (JSONResponse.UPGRADE_KEYS.includes(folder)) {
+ valueCompare ++;
+ } else if (JSONResponse.DOWNGRADE_KEYS.includes(folder)) {
+ valueCompare --;
+ } else if (folder.includes('/')) {
+ var keys = StringUtil.splitPath(folder);
+ var key = keys == null || keys.length <= 0 ? null : keys[keys.length - 1];
+ if (StringUtil.isNotEmpty(key) && ! StringUtil.isNumber(key)) {
+ if (JSONResponse.UPGRADE_KEYS.includes(key)) {
+ valueCompare ++;
+ } else if (JSONResponse.DOWNGRADE_KEYS.includes(key)) {
+ valueCompare --;
+ }
+ }
+ }
+ }
+
max.code = valueCompare;
max.path = folder;
max.value = real;
From 053442c52642b2a5d7012c2424a5e37d8ef9e727 Mon Sep 17 00:00:00 2001
From: TommyLemon
Date: Thu, 8 Oct 2026 00:00:35 +0800
Subject: [PATCH 14/26] =?UTF-8?q?Java:=20MultiDataSource=20=E5=86=85=20API?=
=?UTF-8?q?Auto=EF=BC=9AJSONResponse=20=E5=BF=BD=E7=95=A5=E5=AD=97?=
=?UTF-8?q?=E6=AE=B5=20IGNORE=5FKEYS=20=E5=8E=BB=E6=8E=89=20id=EF=BC=8C?=
=?UTF-8?q?=E5=BA=94=E8=AF=A5=E5=8F=AA=E6=9C=89=20time=20=E8=BF=99?=
=?UTF-8?q?=E7=A7=8D=E7=BA=AF=E5=B1=95=E7=A4=BA=E6=88=96=E6=9F=A5=E6=97=A5?=
=?UTF-8?q?=E5=BF=97=E3=80=81=E7=94=9A=E8=87=B3=E4=B8=8D=E7=94=A8=E7=9A=84?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=89=8D=E5=BF=BD=E7=95=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/static/api/apijson/JSONResponse.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
index 7ff22cd1..9c4e03c4 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
@@ -187,7 +187,7 @@ var JSONResponse = {
CODE_SUCCESS: 200,
IGNORE_KEYS: ['traceId', 'trace:stack', 'debug:info|help'],
UPGRADE_KEYS: ['price', 'amount', 'money', 'cash', 'spend', 'cost', 'income', 'outgoing', 'borrow', 'lend', 'gold', 'coin', 'diamond', 'credit', 'budget', 'quantity', 'balance'],
- DOWNGRADE_KEYS: ['id', 'ID', 'traceId', 'trace_id', 'date', 'time', 'datetime', 'date_time', 'dateTime', 'timestamp', 'create_time', 'update_time', 'created_at', 'updated_at', 'createTime', 'updateTime', 'createdAt', 'updatedAt'],
+ DOWNGRADE_KEYS: ['traceId', 'trace_id', 'date', 'time', 'datetime', 'date_time', 'dateTime', 'timestamp', 'create_time', 'update_time', 'created_at', 'updated_at', 'createTime', 'updateTime', 'createdAt', 'updatedAt'],
/**是否成功
* @param code
From b5162cbe0285b1d9ad1179dc563d324f7da45ace Mon Sep 17 00:00:00 2001
From: TommyLemon
Date: Fri, 9 Oct 2026 01:06:37 +0800
Subject: [PATCH 15/26] =?UTF-8?q?Java:=20MultiDataSource=20=E5=86=85=20API?=
=?UTF-8?q?Auto=EF=BC=9A=E5=AE=8C=E5=96=84=E6=96=AD=E8=A8=80=E5=AD=97?=
=?UTF-8?q?=E6=AE=B5=E7=9A=84=E5=91=BD=E5=90=8D=E5=88=A4=E6=96=AD=E5=92=8C?=
=?UTF-8?q?=E5=8D=87=E9=99=8D=E7=BA=A7=E8=8C=83=E5=9B=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../static/api/apijson/JSONResponse.js | 74 ++++++++++++++++---
.../static/api/apijson/StringUtil.js | 33 ++++++++-
2 files changed, 93 insertions(+), 14 deletions(-)
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
index 9c4e03c4..fa7b0838 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
@@ -186,8 +186,8 @@ var JSONResponse = {
KEY_THROW: 'throw',
CODE_SUCCESS: 200,
IGNORE_KEYS: ['traceId', 'trace:stack', 'debug:info|help'],
- UPGRADE_KEYS: ['price', 'amount', 'money', 'cash', 'spend', 'cost', 'income', 'outgoing', 'borrow', 'lend', 'gold', 'coin', 'diamond', 'credit', 'budget', 'quantity', 'balance'],
- DOWNGRADE_KEYS: ['traceId', 'trace_id', 'date', 'time', 'datetime', 'date_time', 'dateTime', 'timestamp', 'create_time', 'update_time', 'created_at', 'updated_at', 'createTime', 'updateTime', 'createdAt', 'updatedAt'],
+ UPGRADE_KEYS: ['price', 'amount', 'money', 'cash', 'spend', 'cost', 'income', 'outgoing', 'borrow', 'lend', 'gold', 'coin', 'diamond', 'credit', 'budget', 'quantity', 'balance', 'type', 'status', 'state', 'stage', 'mode', 'currency', 'percent', 'percentage', 'rate', 'ratio', 'cent', 'vip', 'tax', 'change', 'exchange', 'role', 'permission', 'access', 'wealth', 'fee', 'pay', 'sku', 'spu', 'level', 'reward', 'award', 'bonus', 'consume', 'produce', 'gift', 'order', 'buy', 'purchase', 'salary', 'earn', 'coupon', 'discount'],
+ DOWNGRADE_KEYS: ['traceId', 'trace_id', 'date', 'time', 'datetime', 'date_time', 'dateTime', 'timestamp', 'create_time', 'update_time', 'created_at', 'updated_at', 'createTime', 'updateTime', 'createdAt', 'updatedAt', 'delete_time', 'deleteTime', 'deleted_at', 'cur_time', 'curTime', 'cur_timestamp', 'curTimestamp', 'cur_time_stamp', 'current_time', 'current_time_stamp', 'currentTime', 'currentTimestamp', 'server_time', 'serverTime', 'start_time', 'started_at', 'startTime', 'startedAt', 'begin_time', 'begun_at', 'beginTime', 'begunAt', 'end_time', 'ended_at', 'endTime', 'endedAt', 'title', 'subtitle', 'content', 'comment', 'emoji', 'name', 'nickname', 'detail', 'desc', 'describe', 'description'],
/**是否成功
* @param code
@@ -525,6 +525,56 @@ var JSONResponse = {
return it;
},
+ isUpgradeCompare: function (key, folder) {
+ if (StringUtil.isEmpty(key)) {
+ return false;
+ }
+
+ var keys = JSONResponse.UPGRADE_KEYS || [];
+ if (keys.includes(key) || keys.includes(JSONResponse.getAbstractPath(folder, key))) {
+ return true;
+ }
+
+ for (var i = 0; i < keys.length; i ++) {
+ var k = keys[i];
+ if (StringUtil.isNotEmpty(k) && StringUtil.isKeyOfCategory(key, StringUtil.firstCase(k, true))) {
+ return true;
+ }
+ }
+
+ return StringUtil.isMoneyKey(key) || StringUtil.isBalanceKey(key) || StringUtil.isAmountKey(key) || StringUtil.isLoanKey(key)
+ || StringUtil.isPriceKey(key) || StringUtil.isPercentKey(key) || StringUtil.isRevenueKey(key) || StringUtil.isProfitKey(key)
+ || StringUtil.isCashKey(key) || StringUtil.isDiscountKey(key) || StringUtil.isGradeKey(key) || StringUtil.isLevelKey(key)
+ || StringUtil.isRankKey(key) || StringUtil.isScoreKey(key) || StringUtil.isSexKey(key) || StringUtil.isGenderKey(key);
+ // || StringUtil.isIncomeKey(key) || StringUtil.isOutgoingKey(key) || StringUtil.isGoldKey(key) || StringUtil.isCoinKey(key)
+ // || StringUtil.isBuyKey(key) || StringUtil.isPurchaseKey(key) || StringUtil.isPayKey(key) || StringUtil.isEarnKey(key)
+ // || StringUtil.isSalaryKey(key) || StringUtil.isCostKey(key) || StringUtil.isConsumeKey(key) || StringUtil.isProduceKey(key)
+ // || StringUtil.isFeeKey(key) || StringUtil.isWealthKey(key) || StringUtil.isRewardKey(key) || StringUtil.isAwardKey(key)
+ // || StringUtil.isVipKey(key) || StringUtil.isDiamondKey(key) || StringUtil.isTaxKey(key) || StringUtil.isCurrencyKey(key)
+ // || StringUtil.isChangeKey(key) || StringUtil.isExchangeKey(key) || StringUtil.isBorrowKey(key) || StringUtil.isLendKey(key);
+ },
+ isDowngradeCompare: function (key, folder) {
+ if (StringUtil.isEmpty(key)) {
+ return false;
+ }
+
+ var keys = JSONResponse.DOWNGRADE_KEYS || [];
+ if (keys.includes(key) || keys.includes(JSONResponse.getAbstractPath(folder, key))) {
+ return true;
+ }
+
+ for (var i = 0; i < keys.length; i ++) {
+ var k = keys[i];
+ if (StringUtil.isNotEmpty(k) && StringUtil.isKeyOfCategory(key, StringUtil.firstCase(k, true))) {
+ return true;
+ }
+ }
+
+ return StringUtil.isDateKey(key) || StringUtil.isTimeKey(key) || StringUtil.isNameKey(key) || StringUtil.isDetailKey(key)
+ || StringUtil.isTitleKey(key) || StringUtil.isTextKey(key) || StringUtil.isCommentKey(key) || StringUtil.isContentKey(key)
+ || StringUtil.isDescribeKey(key) || StringUtil.isMessageKey(key);
+ },
+
/**测试compare: 对比 新的请求与上次请求的结果
0-相同,无颜色;
1-对象新增字段或数组新增值,绿色;
@@ -1088,25 +1138,27 @@ var JSONResponse = {
? 0 : JSONResponse.compareValue(valueLevel, values, real, target.trend, target.repeat);
if (valueCompare > 0) {
- if (isNum && isFolderMeaningful) {
+ var cmp = valueCompare;
+ if (isNum && isFolderMeaningful && cmp > JSONResponse.COMPARE_VALUE_MORE && cmp < JSONResponse.COMPARE_VALUE_EMPTY) {
if (JSONResponse.UPGRADE_KEYS.includes(folder)) {
- valueCompare ++;
+ cmp = JSONResponse.COMPARE_VALUE_EMPTY;
} else if (JSONResponse.DOWNGRADE_KEYS.includes(folder)) {
- valueCompare --;
+ cmp = JSONResponse.COMPARE_VALUE_MORE;
} else if (folder.includes('/')) {
var keys = StringUtil.splitPath(folder);
var key = keys == null || keys.length <= 0 ? null : keys[keys.length - 1];
if (StringUtil.isNotEmpty(key) && ! StringUtil.isNumber(key)) {
- if (JSONResponse.UPGRADE_KEYS.includes(key)) {
- valueCompare ++;
- } else if (JSONResponse.DOWNGRADE_KEYS.includes(key)) {
- valueCompare --;
+ var fd = keys.slice(0, keys.length - 1).join('/');
+ if (JSONResponse.isUpgradeCompare(key, fd)) {
+ cmp = JSONResponse.COMPARE_VALUE_EMPTY;
+ } else if (JSONResponse.isDowngradeCompare(key, fd)) {
+ cmp = JSONResponse.COMPARE_VALUE_MORE;
}
}
}
}
- max.code = valueCompare;
+ max.code = cmp;
max.path = folder;
max.value = real;
@@ -1536,7 +1588,6 @@ var JSONResponse = {
log('updateStandard lengthLevel = target.lengthLevel = ' + lengthLevel + ' >>');
log('updateStandard lengths = target.lengths = ' + lengths + ' >>');
-
var valueLevel = target.valueLevel;
var values = target.values;
log('updateStandard valueLevel = target.valueLevel = ' + valueLevel + ' >>');
@@ -1547,7 +1598,6 @@ var JSONResponse = {
valueLevel = target.valueLevel = 0;
}
-
if (type == 'array') {
log('updateStandard type == array >> ');
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js
index 1d5a40ef..8b35dc2a 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js
@@ -727,6 +727,9 @@ var StringUtil = {
isScoreKey: function (key) {
return StringUtil.isKeyOfCategory(key, 'Score');
},
+ isRankKey: function (key) {
+ return StringUtil.isKeyOfCategory(key, 'Rank');
+ },
isSexKey: function (key) {
return StringUtil.isKeyOfCategory(key, 'Sex');
},
@@ -773,6 +776,28 @@ var StringUtil = {
var l = StringUtil.length(key);
return l >= 2 && l <= 30 && StringUtil.isKeyOfCategory(key, 'Name');
},
+ isTitleKey: function (key) {
+ var l = StringUtil.length(key);
+ return l >= 2 && l <= 30 && StringUtil.isKeyOfCategory(key, 'Title');
+ },
+ isTextKey: function (key) {
+ return StringUtil.isKeyOfCategory(key, 'Text') || StringUtil.isKeyOfCategory(key, 'Txt');
+ },
+ isContentKey: function (key) {
+ return StringUtil.isKeyOfCategory(key, 'Content');
+ },
+ isMessageKey: function (key) {
+ return StringUtil.isKeyOfCategory(key, 'Message') || StringUtil.isKeyOfCategory(key, 'Msg');
+ },
+ isCommentKey: function (key) {
+ return StringUtil.isKeyOfCategory(key, 'Comment');
+ },
+ isDetailKey: function (key) {
+ return StringUtil.isKeyOfCategory(key, 'Detail');
+ },
+ isDescribeKey: function (key) {
+ return StringUtil.isKeyOfCategory(key, 'Desc') || StringUtil.isKeyOfCategory(key, 'Describe') || StringUtil.isKeyOfCategory(key, 'Description');
+ },
isPathKey: function (key) {
return StringUtil.isKeyOfCategory(key, 'Path');
},
@@ -783,10 +808,14 @@ var StringUtil = {
return StringUtil.isKeyOfCategory(key, 'Uri');
},
isDateKey: function (key) {
- return ['createat', 'createdat', 'updateat', 'updatedat'].indexOf(StringUtil.get(key).toLowerCase()) >= 0 || StringUtil.isKeyOfCategory(key, 'Date');
+ return ['createat', 'createdat', 'updateat', 'updatedat', 'deletdat', 'deletedat', 'addat', 'addedat', 'editat'
+ , 'editedat', 'removeat', 'removedat', 'sendat', 'sentat', 'sendedat', 'receiveat', 'receivedat'].indexOf(StringUtil.get(key).toLowerCase()) >= 0
+ || StringUtil.isKeyOfCategory(key, 'Date');
},
isTimeKey: function (key) {
- return ['createat', 'createdat', 'updateat', 'updatedat'].indexOf(StringUtil.get(key).toLowerCase()) >= 0 || StringUtil.isKeyOfCategory(key, 'Time');
+ return ['createat', 'createdat', 'updateat', 'updatedat', 'deletdat', 'deletedat', 'addat', 'addedat', 'editat'
+ , 'editedat', 'removeat', 'removedat', 'sendat', 'sentat', 'sendedat', 'receiveat', 'receivedat'].indexOf(StringUtil.get(key).toLowerCase()) >= 0
+ || StringUtil.isKeyOfCategory(key, 'Time') || StringUtil.isKeyOfCategory(key, 'Timestamp');
},
isKeyOfCategory: function (key, category) {
if (StringUtil.isEmpty(key, true) || StringUtil.isEmpty(category, true) || key.length < category.length) {
From ae3d43d122b9d809640343d969dbeb99f9e93d09 Mon Sep 17 00:00:00 2001
From: TommyLemon
Date: Fri, 9 Oct 2026 01:10:14 +0800
Subject: [PATCH 16/26] Update README.md
---
.../src/main/resources/static/api/README.md | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/README.md b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/README.md
index 27e6c9eb..967d38d5 100755
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/README.md
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/README.md
@@ -302,6 +302,7 @@ https://github.com/TommyLemon/APIAuto/issues
### 生态项目
[APIJSON](https://github.com/APIJSON/APIJSON) 🏆 腾讯实时 零代码、全功能、强安全 ORM 库 🚀 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构
+[AutoUI](https://github.com/TommyLemon/AutoUI) 📱 AI 零代码快准稳 UI 自动化测试平台 🚀 3 像素内精准定位,2 毫秒内精准等待,自动断言 UI 和数据、界定前/后端 bug,用户包含腾讯,微信团队邀请分享
[CVAuto](https://github.com/TommyLemon/CVAuto) 👁 零代码零标注 CV AI 自动化测试平台 🚀 免除大量人工画框和打标签等,直接快速测试 CV 计算机视觉 AI 图像识别算法
@@ -309,10 +310,6 @@ https://github.com/TommyLemon/APIAuto/issues
[SQLAuto](https://github.com/TommyLemon/SQLAuto) 智能零代码自动化测试 SQL 数据库工具,任意增删改查、任意 SQL 模板变量、一键批量生成参数组合、快速构造大量测试数据
-[UIGO](https://github.com/TommyLemon/UIGO) 📱 零代码快准稳 UI 智能录制回放平台 🚀 3 像素内自动精准定位,2 毫秒内自动精准等待,用户包含腾讯,微信团队邀请分享
-
-[UIGOX](https://github.com/TommyLemon/UIGOX) UIGO 的 AndroidX 版 📱 零代码快准稳 UI 智能录制回放平台 🚀 3 像素内自动精准定位,2 毫秒内自动精准等待
-
[apijson-doc](https://github.com/vincentCheng/apijson-doc) APIJSON 官方文档,提供排版清晰、搜索方便的文档内容展示,包括设计规范、图文教程等
[APIJSONdocs](https://github.com/ruoranw/APIJSONdocs) APIJSON 英文文档,提供排版清晰的文档内容展示,包括详细介绍、设计规范、使用方式等
From eab6d78793aa1c392146197d5da7c36607d00228 Mon Sep 17 00:00:00 2001
From: TommyLemon
Date: Fri, 9 Oct 2026 01:26:42 +0800
Subject: [PATCH 17/26] =?UTF-8?q?JSONResponse.UPGRADE=5FKEYS=20=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=20phone,=20email,=20card,=20idcard,=20account=20?=
=?UTF-8?q?=E6=8F=90=E9=AB=98=E6=96=AD=E8=A8=80=E8=AD=A6=E5=91=8A=E4=BC=98?=
=?UTF-8?q?=E5=85=88=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/static/api/apijson/JSONResponse.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
index fa7b0838..1a217ada 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
@@ -186,7 +186,7 @@ var JSONResponse = {
KEY_THROW: 'throw',
CODE_SUCCESS: 200,
IGNORE_KEYS: ['traceId', 'trace:stack', 'debug:info|help'],
- UPGRADE_KEYS: ['price', 'amount', 'money', 'cash', 'spend', 'cost', 'income', 'outgoing', 'borrow', 'lend', 'gold', 'coin', 'diamond', 'credit', 'budget', 'quantity', 'balance', 'type', 'status', 'state', 'stage', 'mode', 'currency', 'percent', 'percentage', 'rate', 'ratio', 'cent', 'vip', 'tax', 'change', 'exchange', 'role', 'permission', 'access', 'wealth', 'fee', 'pay', 'sku', 'spu', 'level', 'reward', 'award', 'bonus', 'consume', 'produce', 'gift', 'order', 'buy', 'purchase', 'salary', 'earn', 'coupon', 'discount'],
+ UPGRADE_KEYS: ['price', 'amount', 'money', 'cash', 'spend', 'cost', 'income', 'outgoing', 'borrow', 'lend', 'gold', 'coin', 'diamond', 'credit', 'budget', 'quantity', 'balance', 'type', 'status', 'state', 'stage', 'mode', 'currency', 'percent', 'percentage', 'rate', 'ratio', 'cent', 'vip', 'tax', 'change', 'exchange', 'role', 'permission', 'access', 'wealth', 'fee', 'pay', 'sku', 'spu', 'level', 'reward', 'award', 'bonus', 'consume', 'produce', 'gift', 'order', 'buy', 'purchase', 'salary', 'earn', 'coupon', 'discount', 'phone', 'email', 'card', 'idcard', 'account'],
DOWNGRADE_KEYS: ['traceId', 'trace_id', 'date', 'time', 'datetime', 'date_time', 'dateTime', 'timestamp', 'create_time', 'update_time', 'created_at', 'updated_at', 'createTime', 'updateTime', 'createdAt', 'updatedAt', 'delete_time', 'deleteTime', 'deleted_at', 'cur_time', 'curTime', 'cur_timestamp', 'curTimestamp', 'cur_time_stamp', 'current_time', 'current_time_stamp', 'currentTime', 'currentTimestamp', 'server_time', 'serverTime', 'start_time', 'started_at', 'startTime', 'startedAt', 'begin_time', 'begun_at', 'beginTime', 'begunAt', 'end_time', 'ended_at', 'endTime', 'endedAt', 'title', 'subtitle', 'content', 'comment', 'emoji', 'name', 'nickname', 'detail', 'desc', 'describe', 'description'],
/**是否成功
From 4374c89951a89c61dceed597a89285ba05503595 Mon Sep 17 00:00:00 2001
From: TommyLemon
Date: Sun, 18 Oct 2026 23:50:32 +0800
Subject: [PATCH 18/26] =?UTF-8?q?=E9=9B=B6=E4=BB=A3=E7=A0=81=E6=96=AD?=
=?UTF-8?q?=E8=A8=80=EF=BC=9A=E6=96=B0=E5=A2=9E=E6=94=AF=E6=8C=81=E8=87=AA?=
=?UTF-8?q?=E5=8A=A8=E6=96=AD=E8=A8=80=20=E6=90=9C=E7=B4=A2=E3=80=81?=
=?UTF-8?q?=E6=8E=92=E5=BA=8F=E3=80=81=E6=95=B0=E9=87=8F=E9=99=90=E5=88=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../static/api/apijson/JSONResponse.js | 167 ++++++++++++++++--
.../static/api/apijson/StringUtil.js | 35 ++++
.../src/main/resources/static/api/js/main.js | 2 +
3 files changed, 189 insertions(+), 15 deletions(-)
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
index 1a217ada..b89c0231 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
@@ -467,8 +467,10 @@ var JSONResponse = {
COMPARE_KEY_MORE: 1,
COMPARE_VALUE_MORE: 2,
COMPARE_EQUAL_EXCEPTION: 3,
+ COMPARE_SORT_CHANGE: 4, // FIXME 不重复,后面都额外加判断?
COMPARE_LENGTH_CHANGE: 4,
COMPARE_VALUE_CHANGE: 5,
+ COMPARE_FILTER_CHANGE: 5, // FIXME 不重复,后面都额外加判断?
COMPARE_VALUE_EMPTY: 6,
COMPARE_KEY_LESS: 7,
COMPARE_FORMAT_CHANGE: 8,
@@ -907,7 +909,7 @@ var JSONResponse = {
3-缺少字段/整数变小数,黄色;
4-类型/code 改变,红色;
*/
- compareWithStandard: function(target, real, folder, exceptKeys, ignoreTrend, callback) {
+ compareWithStandard: function(target, real, folder, exceptKeys, ignoreTrend, preReal, reqSearches, reqSorts, reqLimits, callback) {
folder = folder == null ? '' : folder;
if (target == null) {
@@ -1011,6 +1013,64 @@ var JSONResponse = {
max.code -= 1;
}
+ var isStr = type == 'string'
+ var isNum = (! isStr) && CodeUtil.isTypeMatch('number', type);
+ preReal = preReal != null ? preReal : (isNum ? 0 : (isStr ? '' : preReal));
+
+ var keys = StringUtil.splitPath(folder, false);
+ var key = StringUtil.isEmpty(keys) ? '' : (keys[keys.length - 1] || '');
+
+ var reqSearchObj = reqSearches == null || max.code >= JSONResponse.COMPARE_FILTER_CHANGE || ! isStr ? null : reqSearches[key];
+ var reqSearch = reqSearchObj == null ? null : reqSearchObj.same;
+ if (StringUtil.isNotEmpty(reqSearch) && ! real.includes(reqSearch)) {
+ log('compareWithStandard StringUtil.isNotEmpty(reqSearch) && ! real.includes(reqSearch) >> return COMPARE_FILTER_CHANGE');
+ max = {
+ code: JSONResponse.COMPARE_FILTER_CHANGE,
+ msg: '未包含传参 ' + (StringUtil.isEmpty(reqSearchObj.path) ? '' : reqSearchObj.path + ' 筛选 ') + reqSearch,
+ path: folder,
+ value: real
+ };
+ }
+
+ var same = max.code >= JSONResponse.COMPARE_FILTER_CHANGE || ! isStr ? null : target.same;
+ if (StringUtil.isNotEmpty(same) && ! real.includes(same)) {
+ log('compareWithStandard StringUtil.isNotEmpty(same) && ! real.includes(same) >> return COMPARE_FILTER_CHANGE');
+ max = {
+ code: JSONResponse.COMPARE_FILTER_CHANGE,
+ msg: '未包含 ' + same,
+ path: folder,
+ value: real
+ };
+ }
+
+ var notCmpSort = reqSorts == null || max.code >= JSONResponse.COMPARE_SORT_CHANGE || ! (isStr || isNum)
+ var reqSortObj = notCmpSort ? null : reqSorts[key];
+ var reqSort = reqSortObj == null ? null : reqSortObj.sort;
+
+ var sort = notCmpSort ? null : target.sort;
+ if (StringUtil.isNotEmpty(reqSort) || StringUtil.isNotEmpty(sort)) {
+ var srt = (real === preReal ? '=' : (real > preReal ? '>' : '<'));
+
+ if (! reqSort.includes(srt)) {
+ log('compareWithStandard StringUtil.isNotEmpty(reqSort) && ! ' + reqSort + '.includes(' + srt + ') >> return COMPARE_SORT_CHANGE');
+ max = {
+ code: JSONResponse.COMPARE_SORT_CHANGE,
+ msg: '排序 ' + srt + ' 不符合传参 ' + (StringUtil.isEmpty(reqSortObj.path) ? '' : reqSortObj.path + ' ') + reqSort,
+ path: folder,
+ value: real
+ };
+ }
+
+ if (max.code < JSONResponse.COMPARE_SORT_CHANGE && ! sort.includes(srt)) {
+ log('compareWithStandard StringUtil.isNotEmpty(sort) && ! ' + sort + '.includes(' + srt + ') >> return COMPARE_SORT_CHANGE');
+ max = {
+ code: JSONResponse.COMPARE_SORT_CHANGE,
+ msg: '排序 ' + sort + ' 变成 ' + srt,
+ path: folder,
+ value: real
+ };
+ }
+ }
var each;
@@ -1020,7 +1080,7 @@ var JSONResponse = {
for (var i = 0; i < real.length; i ++) { //检查real的每一项
log('compareWithStandard for i = ' + i + ' >> ');
- each = JSONResponse.compareWithStandard(firstVal, real[i], JSONResponse.getAbstractPath(folder, i), exceptKeys, ignoreTrend);
+ each = JSONResponse.compareWithStandard(firstVal, real[i], JSONResponse.getAbstractPath(folder, i), exceptKeys, ignoreTrend, i <= 0 ? null : real[i - 1], reqSearches, reqSorts, reqLimits);
if (max.code < each.code) {
max = each;
@@ -1055,7 +1115,8 @@ var JSONResponse = {
}
log('compareWithStandard for tk = ' + tk + ' >> ');
- each = JSONResponse.compareWithStandard(firstVal[tk], real[tk], JSONResponse.getAbstractPath(folder, tk), exceptKeys);
+ each = JSONResponse.compareWithStandard(firstVal[tk], real[tk], JSONResponse.getAbstractPath(folder, tk), exceptKeys
+ , ignoreTrend, JSONResponse.isObject(preReal) ? preReal[tk] : null, reqSearches, reqSorts, reqLimits);
if (max.code < each.code) {
max = each;
}
@@ -1105,7 +1166,14 @@ var JSONResponse = {
else if (format instanceof Array == false && format instanceof Object) {
try {
var realObj = parseJSON(real);
- var result = JSONResponse.compareWithStandard(format, realObj, folder, exceptKeys, ignoreTrend);
+ var preRealObj = null;
+ try { // FIXME 是否暴露?
+ preRealObj = parseJSON(preReal);
+ } catch (e) {
+ log(e);
+ }
+
+ var result = JSONResponse.compareWithStandard(format, realObj, folder, exceptKeys, ignoreTrend, preRealObj); // , reqSearches, reqSorts, reqLimits); // TODO: 是否必要在字符串里再解析排序?
if (guess == true) {
result.code -= 1;
}
@@ -1119,10 +1187,9 @@ var JSONResponse = {
}
}
- var isNum = CodeUtil.isTypeMatch('number', type);
var ignore = false;
var isFolderMeaningful = StringUtil.isNotEmpty(folder) && ! StringUtil.isNumber(folder);
- if (isFolderMeaningful && (isNum || type == 'string')) {
+ if (isFolderMeaningful && (isNum || isStr)) {
if (JSONResponse.IGNORE_KEYS.includes(folder)) {
ignore = true;
} else if (folder.includes('/')) {
@@ -1201,6 +1268,15 @@ var JSONResponse = {
var realLength = JSONResponse.getLength(real);
log('compareWithStandard realLength = ' + realLength + ' >> ');
+ var reqLimitObj = reqLimits == null || type !== 'array' ? null : reqLimits[key];
+ var reqLimit = reqLimitObj == null ? null : reqLimitObj.limit;
+ if (Number.isSafeInteger(reqLimit) && reqLimit > 0 && reqLimit < realLength) {
+ max.code = JSONResponse.COMPARE_LENGTH_CHANGE;
+ max.msg = '长度 ' + realLength + ' > 传参限制 ' + reqLimit + ' 个 ' + StringUtil.get(reqLimitObj.path);
+ max.path = folder;
+ max.value = realLength;
+ }
+
if (realLength != null && JSONResponse.isValueCorrect(target.lengthLevel, target.lengths, realLength) != true) {
var lengths = target.lengths
var maxVal = lengths == null || lengths.length <= 0 ? null : lengths[0];
@@ -1441,7 +1517,7 @@ var JSONResponse = {
/**更新测试标准,通过原来的标准与最新的数据合并来实现
*/
- updateStandard: function(target, real, exceptKeys, ignoreTrend, key) {
+ updateStandard: function(target, real, exceptKeys, ignoreTrend, folder, key, preReal) {
if (target instanceof Array) { // JSONArray
throw new Error("Standard 语法错误,不应该有 array!");
}
@@ -1577,6 +1653,8 @@ var JSONResponse = {
return target;
}
+ var fd = JSONResponse.getAbstractPath(folder, key);
+
log('updateStandard type = target.type = ' + type + ' >>');
if (type == null || CodeUtil.isTypeMatch(target.type, rtype) != true) { //强制用real的类型替代
type = target.type = rtype;
@@ -1598,6 +1676,9 @@ var JSONResponse = {
valueLevel = target.valueLevel = 0;
}
+ var sort = target.sort;
+ var same = target.same;
+
if (type == 'array') {
log('updateStandard type == array >> ');
@@ -1609,11 +1690,41 @@ var JSONResponse = {
}
var child = values[0];
- for (var i = 0; i < real.length; i ++) {
+ var len = real.length;
+ for (var i = 0; i < len; i ++) {
+ var v = real[i];
log('updateStandard for i = ' + i + '; child = '
- + JSON.stringify(child, null, ' ') + ';\n real[i] = ' + JSON.stringify(real[i], null, ' ') + ' >>');
+ + JSON.stringify(child, null, ' ') + ';\n real[i] = ' + JSON.stringify(v, null, ' ') + ' >>');
+ if (i === 0 && len >= 2 && (sort !== '' || same !== '')) {
+ var isStr = JSONResponse.isString(v);
+ var isNum = (! isStr) && JSONResponse.isNumber(v);
+ if (isStr || (isNum && sort !== '')) {
+ var last = null;
+ for (let j = len - 1; j > 2; j--) {
+ last = real[len - 1];
+ if ((JSONResponse.isNumber(last) && last !== 0) || (JSONResponse.isString(last) && last !== '')) {
+ break
+ }
+ }
+
+ if (last == null) {
+ last = isNum ? 0 : '';
+ }
+ var first = v != null ? v : (isNum ? 0 : '');
+
+ if (sort !== '') { // >, >=, ''; <, <=, ''; =, >=, ''; =, <=, ''
+ var srt = (last === first ? '=' : (last > first ? '>' : '<'));
+ target.sort = sort = sort == null || srt === sort ? srt : (sort.includes(srt) ? sort : (srt === '=' ? sort + '=' : ''));
+ }
- child = JSONResponse.updateStandard(child, real[i], exceptKeys, true, key == null ? 'item' : key + 'Item'); //FIXME ignoreTrend 固定取 true 导致批量创建后多个 id [1,2,3] -> [3,4,5] 漏报趋势异常
+ if (isStr && same !== '' && StringUtil.isNotEmpty(first) && StringUtil.isNotEmpty(last)) {
+ var sm = StringUtil.longestSubstr(first, last);
+ target.same = same = StringUtil.longestSubstr(same, sm);
+ }
+ }
+ }
+
+ child = JSONResponse.updateStandard(child, v, exceptKeys, true, fd, '' + i, i <= 0 ? null : real[i - 1]); //FIXME ignoreTrend 固定取 true 导致批量创建后多个 id [1,2,3] -> [3,4,5] 漏报趋势异常
}
if (child == null) {
log('updateStandard child == null >> child = {}');
@@ -1621,7 +1732,7 @@ var JSONResponse = {
}
values = [child];
- target = JSONResponse.setValue(target, real.length, lengthLevel == null ? 1 : lengthLevel, lengths, true, true);
+ target = JSONResponse.setValue(target, len, lengthLevel == null ? 1 : lengthLevel, lengths, true, true);
target = JSONResponse.setValue(target, null, valueLevel, values, false, ignoreTrend);
}
else if (type == 'object') {
@@ -1660,15 +1771,34 @@ var JSONResponse = {
continue
}
+ var fv = firstVal[k];
+ var rv = real[k];
log('updateStandard for k in real = ' + k + '; firstVal[k] = '
- + JSON.stringify(firstVal[k], null, ' ') + ';\n real[k] = ' + JSON.stringify(real[k], null, ' ') + ' >>');
- firstVal[k] = JSONResponse.updateStandard(firstVal[k], real[k], exceptKeys, ignoreTrend, k);
+ + JSON.stringify(fv, null, ' ') + ';\n real[k] = ' + JSON.stringify(rv, null, ' ') + ' >>');
+ firstVal[k] = JSONResponse.updateStandard(fv, rv, exceptKeys, ignoreTrend, fd, k, JSONResponse.isObject(preReal) ? preReal[k] : null);
}
target.values = values;
}
else {
- log('updateStandard type == other >> ');
+ log('updateStandard type == ' + type + ' >> ');
+ if (StringUtil.isNumber(key) && key >= '1' && (sort !== '' || same !== '') && type === JSONResponse.getType(preReal)) {
+ var isStr = JSONResponse.isString(real);
+ var isNum = (! isStr) && JSONResponse.isNumber(real);
+ if (isStr || (isNum && sort !== '')) {
+ if (sort !== '') { // >, >=, ''; <, <=, ''; =, >=, ''; =, <=, ''
+ preReal = preReal != null ? preReal : (isNum ? 0 : (isStr ? '' : preReal));
+ var srt = (real === preReal ? '=' : (real > preReal ? '>' : '<'));
+ target.sort = sort = sort == null || srt === sort ? srt : (sort.includes(srt) ? sort : (srt === '=' ? sort + '=' : ''));
+ }
+
+ if (isStr && same !== '' && StringUtil.isNotEmpty(real)) {
+ var sm = StringUtil.isEmpty(same) ? real : StringUtil.longestSubstr(real, same); // preReal);
+ target.same = same = sm; // StringUtil.longestSubstr(same, sm);
+ }
+ }
+ }
+
if (type == 'string') {
var format = target.format;
try {
@@ -1708,7 +1838,14 @@ var JSONResponse = {
log(e)
try {
var realObj = parseJSON(real);
- var format2 = JSONResponse.updateStandard(target.format, realObj, exceptKeys, ignoreTrend, key);
+ var preRealObj = null;
+ try {
+ preRealObj = parseJSON(preReal);
+ } catch (e2) {
+ log(e2)
+ }
+
+ var format2 = JSONResponse.updateStandard(target.format, realObj, exceptKeys, ignoreTrend, folder, key, preRealObj);
if (format2 != null) {
target.format = format2;
}
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js
index 8b35dc2a..ce75a0ee 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js
@@ -878,6 +878,41 @@ var StringUtil = {
}
return StringUtil.trim(newStr);
+ },
+
+ longestSubstr: function(str1, str2, trim) {
+ if (! str1 || ! str2) {
+ return "";
+ }
+
+ let m = StringUtil.length(str1, trim);
+ let n = StringUtil.length(str2, trim);
+
+ // 创建一个二维数组,dp[i][j] 记录以 str1[i-1] 和 str2[j-1] 结尾的公共子串长度
+ let dp = Array.from(Array(m + 1), () => Array(n + 1).fill(0));
+
+ let maxLength = 0; // 记录最长公共子串的长度
+ let endIndex = 0; // 记录最长公共子串在 str1 中结束的位置
+
+ for (let i = 1; i <= m; i++) {
+ for (let j = 1; j <= n; j++) {
+ // 如果当前字符相等
+ if (str1[i - 1] === str2[j - 1]) {
+ dp[i][j] = dp[i - 1][j - 1] + 1;
+
+ // 更新最大长度和结束索引
+ if (dp[i][j] > maxLength) {
+ maxLength = dp[i][j];
+ endIndex = i; // 这里的 i 是基于 1 的索引,对应 str1 的 endIndex
+ }
+ } else {
+ dp[i][j] = 0; // 不连续则清零
+ }
+ }
+ }
+
+ // 根据结束索引和最大长度,从 str1 中截取出最长公共子串
+ return str1.substring(endIndex - maxLength, endIndex);
}
};
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/js/main.js b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/js/main.js
index 473a761e..289e9876 100755
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/js/main.js
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/js/main.js
@@ -12682,8 +12682,10 @@ Content-Type: ` + contentType) + (StringUtil.isEmpty(headerStr, true) ? '' : hea
it.compareColor = 'green'
it.hintMessage = '新增字段/新增值 等'
break;
+ case JSONResponse.COMPARE_SORT_CHANGE:
case JSONResponse.COMPARE_LENGTH_CHANGE:
case JSONResponse.COMPARE_VALUE_CHANGE:
+ case JSONResponse.COMPARE_FILTER_CHANGE:
it.compareColor = 'blue'
it.hintMessage = '值改变 等'
break;
From a3de5e3d2d11bfbcc014d1cc07e4b66de9afd751 Mon Sep 17 00:00:00 2001
From: TommyLemon
Date: Mon, 19 Oct 2026 00:04:01 +0800
Subject: [PATCH 19/26] =?UTF-8?q?=E9=9B=B6=E4=BB=A3=E7=A0=81=E6=96=AD?=
=?UTF-8?q?=E8=A8=80=EF=BC=9A=E4=BC=98=E5=8C=96=E8=87=AA=E5=8A=A8=E6=96=AD?=
=?UTF-8?q?=E8=A8=80=E6=98=AF=E5=90=A6=E6=8C=89=E6=90=9C=E7=B4=A2=E5=85=B3?=
=?UTF-8?q?=E9=94=AE=E8=AF=8D=E8=BF=94=E5=9B=9E=E5=AD=97=E7=AC=A6=E4=B8=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../main/resources/static/api/apijson/JSONResponse.js | 8 ++++----
.../main/resources/static/api/apijson/StringUtil.js | 11 +++++++----
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
index b89c0231..58af86b0 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/JSONResponse.js
@@ -1717,9 +1717,9 @@ var JSONResponse = {
target.sort = sort = sort == null || srt === sort ? srt : (sort.includes(srt) ? sort : (srt === '=' ? sort + '=' : ''));
}
- if (isStr && same !== '' && StringUtil.isNotEmpty(first) && StringUtil.isNotEmpty(last)) {
- var sm = StringUtil.longestSubstr(first, last);
- target.same = same = StringUtil.longestSubstr(same, sm);
+ if (isStr && same !== '' && (StringUtil.isNotEmpty(first) || StringUtil.isNotEmpty(last))) {
+ var sm = StringUtil.isEmpty(first) ? last : (StringUtil.isEmpty(last) ? first : StringUtil.longestSubstr(first, last));
+ target.same = same = same == null ? sm : (StringUtil.isEmpty(sm) ? same : StringUtil.longestSubstr(same, sm));
}
}
}
@@ -1793,7 +1793,7 @@ var JSONResponse = {
}
if (isStr && same !== '' && StringUtil.isNotEmpty(real)) {
- var sm = StringUtil.isEmpty(same) ? real : StringUtil.longestSubstr(real, same); // preReal);
+ var sm = same == null ? real : StringUtil.longestSubstr(real, same); // preReal);
target.same = same = sm; // StringUtil.longestSubstr(same, sm);
}
}
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js
index ce75a0ee..441b255b 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/apijson/StringUtil.js
@@ -881,12 +881,15 @@ var StringUtil = {
},
longestSubstr: function(str1, str2, trim) {
- if (! str1 || ! str2) {
- return "";
+ let m = StringUtil.isString(str1) ? StringUtil.length(str1, trim) : 0;
+ let n = m <= 0 || ! StringUtil.isString(str2) ? 0 : StringUtil.length(str2, trim);
+ if (n <= 0) {
+ return '';
}
- let m = StringUtil.length(str1, trim);
- let n = StringUtil.length(str2, trim);
+ if (str1 === str2) {
+ return StringUtil.get(str1);
+ }
// 创建一个二维数组,dp[i][j] 记录以 str1[i-1] 和 str2[j-1] 结尾的公共子串长度
let dp = Array.from(Array(m + 1), () => Array(n + 1).fill(0));
From 78152cb9beb28c6901cf0f640fac82d0590935b7 Mon Sep 17 00:00:00 2001
From: TommyLemon <1184482681@qq.com>
Date: Sun, 1 Nov 2026 21:02:02 +0800
Subject: [PATCH 20/26] test: verify login for APIAuto, UnitAuto, SQLAuto,
CVAuto, AutoUI; fix: APIAuto UI offset when cursor down to bottom of script
panel
---
.../java/apijson/boot/DemoController.java | 75 +++++++++++++++++--
.../src/main/resources/static/api/index.html | 2 +-
2 files changed, 69 insertions(+), 8 deletions(-)
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java
index 94c1a5bc..01917e82 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java
@@ -17,9 +17,7 @@
import apijson.fastjson2.APIJSONController;
import apijson.fastjson2.APIJSONParser;
import apijson.fastjson2.JSONRequest;
-import apijson.framework.APIJSONApplication;
-import apijson.framework.APIJSONConstant;
-import apijson.framework.APIJSONCreator;
+import apijson.framework.*;
import apijson.orm.exception.*;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
@@ -68,7 +66,6 @@
import apijson.demo.model.Privacy;
import apijson.demo.model.User;
import apijson.demo.model.Verify;
-import apijson.framework.BaseModel;
import unitauto.MethodUtil;
import static apijson.JSON.getString;
@@ -3320,10 +3317,16 @@ public String au() {
//}
@PostMapping("method/list")
- public Map listMethod(@RequestBody String request) {
+ public Map listMethod(@RequestBody String request, HttpSession session) {
if (Log.DEBUG == false) {
return MethodUtil.JSON_CALLBACK.newErrorResult(new IllegalAccessException("非 DEBUG 模式下不允许使用 UnitAuto 单元测试!"));
}
+ try {
+ COMMON_PARSER.getVerifier().setVisitor(APIJSONVerifier.getVisitor(session)).verifyLogin();
+ } catch (Exception e) {
+ return MethodUtil.JSON_CALLBACK.newErrorResult(e);
+ }
+
return MethodUtil.listMethod(request);
}
@@ -3351,9 +3354,19 @@ public void complete(com.alibaba.fastjson.JSONObject data, Method method, Method
}
};
- if (Log.DEBUG == false) {
+ Exception err = Log.DEBUG ? null : new IllegalAccessException("非 DEBUG 模式下不允许使用 UnitAuto 单元测试!");
+ if (err == null) {
try {
- listener.complete(MethodUtil.JSON_CALLBACK.newErrorResult(new IllegalAccessException("非 DEBUG 模式下不允许使用 UnitAuto 单元测试!")));
+ HttpSession session = servletRequest.getSession();
+ COMMON_PARSER.getVerifier().setVisitor(APIJSONVerifier.getVisitor(session)).verifyLogin();
+ } catch (Exception e) {
+ err = e;
+ }
+ }
+
+ if (err != null) {
+ try {
+ listener.complete(MethodUtil.JSON_CALLBACK.newErrorResult(err));
}
catch (Exception e1) {
e1.printStackTrace();
@@ -3384,6 +3397,12 @@ public void complete(com.alibaba.fastjson.JSONObject data, Method method, Method
@GetMapping("api/test/start")
public String startApiTest(HttpSession session) {
+ try {
+ COMMON_PARSER.getVerifier().setVisitor(APIJSONVerifier.getVisitor(session)).verifyLogin();
+ } catch (Exception e) {
+ return JSON.toJSONString(COMMON_PARSER.newErrorResult(e));
+ }
+
//response.sendRedirect("http://localhost:3000/test/start");
long id = 100000 + Math.round(899999*Math.random());
DemoParser.KEY_MAP.put(String.valueOf(id), session); // 调这个接口一般是前端/CI/CD,调查询接口的是 Node,Session 不同 session.setAttribute("key", id);
@@ -3391,6 +3410,12 @@ public String startApiTest(HttpSession session) {
}
@GetMapping("api/test/status")
public String getApiTestStatus(@RequestParam(value = "key", required = false) String key, HttpSession session) {
+ try {
+ COMMON_PARSER.getVerifier().setVisitor(APIJSONVerifier.getVisitor(session)).verifyLogin();
+ } catch (Exception e) {
+ return JSON.toJSONString(COMMON_PARSER.newErrorResult(e));
+ }
+
//response.sendRedirect("http://localhost:3000/test/status");
DemoParser.KEY_MAP.remove(key);
return delegate("http://localhost:3000/test/status", session);
@@ -3398,30 +3423,60 @@ public String getApiTestStatus(@RequestParam(value = "key", required = false) St
@GetMapping("unit/test/start")
public String startUnitTest(HttpSession session) {
+ try {
+ COMMON_PARSER.getVerifier().setVisitor(APIJSONVerifier.getVisitor(session)).verifyLogin();
+ } catch (Exception e) {
+ return JSON.toJSONString(COMMON_PARSER.newErrorResult(e));
+ }
+
long id = 100000 + Math.round(899999*Math.random());
DemoParser.KEY_MAP.put(String.valueOf(id), session); // 调这个接口一般是前端/CI/CD,调查询接口的是 Node,Session 不同 session.setAttribute("key", id);
return delegate("http://localhost:3001/test/start?key=" + id, session);
}
@GetMapping("unit/test/status")
public String getUnitTestStatus(@RequestParam(value = "key", required = false) String key, HttpSession session) {
+ try {
+ COMMON_PARSER.getVerifier().setVisitor(APIJSONVerifier.getVisitor(session)).verifyLogin();
+ } catch (Exception e) {
+ return JSON.toJSONString(COMMON_PARSER.newErrorResult(e));
+ }
+
DemoParser.KEY_MAP.remove(key);
return delegate("http://localhost:3001/test/status", session);
}
@GetMapping("sql/test/start")
public String startSQLTest(HttpSession session) {
+ try {
+ COMMON_PARSER.getVerifier().setVisitor(APIJSONVerifier.getVisitor(session)).verifyLogin();
+ } catch (Exception e) {
+ return JSON.toJSONString(COMMON_PARSER.newErrorResult(e));
+ }
+
long id = 100000 + Math.round(899999*Math.random());
DemoParser.KEY_MAP.put(String.valueOf(id), session); // 调这个接口一般是前端/CI/CD,调查询接口的是 Node,Session 不同 session.setAttribute("key", id);
return delegate("http://localhost:3002/test/start?key=" + id, session);
}
@GetMapping("sql/test/status")
public String getSQLTestStatus(@RequestParam("key") String key, HttpSession session) {
+ try {
+ COMMON_PARSER.getVerifier().setVisitor(APIJSONVerifier.getVisitor(session)).verifyLogin();
+ } catch (Exception e) {
+ return JSON.toJSONString(COMMON_PARSER.newErrorResult(e));
+ }
+
DemoParser.KEY_MAP.remove(key);
return delegate("http://localhost:3002/test/status", session);
}
@GetMapping("cv/test/start")
public String startCvTest(HttpSession session) {
+ try {
+ COMMON_PARSER.getVerifier().setVisitor(APIJSONVerifier.getVisitor(session)).verifyLogin();
+ } catch (Exception e) {
+ return JSON.toJSONString(COMMON_PARSER.newErrorResult(e));
+ }
+
//response.sendRedirect("http://localhost:3003/test/start");
long id = 100000 + Math.round(899999*Math.random());
DemoParser.KEY_MAP.put(String.valueOf(id), session); // 调这个接口一般是前端/CI/CD,调查询接口的是 Node,Session 不同 session.setAttribute("key", id);
@@ -3429,6 +3484,12 @@ public String startCvTest(HttpSession session) {
}
@GetMapping("cv/test/status")
public String getCvTestStatus(@RequestParam(value = "key", required = false) String key, HttpSession session) {
+ try {
+ COMMON_PARSER.getVerifier().setVisitor(APIJSONVerifier.getVisitor(session)).verifyLogin();
+ } catch (Exception e) {
+ return JSON.toJSONString(COMMON_PARSER.newErrorResult(e));
+ }
+
//response.sendRedirect("http://localhost:3003/test/status");
DemoParser.KEY_MAP.remove(key);
return delegate("http://localhost:3003/test/status", session);
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/index.html b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/index.html
index 669bb858..46298f4b 100755
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/index.html
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static/api/index.html
@@ -640,7 +640,7 @@
-
-
+
---
@@ -21,7 +21,7 @@
集合 文档、测试、Mock、调试、管理 的一站式体验,还有 **AI 问答** 和一键 格式化、注释/取消注释 等高效快捷键。
在常用功能上远超 Postman, Swagger, YApi 等各种 开源、商业 的 API 文档/测试 工具,并能一键导入用例和文档。
支持 GET, POST, PUT, PATCH, DELETE, HEAD 等各种 HTTP Method 及 Content-Type, URL /{Path}/{Variable}。
-不仅适用于 RESTful、类 RESTful、GRPC 的 API,还是腾讯 [APIJSON](https://github.com/APIJSON/APIJSON) 官方建议的文档与测试工具。
+不仅适用于 RESTful、类 RESTful、GRPC 的 API,还是 [APIJSON](https://github.com/APIJSON/APIJSON) 官方建议的文档与测试工具。
腾讯内部用户包括 IEG 互动娱乐事业群、TEG 技术工程事业群、CSIG 云与智慧事业群 的多个部门及团队,
外部用户包含 华为、工商银行某地分行、500 强上市公司传音、跨境电商巨头 SHEIN、行业领头羊社保科技 等。
@@ -35,7 +35,7 @@
腾讯 AI 测试圈子演讲(部分)
-
+
#### 腾讯内先后被 TEG 工具开发组、微信支付部门、IEG 工具开发组、CDG 金融支付组、IEG PC 游戏平台部 邀请分享了
@@ -60,8 +60,8 @@ https://testwo.cn1.quickconnect.cn/vs/sharing/iiP8VK1C#!aG9tZV92aWRlby0xMQ==
https://www.bilibili.com/video/BV1yv411p7Y4
-
-
+
+

@@ -104,13 +104,11 @@ https://www.bilibili.com/video/BV1yv411p7Y4
* 自动给请求JSON加注释,一键切换
* 自动保存历史请求记录,一键恢复
-以上是简略图,机器学习测试、自动生成代码、自动静态检查、自动生成注释 等详细的功能介绍见
-
-[https://github.com/TommyLemon/APIAuto/blob/master/apijson/README.md](https://github.com/TommyLemon/APIAuto/blob/master/apijson/README.md)
+以上是简略图,机器学习测试、自动生成代码、自动静态检查、自动生成注释 等详细的功能介绍见 [apijson/README.md](/apijson/README.md)
### 演讲稿件
-[APIAuto-机器学习 HTTP 接口工具](https://github.com/TommyLemon/StaticResources/tree/master/APIAuto/Share)
-[QECon 大会-腾讯 Tommy-零代码开发和测试](https://github.com/TommyLemon/StaticResources/tree/master/APIAuto/Share)
+[APIAuto-机器学习 HTTP 接口工具](https://github.com/TommyLemon/StaticResources/tree/main/APIAuto/Share)
+[QECon 大会-腾讯 Tommy-零代码开发和测试](https://github.com/TommyLemon/StaticResources/tree/main/APIAuto/Share)
### 视频教程
Bilibili:https://search.bilibili.com/all?keyword=APIAuto
@@ -127,6 +125,8 @@ Bilibili:https://search.bilibili.com/all?keyword=APIAuto
[APIAuto 开源项目教程](https://blog.csdn.net/gitblog_00138/article/details/142802330)
[Github 2.2k Star!一款开源的机器学习 HTTP 接口工具!](https://mp.weixin.qq.com/s/4ZS80QP-WN-holFQkrxK-w)
[APIAuto:机器学习驱动的零代码HTTP接口智能测试平台深度解析](https://blog.csdn.net/weixin_33940469/article/details/162085502)
+[APIAuto:零代码接口测试与文档管理一体化平台实战指南](https://blog.csdn.net/weixin_31061699/article/details/162536896)
+[APIAuto: an HTTP interface tool that treats test cases as a database-backed workflow](https://hysenlabs.com/projects/tommylemon-apiauto)
### 百度、搜狗、抖音公网接口调用演示
因为这些接口不支持 CORS 跨域,所以需要开启托管服务代理。
@@ -157,7 +157,7 @@ https://www.bilibili.com/video/BV1JZ4y1d7c8
本项目是纯静态 SPA 网页,下载源码解压后:
可以用浏览器打开 index.html,建议用 [Chrome](https://www.google.com/intl/zh-CN/chrome) 或 [Firefox](https://www.mozilla.org/zh-CN/firefox) (Safari、Edge、IE 等可能有兼容问题),注意此方法不显示 svg 图标。
也可以用 [Webstorm](https://www.jetbrains.com/webstorm/), [IntelliJ IDEA](https://www.jetbrains.com/idea/), [Eclipse](https://www.eclipse.org/) 等 IDE 来打开。
-也可以部署到服务器并用 [Nginx](https://www.jianshu.com/p/11fa3a1a6d65) 或 [Node](https://segmentfault.com/a/1190000039744899) 反向代理,或者 [把源码放到 SpringBoot 项目的 resources/static 目录](https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server)。
+也可以部署到服务器(内网能访问即可,不建议公网访问)并用 [Nginx](https://www.jianshu.com/p/11fa3a1a6d65) 或 [Node](https://segmentfault.com/a/1190000039744899) 反向代理,或者 [把源码放到 SpringBoot 项目的 resources/static 目录](https://github.com/APIJSON/APIJSON-Demo/tree/main/APIJSON-Java-Server)。
还可以直接访问官方网站 http://apijson.cn/api 或 http://apijson.cn:8080
把左侧 URL 输入框内基地址改为你主机的地址(例如 http://localhost:8080 ),
@@ -167,9 +167,9 @@ https://www.bilibili.com/video/BV1JZ4y1d7c8
右侧上方中间 3 个标签是默认的测试用户账号,点击登录/退出,左侧 - 删除,右侧 + 新增。
**自动生成文档、自动管理测试用例 这两个功能 需要部署 APIJSON 后端,建议用 APIJSONBoot 系列之一 Demo,见**
-https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
+https://github.com/APIJSON/APIJSON-Demo/tree/main/APIJSON-Java-Server
-**建议使用已 [内置 APIAuto](https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static) 的 [APIJSONBoot-MultiDataSource](https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource),可以避免以下常见问题 1, 3, 4**
+**建议使用已 [内置 APIAuto](https://github.com/APIJSON/APIJSON-Demo/tree/main/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static) 的 [APIJSONBoot-MultiDataSource](https://github.com/APIJSON/APIJSON-Demo/tree/main/APIJSON-Java-Server/APIJSONBoot-MultiDataSource),可以避免以下常见问题 1, 3, 4**
@@ -181,10 +181,10 @@ https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
点右上角登录 > 点右上角设置 > 导入第三方文档(平台 URL) > 如果默认设置不符你的需求,可以在弹窗内修改 > 点上传按钮
#### 2.从浏览器 Network 接口信息界面或 Charles 等抓包工具复制后粘贴到 URL 输入框
-https://github.com/TommyLemon/APIAuto#%E7%99%BE%E5%BA%A6%E6%90%9C%E7%8B%97%E6%8A%96%E9%9F%B3%E5%85%AC%E7%BD%91%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8%E6%BC%94%E7%A4%BA
+[README.md#百度搜狗抖音公网接口调用演示](README.md#%E7%99%BE%E5%BA%A6%E6%90%9C%E7%8B%97%E6%8A%96%E9%9F%B3%E5%85%AC%E7%BD%91%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8%E6%BC%94%E7%A4%BA)
#### 3.调用 /delegate 代理接口来录制请求的方法、参数、Header、响应等信息
-https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource#%E4%BB%A3%E7%90%86%E6%8E%A5%E5%8F%A3%E5%8F%8A%E5%BD%95%E5%88%B6%E6%B5%81%E9%87%8F
+https://github.com/APIJSON/APIJSON-Demo/tree/main/APIJSON-Java-Server/APIJSONBoot-MultiDataSource#%E4%BB%A3%E7%90%86%E6%8E%A5%E5%8F%A3%E5%8F%8A%E5%BD%95%E5%88%B6%E6%B5%81%E9%87%8F
#### 4.打开分享链接来自动填充 URL、参数 JSON、请求头、参数注入配置、设置项 等
例如:
@@ -225,7 +225,7 @@ npm i xxx
然后再启动 HTTP 服务。
启动成功后会有提示,点击链接或者复制到浏览器输入框打开即可。
-如果托管服务是用 [APIJSONBoot-MultiDataSource](https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource) 部署的,
+如果托管服务是用 [APIJSONBoot-MultiDataSource](https://github.com/APIJSON/APIJSON-Demo/tree/main/APIJSON-Java-Server/APIJSONBoot-MultiDataSource) 部署的,
链接 host 后可以加上 /api,例如 http://localhost:3000/api/test/start,
通过这个接口来放宽前端执行时查询测试用例、参数配置等列表的条数,一次可批量执行更多用例。
@@ -244,7 +244,7 @@ https://github.com/TommyLemon/APIAuto/issues/9
如果是其它接口,则一般是以上原因或者被接口不支持 CORS 跨域,可以改为支持,
或者在 APIAuto 右上角设置开启托管服务器代理,通过后端代理访问接口,
注意默认是官网的托管服务器 http://apijson.cn:9090 ,仅支持公网,
-如果是贵公司内网,请按以上 [部署方法](https://github.com/TommyLemon/APIAuto#%E9%83%A8%E7%BD%B2%E6%96%B9%E6%B3%95) 文档来部署 APIJSON 后端到内网,并修改托管服务器地址。
+如果是贵公司内网,请按以上 [部署方法](README.md#%E9%83%A8%E7%BD%B2%E6%96%B9%E6%B3%95) 文档来部署 APIJSON 后端到内网,并修改托管服务器地址。
#### 2.没有生成文档
右上角设置项与数据库实际配置不一致 等
@@ -301,7 +301,8 @@ https://github.com/TommyLemon/APIAuto/issues
### 生态项目
-[APIJSON](https://github.com/APIJSON/APIJSON) 🏆 腾讯实时 零代码、全功能、强安全 ORM 库 🚀 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构
+[APIJSON](https://github.com/APIJSON/APIJSON) 🏆 实时 零代码、全功能、强安全 ORM 库 🚀 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构
+
[AutoUI](https://github.com/TommyLemon/AutoUI) 📱 AI 零代码快准稳 UI 自动化测试平台 🚀 3 像素内精准定位,2 毫秒内精准等待,自动断言 UI 和数据、界定前/后端 bug,用户包含腾讯,微信团队邀请分享
[CVAuto](https://github.com/TommyLemon/CVAuto) 👁 零代码零标注 CV AI 自动化测试平台 🚀 免除大量人工画框和打标签等,直接快速测试 CV 计算机视觉 AI 图像识别算法
@@ -314,7 +315,7 @@ https://github.com/TommyLemon/APIAuto/issues
[APIJSONdocs](https://github.com/ruoranw/APIJSONdocs) APIJSON 英文文档,提供排版清晰的文档内容展示,包括详细介绍、设计规范、使用方式等
-[apijson.org](https://github.com/APIJSON/apijson.org) APIJSON 官方网站,提供 APIJSON 的 功能简介、登记用户、作者与贡献者、相关链接 等
+[apijson.org](https://github.com/APIJSON/apijson.cn) APIJSON 官方网站,提供 APIJSON 的 功能简介、登记用户、作者与贡献者、相关链接 等
[APIJSON.NET](https://github.com/liaozb/APIJSON.NET) C# 版 APIJSON ,支持 MySQL, PostgreSQL, SQL Server, Oracle, SQLite
@@ -332,13 +333,15 @@ https://github.com/TommyLemon/APIAuto/issues
[uliweb-apijson](https://github.com/zhangchunlin/uliweb-apijson) Python 版 APIJSON,支持 MySQL, PostgreSQL, SQL Server, Oracle, SQLite 等
+[apijson-rust](https://github.com/APIJSON/apijson-rust) Rust 版 APIJSON,包含一个优雅、高性能的多数据源管理系统,支持 MySQL, PostgreSQL 等统一管理和操作
+
[apijson-practice](https://github.com/vcoolwind/apijson-practice) BAT 技术专家开源的 APIJSON 参数校验注解 Library 及相关 Demo
[Android-ZBLibrary](https://github.com/TommyLemon/Android-ZBLibrary) Android MVP 快速开发框架,Demo 全面,注释详细,使用简单,代码严谨
### 持续更新
-https://github.com/TommyLemon/APIAuto/commits/master
+https://github.com/TommyLemon/APIAuto/commits/main
### 我要赞赏
From 59cc3e98d6d6a330165d7cb4d5a0c263fa6467ae Mon Sep 17 00:00:00 2001
From: TommyLemon <1184482681@qq.com>
Date: Sun, 1 Nov 2026 23:44:03 +0800
Subject: [PATCH 24/26] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 1a821be3..d6f5a799 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# APIJSON-Demo
-[APIJSON](https://github.com/APIJSON/APIJSON) 各种语言(Java, Swift, JavaScript, Python 等)、各种框架(SpringBoot, JFinal 等)、各种客户端(Web, Android, iOS 等) 的 使用示例项目、上手文档、测试数据 SQL 文件 等。
-Demo projects with document and SQL files for [APIJSON](https://github.com/APIJSON/APIJSON) with different programming languages, different frameworks and different clients.
+[APIJSON](https://github.com/APIJSON/APIJSON) 各种语言(Java, Swift, JavaScript, Python 等)、各种框架(SpringBoot, JFinal 等)、各种客户端(Web, Android, iOS 等) 的 使用示例项目、上手文档、测试数据 SQL 文件 等,附带 APIAuto, UnitAuto, SQLAuto, AutoUI, CVAuto 等自动化测试。
+Demo projects with document and SQL files for [APIJSON](https://github.com/APIJSON/APIJSON) with different programming languages, different frameworks and different clients along with automated testing: APIAuto, UnitAuto, SQLAuto, AutoUI, CVAuto, etc.
From 44b5ab4ad3ba198ffa380ccb71349b6794f340e3 Mon Sep 17 00:00:00 2001
From: TommyLemon <1184482681@qq.com>
Date: Sun, 1 Nov 2026 23:53:17 +0800
Subject: [PATCH 25/26] Update DemoController.java
---
.../src/main/java/apijson/boot/DemoController.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java
index 1c9ad4dc..fa518c0c 100644
--- a/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/java/apijson/boot/DemoController.java
@@ -2563,7 +2563,7 @@ public String execute(@RequestBody String request, HttpSession session) {
APIJSONParser parser = newParser(session, RequestMethod.PUT); // : DELETE);
int maxCount = isWrite ? parser.getMaxUpdateCount() : parser.getMaxQueryCount();
- if (isInsert == false && (config.isMySQL() || config.isMariaDB())) {
+ if (isRedis == false && isInsert == false && (config.isMySQL() || config.isMariaDB())) {
int limitIndex = findLastKeyIndex(trimmedSQL, "LIMIT");
if (limitIndex < 0) {
From 200598f726bb085a048518ef1e7b5df0c8dd821b Mon Sep 17 00:00:00 2001
From: TommyLemon <1184482681@qq.com>
Date: Sun, 1 Nov 2026 23:55:03 +0800
Subject: [PATCH 26/26] =?UTF-8?q?replace=20Copyright=20=C2=A92016=20TommyL?=
=?UTF-8?q?emon=20to=20=C2=A92025=20APIJSON?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/java/apijson/boot/DemoApplication.java | 2 +-
.../src/main/java/apijson/boot/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoFunctionParser.java | 2 +-
.../src/main/java/apijson/demo/DemoObjectParser.java | 2 +-
.../src/main/java/apijson/demo/DemoParser.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoVerifier.java | 2 +-
.../src/main/java/apijson/demo/model/Privacy.java | 2 +-
.../src/main/java/apijson/demo/model/User.java | 2 +-
.../src/main/java/apijson/demo/model/Verify.java | 2 +-
.../APIJSONBoot/src/main/java/apijson/boot/DemoApplication.java | 2 +-
.../APIJSONBoot/src/main/java/apijson/boot/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoFunctionParser.java | 2 +-
.../src/main/java/apijson/demo/DemoObjectParser.java | 2 +-
.../APIJSONBoot/src/main/java/apijson/demo/DemoParser.java | 2 +-
.../APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../APIJSONBoot/src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../APIJSONBoot/src/main/java/apijson/demo/DemoVerifier.java | 2 +-
.../APIJSONBoot/src/main/java/apijson/demo/model/Privacy.java | 2 +-
.../APIJSONBoot/src/main/java/apijson/demo/model/User.java | 2 +-
.../APIJSONBoot/src/main/java/apijson/demo/model/Verify.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoDataSourceConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoFunctionParser.java | 2 +-
.../src/main/java/apijson/demo/DemoObjectParser.java | 2 +-
.../APIJSONDemo-Gson/src/main/java/apijson/demo/DemoParser.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoVerifier.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoDataSourceConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoFunctionParser.java | 2 +-
.../src/main/java/apijson/demo/DemoObjectParser.java | 2 +-
.../src/main/java/apijson/demo/DemoParser.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoVerifier.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoFunctionParser.java | 2 +-
.../src/main/java/apijson/demo/DemoObjectParser.java | 2 +-
.../src/main/java/apijson/demo/DemoParser.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoVerifier.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoDataSourceConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoDataSourceConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoDataSourceConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoFunctionParser.java | 2 +-
.../src/main/java/apijson/demo/DemoObjectParser.java | 2 +-
.../src/main/java/apijson/demo/DemoParser.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoVerifier.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoFunctionParser.java | 2 +-
.../src/main/java/apijson/demo/DemoObjectParser.java | 2 +-
.../src/main/java/apijson/demo/DemoParser.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoVerifier.java | 2 +-
.../src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoFunctionParser.java | 2 +-
.../src/main/java/apijson/demo/DemoObjectParser.java | 2 +-
.../src/main/java/apijson/demo/DemoParser.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../src/main/java/apijson/demo/DemoVerifier.java | 2 +-
.../APIJSONDemo/src/main/java/apijson/demo/DemoApplication.java | 2 +-
.../APIJSONDemo/src/main/java/apijson/demo/DemoController.java | 2 +-
.../src/main/java/apijson/demo/DemoFunctionParser.java | 2 +-
.../src/main/java/apijson/demo/DemoObjectParser.java | 2 +-
.../APIJSONDemo/src/main/java/apijson/demo/DemoParser.java | 2 +-
.../APIJSONDemo/src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../APIJSONDemo/src/main/java/apijson/demo/DemoSQLExecutor.java | 2 +-
.../APIJSONDemo/src/main/java/apijson/demo/DemoVerifier.java | 2 +-
.../src/main/java/apijson/demo/DemoFunctionParser.java | 2 +-
.../APIJSONFinal/src/main/java/apijson/demo/DemoParser.java | 2 +-
.../APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java | 2 +-
.../APIJSONFinal/src/main/java/apijson/demo/DemoVerifier.java | 2 +-
.../APIJSONFinal/src/main/java/apijson/demo/model/Privacy.java | 2 +-
.../APIJSONFinal/src/main/java/apijson/demo/model/User.java | 2 +-
.../APIJSONFinal/src/main/java/apijson/demo/model/Verify.java | 2 +-
.../src/main/java/apijson/jfinal/DemoAppConfig.java | 2 +-
.../src/main/java/apijson/jfinal/DemoController.java | 2 +-
.../src/main/java/com/example/apijsondemo/DemoSQLExecutor.java | 2 +-
.../com/example/apijsondemo/config/DemoDataSourceConfig.java | 2 +-
150 files changed, 150 insertions(+), 150 deletions(-)
diff --git a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/boot/DemoApplication.java b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/boot/DemoApplication.java
index f2206c13..0c3e95f0 100755
--- a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/boot/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/boot/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/boot/DemoController.java b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/boot/DemoController.java
index 590aa4d2..def21656 100644
--- a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/boot/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/boot/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoFunctionParser.java
index 6b641ede..09a22252 100644
--- a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoObjectParser.java b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoObjectParser.java
index c789fc2b..f162a8f1 100644
--- a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoObjectParser.java
+++ b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoObjectParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoParser.java
index 9ed3491e..b209f9f5 100644
--- a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoSQLConfig.java
index 0192b96b..e8ef0de7 100755
--- a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoSQLExecutor.java
index 1d48c5fe..3df01e5a 100644
--- a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoVerifier.java
index 1a0ee189..6a47e364 100644
--- a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/DemoVerifier.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/Privacy.java b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/Privacy.java
index 930c4ed1..8427f99e 100644
--- a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/Privacy.java
+++ b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/Privacy.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/User.java b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/User.java
index a535d28f..baf250a4 100644
--- a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/User.java
+++ b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/User.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/Verify.java b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/Verify.java
index fa5fc135..64025c4b 100644
--- a/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/Verify.java
+++ b/APIJSON-Java-Server/APIJSONBoot-BigData/src/main/java/apijson/demo/model/Verify.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoApplication.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoApplication.java
index 1e81c9c7..0aa0984b 100755
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoController.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoController.java
index 5bc52e51..1baa069f 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoFunctionParser.java
index d62f0cc2..617e5252 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoObjectParser.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoObjectParser.java
index 837ccd5a..635f27a9 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoObjectParser.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoObjectParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoParser.java
index 08103166..6f529e30 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java
index 8e8ca23e..1173b78d 100755
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLExecutor.java
index 7208ab09..e09488e7 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoVerifier.java
index 97b39129..79621343 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoVerifier.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/Privacy.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/Privacy.java
index e8877e90..1b5dd3fa 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/Privacy.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/Privacy.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/User.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/User.java
index 1ea89000..785d1dc0 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/User.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/User.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/Verify.java b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/Verify.java
index 0da333a0..797c82de 100644
--- a/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/Verify.java
+++ b/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/model/Verify.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoApplication.java
index 051c06bd..52ab01e6 100755
--- a/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoController.java
index aa5287de..adbfcd10 100644
--- a/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoSQLConfig.java
index be5c4e93..647111c1 100755
--- a/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-ClickHouse/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoApplication.java
index 32c1ae68..f28fd455 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoController.java
index e2e2b9f5..cabe5f4f 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoDataSourceConfig.java b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoDataSourceConfig.java
index a25cf62f..3aae4a55 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoDataSourceConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoDataSourceConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoSQLConfig.java
index d29d72fa..c118412f 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoSQLExecutor.java
index f933aa1c..23064dff 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Druid/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoApplication.java
index 326ee8fa..1059a25b 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoController.java
index aa5287de..adbfcd10 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoSQLConfig.java
index 6c95491c..376d3c48 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Elasticsearch/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoApplication.java
index f3f61137..42841a88 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoController.java
index cc98ce1b..9b5d0368 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoFunctionParser.java
index f24fc1d6..0c01aff9 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoObjectParser.java b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoObjectParser.java
index 89765f65..028686cb 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoObjectParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoObjectParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoParser.java
index e74b113a..0f1b83fa 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoSQLConfig.java
index 3a09d547..a13c8b56 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoSQLExecutor.java
index 929eb020..7702feea 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoVerifier.java
index a3dec9cb..575844e8 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Gson/src/main/java/apijson/demo/DemoVerifier.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoApplication.java
index 1844cda1..35edca76 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoController.java
index aa5287de..adbfcd10 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoSQLConfig.java
index 70120f95..b1d6ab4b 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoSQLExecutor.java
index 7b98aab1..2f9b344b 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Hadoop/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoApplication.java
index 387cda0d..507be334 100755
--- a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoController.java
index e2e2b9f5..cabe5f4f 100644
--- a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoDataSourceConfig.java b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoDataSourceConfig.java
index ae7488f2..43bdb60b 100644
--- a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoDataSourceConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoDataSourceConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoSQLConfig.java
index 63a81fd5..90f99ba4 100755
--- a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoSQLExecutor.java
index f933aa1c..23064dff 100644
--- a/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-HikariCP/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoApplication.java
index 278eca02..474caa30 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoController.java
index a23f0c8e..655a4626 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoFunctionParser.java
index d3dc764f..749464d8 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoObjectParser.java b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoObjectParser.java
index fb287424..bca09dcf 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoObjectParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoObjectParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoParser.java
index d46aff33..1be735f7 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoSQLConfig.java
index 2bb5f79d..ef7d49f6 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoSQLExecutor.java
index f0a2192a..9b300a24 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoVerifier.java
index 5c8d47bc..248603bc 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson/src/main/java/apijson/demo/DemoVerifier.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoApplication.java
index 278eca02..474caa30 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoController.java
index a23f0c8e..655a4626 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoFunctionParser.java
index d3dc764f..749464d8 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoObjectParser.java b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoObjectParser.java
index fb287424..bca09dcf 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoObjectParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoObjectParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoParser.java
index d46aff33..1be735f7 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoSQLConfig.java
index 2bb5f79d..ef7d49f6 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoSQLExecutor.java
index f0a2192a..9b300a24 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoVerifier.java
index 5c8d47bc..248603bc 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Jackson3/src/main/java/apijson/demo/DemoVerifier.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoApplication.java
index 07177425..87adb5cd 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoController.java
index f8d758a4..0489a0a2 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoSQLConfig.java
index 7999acbe..67188325 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Javax/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoApplication.java
index f44c018a..b17cc1fe 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoController.java
index 9d5d7ca8..c6861d44 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoSQLConfig.java
index 3c529484..85e2a413 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoSQLExecutor.java
index f77947e0..7fbbcadc 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Elasticsearch/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoApplication.java
index 3306012c..d0f16659 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoController.java
index fee8e14c..f60445ce 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoSQLConfig.java
index d8c97ec7..59f3913f 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoSQLExecutor.java
index cb625a85..30673179 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Kafka/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoApplication.java
index 484375c4..d5fc3483 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoController.java
index fee8e14c..f60445ce 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoSQLConfig.java
index d8c97ec7..59f3913f 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoSQLExecutor.java
index b99b941a..32f2a1ea 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-RediSQL/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoApplication.java
index 919d518e..eb90327c 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoController.java
index fee8e14c..f60445ce 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoSQLConfig.java
index 12c658e8..02207476 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoSQLExecutor.java
index f5beb430..31489e23 100644
--- a/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-MultiDataSource-Redis/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoApplication.java
index c57051b8..f6b20d1e 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoController.java
index aa5287de..adbfcd10 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoSQLConfig.java
index d4b7b731..8743332a 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Presto/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoApplication.java
index 53657aca..a42ae1ff 100644
--- a/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoController.java
index 8be04a57..938e82fd 100644
--- a/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoDataSourceConfig.java b/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoDataSourceConfig.java
index a25cf62f..3aae4a55 100644
--- a/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoDataSourceConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoDataSourceConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoSQLConfig.java
index c20d1b78..7ac70ac0 100644
--- a/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoSQLExecutor.java
index e9448801..2a635d8d 100644
--- a/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-RawSQL/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoApplication.java
index 4f762b9f..c6f9960a 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoController.java
index e2e2b9f5..cabe5f4f 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoSQLConfig.java
index 9886332b..b2591fc5 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoSQLExecutor.java
index 892a052d..6bd27401 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Redis/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoApplication.java
index 67f88e2c..63f9b74f 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoController.java
index e2e2b9f5..cabe5f4f 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoDataSourceConfig.java b/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoDataSourceConfig.java
index a25cf62f..3aae4a55 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoDataSourceConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoDataSourceConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoSQLConfig.java
index d29d72fa..c118412f 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoSQLExecutor.java
index f933aa1c..23064dff 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Script/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoApplication.java
index 5a9f3091..bff761ad 100755
--- a/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoController.java
index aa5287de..adbfcd10 100644
--- a/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoDataSourceConfig.java b/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoDataSourceConfig.java
index 84a310e3..935ffec9 100644
--- a/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoDataSourceConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoDataSourceConfig.java
@@ -1,4 +1,4 @@
-///*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+///*Copyright ©2025 APIJSON(https://github.com/APIJSON)
//
//Licensed under the Apache License, Version 2.0 (the "License");
//you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoSQLConfig.java
index b2f46569..9194b514 100755
--- a/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoSQLExecutor.java
index d4de852b..35f18c8c 100644
--- a/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-ShardingSphere/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoApplication.java
index 180f16d7..e15265d5 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoController.java
index 35c5a7f7..21efbd6d 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoFunctionParser.java
index 26beaced..68b21e85 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoObjectParser.java b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoObjectParser.java
index e494a9dc..190bd93d 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoObjectParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoObjectParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoParser.java
index 11a19659..684e7aca 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoSQLConfig.java
index c68b36f7..6a9e2a30 100755
--- a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoSQLExecutor.java
index 197ed166..50ad8924 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoVerifier.java
index 0aa803b2..2255d85d 100644
--- a/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONDemo-Solon/src/main/java/apijson/demo/DemoVerifier.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoApplication.java
index ab8e9de8..de00bb76 100755
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoController.java
index 0d76c9dc..aa2bfbec 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoFunctionParser.java
index ef800088..d81b6dbe 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoObjectParser.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoObjectParser.java
index 8c511ec9..3199e875 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoObjectParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoObjectParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoParser.java
index 268fb164..fa1a4371 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoSQLConfig.java
index 72b79a41..9db3cd06 100755
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoSQLExecutor.java
index a5bda48a..a96c20b6 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoVerifier.java
index 9af6e373..821d3c47 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot3/src/main/java/apijson/demo/DemoVerifier.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoApplication.java
index f33713cd..5ea23ef7 100755
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoController.java
index 48f5f531..3ba52e7a 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoFunctionParser.java
index ef800088..d81b6dbe 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoObjectParser.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoObjectParser.java
index 8c511ec9..3199e875 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoObjectParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoObjectParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoParser.java
index 268fb164..fa1a4371 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoSQLConfig.java
index 72b79a41..9db3cd06 100755
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoSQLExecutor.java
index f446110a..b08fbc55 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoVerifier.java
index 9af6e373..821d3c47 100644
--- a/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONDemo-SpringBoot4/src/main/java/apijson/demo/DemoVerifier.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoApplication.java b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoApplication.java
index f9a84feb..4453e280 100755
--- a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoApplication.java
+++ b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoApplication.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoController.java b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoController.java
index 03433af7..13e36d60 100644
--- a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoFunctionParser.java
index 0ff6c72a..5be5f231 100644
--- a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoObjectParser.java b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoObjectParser.java
index 7660016a..7c1ab094 100644
--- a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoObjectParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoObjectParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoParser.java
index dad072d5..cdf5c1ea 100644
--- a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoSQLConfig.java
index 489b0609..ee3f5283 100755
--- a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoSQLExecutor.java
index 618cbd21..95ec0b8d 100644
--- a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoVerifier.java
index 812b6354..cf232183 100644
--- a/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/DemoVerifier.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoFunctionParser.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoFunctionParser.java
index e07b3ed2..9bdf9559 100644
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoFunctionParser.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoFunctionParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoParser.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoParser.java
index 88ae8103..2b217c8d 100644
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoParser.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoParser.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java
index e4fca50d..7ad66752 100755
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoSQLConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoVerifier.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoVerifier.java
index b5fc72f7..dda72aad 100644
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoVerifier.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/DemoVerifier.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/Privacy.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/Privacy.java
index 20f389dc..ce6cb49a 100644
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/Privacy.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/Privacy.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/User.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/User.java
index d81e630e..e5a4b35b 100644
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/User.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/User.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/Verify.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/Verify.java
index 65225d90..53f58691 100644
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/Verify.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/demo/model/Verify.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoAppConfig.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoAppConfig.java
index 5f4b92d4..0e4b543b 100755
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoAppConfig.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoAppConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoController.java b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoController.java
index 5381b857..72c04365 100755
--- a/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoController.java
+++ b/APIJSON-Java-Server/APIJSONFinal/src/main/java/apijson/jfinal/DemoController.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONSimpleDemo-SpringBoot3/src/main/java/com/example/apijsondemo/DemoSQLExecutor.java b/APIJSON-Java-Server/APIJSONSimpleDemo-SpringBoot3/src/main/java/com/example/apijsondemo/DemoSQLExecutor.java
index 51b2287c..dd3e781a 100644
--- a/APIJSON-Java-Server/APIJSONSimpleDemo-SpringBoot3/src/main/java/com/example/apijsondemo/DemoSQLExecutor.java
+++ b/APIJSON-Java-Server/APIJSONSimpleDemo-SpringBoot3/src/main/java/com/example/apijsondemo/DemoSQLExecutor.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/APIJSON-Java-Server/APIJSONSimpleDemo-SpringBoot3/src/main/java/com/example/apijsondemo/config/DemoDataSourceConfig.java b/APIJSON-Java-Server/APIJSONSimpleDemo-SpringBoot3/src/main/java/com/example/apijsondemo/config/DemoDataSourceConfig.java
index a509e1ea..8e0e0597 100644
--- a/APIJSON-Java-Server/APIJSONSimpleDemo-SpringBoot3/src/main/java/com/example/apijsondemo/config/DemoDataSourceConfig.java
+++ b/APIJSON-Java-Server/APIJSONSimpleDemo-SpringBoot3/src/main/java/com/example/apijsondemo/config/DemoDataSourceConfig.java
@@ -1,4 +1,4 @@
-/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
+/*Copyright ©2025 APIJSON(https://github.com/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.