Commit Graph

230 Commits

Author SHA1 Message Date
TommyLemon
db79168452 分页: 在分页详情 info 内返回查询计划 @explain 2021-06-15 00:51:16 +08:00
TommyLemon
ccec4b836b 分页:解决 query=2 不兼容 主表 @column:"fun()" 这种包含 SQL 函数的写法;SQL 函数:获取右括号 ) 的位置从 indexOf 改为 lastIndexOf 2021-06-15 00:03:02 +08:00
iceewei
b39dda60ae 新增datasource关键字 2021-06-14 22:59:40 +08:00
jun0315
81da25d533 feat:log print current time 2021-06-11 13:53:07 +08:00
TommyLemon
839e969a42
Merge pull request #241 from Rkyzzy/master
更新了最新的手机号正则表达式匹配,使其兼容最新的手机号pattern
2021-05-24 10:30:51 +08:00
Rkyzzy
8cffe1301f fix 更新了最新的手机号正则表达式匹配法则\
issue #240
2021-05-20 19:47:44 +08:00
Rkyzzy
89fb9bf7cd fix 更新了最新的手机正则表达式匹配法则 2021-05-20 19:44:31 +08:00
Rkyzzy
6c690cd4c5 fix: 更新为最新的手机号正则表达式匹配 issue#240 2021-05-20 19:40:17 +08:00
kxlv2000
204ffe55fa 优化 system.err.printlin 输出
issue Tencent#232
2021-05-19 22:09:27 +08:00
kxlv2000
a719ceb2d7
优化 system.err.printlin 输出
issure #232
2021-05-19 21:54:05 +08:00
TommyLemon
9df18f4c66
Merge pull request #227 from gujiachun/master
去除final关键字,方便业务代码重新定义ok、code、msg字段名
2021-04-29 16:40:38 +08:00
顾加春
95932f7687 去除final关键字,方便业务代码重新定义ok、code、msg字段名 2021-04-29 16:27:50 +08:00
TommyLemon
c732f26bfd
Merge pull request #224 from Rkyzzy/master
使用entrySet迭代器替代keySet迭代器提高效率 #48
2021-04-25 20:16:14 +08:00
TommyLemon
c40b48c78b
Merge pull request #225 from gdjs2/master
Format the code & Replace the Long(String) by Long.valueOf(String)
2021-04-25 20:09:16 +08:00
gdjs2
39f21f6f0f Format the code;
Use valueOf(String) instead of the deprecated Long(String)
2021-04-25 04:12:46 +00:00
Rkyzzy
0fcbdfab03 further wrote javadoc 2021-04-25 01:26:57 +08:00
Rkyzzy
6b5ecb2f1d 使用entrySet代替keySet提高效率 #48 2021-04-24 22:42:35 +08:00
Rkyzzy
c38ad8cebb 使用entrySet迭代器替代keySet迭代器提高效率 #48 2021-04-24 21:27:23 +08:00
TommyLemon
6bd265eaba
Merge pull request #223 from cs304-spring2021/master
尝试修复 oracle select 分页语法问题
2021-04-23 16:32:52 +08:00
kxlv2000
08a3125adf 尝试修复 oracle select 分页语法问题 2021-04-23 15:26:26 +08:00
TommyLemon
c51c347220
Merge pull request #222 from Rkyzzy/master
feat: 使用StringBuilder优化了字符串拼接
2021-04-22 20:05:53 +08:00
Rkyzzy
ab5c047d31 feat: 使用StringBuilder优化了字符串拼接
将StringUtil.java类中三处字符串直接拼接优化为使用StringBuilder拼接
issue #182
2021-04-22 17:22:34 +08:00
gdjs2
68d94d43b2 Using Arrays.toString() to deal with methods array 2021-04-22 07:43:03 +00:00
顾加春
838b3b08c8 fix: @explain在更新方法应用的错误
explain只应用在select请求中,如果是更新请求 不需要执行explain,但可以返回sql语句

issue #218
closes #218
2021-04-20 10:56:20 +08:00
TommyLemon
b900c5819c 解决 > RIGHT JOIN, ^ SIDE JOIN, ! ANTI JOIN, ) FOREIGN JOIN 等不返回副表数据;解决 | FULL JOIN 返回的副表数据部分是错的 2021-04-18 01:38:29 +08:00
TommyLemon
6f80013878 解决 JOIN 副表有 引用赋值 外的条件时因为缓存 SQL WHERE 中条件顺序不一致导致多余查询 2021-04-17 17:56:27 +08:00
403f
f4d8775acb 对JSONResponse.java中的formatHyphen方法的优化 2021-04-10 22:44:04 +08:00
TommyLemon
8cf170c0bf AbstractSQLExecutor 优化增删改未成功也未抛异常的 code 和 msg;AbstractParser 优化请求及响应的日志打印;AbstractSQLConfig 优化 key$ 的格式校验 2021-04-07 01:28:36 +08:00
iceewei
873afa8470 fix: 添加异常信息控制静态变量,改造两层错误码问题
- AbstractParser类增加了isPrintErrorLog静态变量,暴露给用户控制错误信息抛出
    - 内外两层错误码改造,增加抛出异常逻辑(updateCount <= 0)
2021-04-06 16:51:57 +08:00
iceewei
635d241368 feat: 添加异常信息控制静态变量,改造两层错误码问题
- AbstractParser类增加了isPrintErrorLog静态变量,暴露给用户控制错误信息抛出
- 内外两层错误码改造,增加抛出异常逻辑(updateCount <= 0)
2021-04-06 15:37:16 +08:00
iceewei
737aa738ef 错误码只在最外层返回,逻辑统一 2021-04-05 22:29:18 +08:00
iceewei
3d210639c6 错误码只在最外层返回,逻辑统一 2021-04-05 22:27:10 +08:00
TommyLemon
8a6672b5f9 升级版本号为 4.6.6 2021-04-05 19:33:53 +08:00
TommyLemon
fe65470b5c SQL 函数白名单新增 length;key$ 模糊搜索不允许连续的 %;AbstractSQLExecutor 新增 getKey 方法;新增待实现关键词 @null;删除 Structure.java, Operation 中 NECESSARY, DISALLOW 等已废弃的部分代码 2021-04-05 19:24:42 +08:00
TommyLemon
bae6febdbb 【安全】:调用 SQL 函数只允许用后端已配置的,避免 sleep(10) 这种命令函数导致数据库异常 2021-03-27 19:26:06 +08:00
TommyLemon
386a02f2f3 【安全】:加强对 JOIN 相关键值对的校验;加强对命名的校验 2021-03-27 16:47:56 +08:00
TommyLemon
ba68844465 删除已废弃的 Test 类的相关代码 2021-03-20 17:54:25 +08:00
TommyLemon
0a2cbc111a 升级版本号为 4.6.1 2021-03-20 17:30:17 +08:00
TommyLemon
a32d5f420e 解决对 Response 校验只对最外层生效;移除已废弃的 StructureUtil 和 Test 的相关代码 2021-03-20 16:25:14 +08:00
TommyLemon
4858f02d3f 解决表对象当表名有别名时被当成普通对象导致查不到数据 2021-02-06 19:46:13 +08:00
TommyLemon
9cd448713a 升级版本号为 4.6.0 2021-02-01 00:03:37 +08:00
TommyLemon
a406242a81 【性能】通过缓存及复用数组主表 ObjectParser 来大幅提升查询数组的性能 2021-01-31 19:35:52 +08:00
TommyLemon
6831cb6a6d 增强安全:对 DELETE 和 PUT 强制加 LIMIT;简化包含选项的写法:解决 "key<>": "a" 这种包含字符串的格式报错 Data truncation: Invalid JSON text,原来必须里面再用 "" 包装一次,JSON 中还得转义,现在直接写即可; 2021-01-31 04:20:26 +08:00
TommyLemon
cf1cca0254 解决 "toId%": "0,10" 等连续范围报错 value 类型不合法;解决 "id{}@": "[]/Moment/praiseUserIdList" 等引用赋值的值有时类型为 List 时报错 ArrayList cannot be cast to JSONArray; 2021-01-31 02:24:37 +08:00
TommyLemon
bb4896d208 通过减少不必要的 newSQLConfig 及 getSQL 等步骤来大幅提升数组内主表的查询性能 2021-01-30 19:56:35 +08:00
TommyLemon
b7d1fef192 优化全局默认参数的解析性能 2021-01-24 02:55:03 +08:00
TommyLemon
bbcf05e01c 解决某些情况下解析 引用赋值 出错 throw NullPointerException 或 IndexOutOfBoundsException 2021-01-24 01:55:59 +08:00
TommyLemon
f05df3a188 解决异常情况下未及时释放资源 2021-01-24 01:29:22 +08:00
Xiaoguang Sun
7c31719347 Add javax.activation dependencies to pom.xml
Add javax.activation dependencies to pom.xml so it could be built with
newer version of JDK starting from 11 which removed the deprecated Java
EE and CORBA Modules according to JEP 320

Signed-off-by: Xiaoguang Sun <sunxiaoguang@zhihu.com>
2021-01-20 12:23:11 +08:00
TommyLemon
8fd88e0af6 解决高并发情况下参数校验规则可能因为执行过程 remove 了部分操作关键词导致校验出错 2021-01-17 01:54:03 +08:00
TommyLemon
1f529277fa fastjson 版本降到 1.2.74;项目版本升到 4.5.1 2021-01-17 00:14:10 +08:00
ganyu.gy
1530864c25 Upgrade fastjson 2021-01-12 17:03:02 +08:00
ganyu.gy
451fbdf391 Optimize some code 2021-01-12 16:59:02 +08:00
TommyLemon
297c251f36
Update pom.xml 2020-12-28 23:27:36 +08:00
TommyLemon
5a51f8825d
Update pom.xml 2020-12-27 02:02:45 +08:00
TommyLemon
945f6e4b0a 升级版本号为 4.4.6 2020-12-27 01:46:08 +08:00
TommyLemon
991b5fbbcc 解决 REFUSE 值为 "!" 时因为没有匹配 MUST,而是匹配了 NECESSARY 导致判断出错 2020-12-27 01:45:05 +08:00
TommyLemon
5cf01bc44f 解决 REQUEST_MAP 缓存中的 strcuture 在校验参数抛异常后未被还原,导致后续解析丢了部分配置 2020-12-27 01:33:42 +08:00
TommyLemon
3e86b09210 解决 PUT 请求传 @key:[] 被当成表字段然后解析报错 2020-12-27 00:00:39 +08:00
TommyLemon
d7905fff56 @column 和 @having 不允许注释符 /* 2020-12-26 23:27:52 +08:00
TommyLemon
2b19a123d4 返回字段 @column 支持 (balance)*100 和 length(content)%2=0 这种 字段 或 SQL 函数 后拼接数字比较表达式 2020-12-26 23:20:44 +08:00
TommyLemon
71f904313d 升级版本号至 4.4.5 2020-12-26 19:44:21 +08:00
TommyLemon
22ed7cc9e8 通过缓存 Request 校验规则来大幅提升增删改等非开放请求的性能;解决 关闭权限验证情况下批量新增、批量修改依然会验证权限 https://github.com/Tencent/APIJSON/issues/164 2020-12-26 19:41:51 +08:00
TommyLemon
7fa6ac181e 优化匹配条件范围的报错提示; 2020-12-14 02:05:31 +08:00
TommyLemon
b47140b477 匹配条件范围 key{}:"表达式" 不允许连续减号 --;升级项目版本号 2020-12-14 02:01:49 +08:00
TommyLemon
3dc9dd1ce5 @raw 支持 key:value 和 @having;@having 和 @column 一样支持 function(arg,&char,!) 中包含不符合 字段命名 的字符;优化代码和报错提示; 2020-12-14 01:37:31 +08:00
TommyLemon
d959c6c655 存储过程 @procedure():"fun(key0,key1..)" 返回格式中去掉 key 的 @ 前缀;取消支持 key? 这种正则匹配方式,全面用 key~ 替代;优化代码 2020-12-13 23:11:25 +08:00
TommyLemon
278ff6d4ba 原始 SQL 片段 @raw:"key" 新增支持条件范围 key{}: "(Comment.userId=to.userId)"、比较运算 key>: "to.momentId"、过滤字段 @column: "SUBSTRING_INDEX(SUBSTRING_INDEX(content,',',1),',',-1)" 2020-12-13 20:22:55 +08:00
TommyLemon
264781e56b 解决 "isPraised-()": "isContain(praiseUserIdList,userId)" 这种有前置执行 远程函数 的表对象可能返回没有表数据的对象,只有 { "isPraised": true } 这种无意义的对象 2020-12-08 20:38:16 +08:00
TommyLemon
9d4bd7b37f 解决 Windows mysql-5.6.26-winx64 等低于 5.7 的 MySQL 可能 id{}: [0] 生成 id IN(0) 触发 MySQL bug 导致忽略 IN 条件 2020-12-02 00:27:52 +08:00
TommyLemon
e4240857ad 数据和结构校验类 Structure 整合到 AbstractVerifier;AbstractParser 中 IdCallback 相关方法移到 AbstractVerifier;AbstractParser 优化代码避免 NPE; 2020-11-29 03:46:52 +08:00
TommyLemon
bc135fb785 dbUri 完全交给用户控制,不再针对 MySQL 版本号来自动配置参数;升级版本号为 4.3.0 2020-11-28 15:06:08 +08:00
TommyLemon
076b3fe1f3
Update README.md 2020-11-22 03:08:19 +08:00
TommyLemon
e656258c6e 新增 APIJSONORM 的远程依赖文档 2020-11-22 03:06:44 +08:00
TommyLemon
c32498b041 操作方法 Operation 新增 MUST 和 REFUSE 分别替代 NECESSARY 和 DISALLOW;解决 Structure.sqlVerify 不可用及预防可能的 SQL 注入;解决 SQLConfig 自定义的 idKey 和 userIdKey 在 Structure 中未同步导致自定义值校验不通过; 2020-11-22 02:26:36 +08:00
TommyLemon
c416514e43 升级 fastjson 版本为 1.2.74(测试 1.2.75 下载不了 Maven 依赖) 2020-11-15 00:35:57 +08:00
TommyLemon
b249994a8a 所有代码文件版权归属改为腾讯公司 THL A29 Limited 2020-10-27 21:23:55 +08:00
TommyLemon
620ecfcb0b
Update pom.xml 2020-09-26 02:36:03 +08:00
TommyLemon
2b2633f7b7 删除 APIJSONFramework,只用 apijson-framework; APIJSONORM:fastjson 升级到最新建议稳定版 1.2.73;自身版本提高到 4.2.1 2020-09-26 00:34:40 +08:00
TommyLemon
91255dab8b Demo 工程迁移到 APIJSON-Demo 项目;APIJSONORM 和 APIJSONFramework 迁移到最外层;调整文档中的链接 2020-09-15 22:12:10 +08:00