Commit Graph

223 Commits

Author SHA1 Message Date
TommyLemon
ceca887243 解决 JOIN 当主副表都有条件、子查询当内外查询都有条件时可能预编译值错位 2022-10-10 03:20:08 +08:00
TommyLemon
f84c6deb56 解决无数据对应 NotExistException 会对外返回异常而不是空值 2022-10-10 02:12:48 +08:00
TommyLemon
c76dccd258 完善 Oracle, 达梦 等数据库的表和字段结构查询 2022-10-10 00:53:58 +08:00
TommyLemon
6ca112f732 Merge branch 'master' of https://github.com/Tencent/APIJSON
* 'master' of https://github.com/Tencent/APIJSON:
  fix: 修复子查询与外查询参数顺序
  将链接有公众号切换成腾讯开发者社区的链接
2022-10-09 18:57:07 +08:00
TommyLemon
b248b42b00 新增支持达梦数据库;优化调试信息及日志打印,解决异常栈不够精准 2022-10-09 18:57:04 +08:00
transtone
09dc7c0e85 fix: 修复子查询与外查询参数顺序 2022-10-04 09:57:45 +08:00
ifooling
8f50678d7e fix:解决数据源为Oracle时,使用自增主键,获取不到插入的主键问题
解决数据源为Oracle时,使用自增主键,获取不到新增后的id问题
报错信息:
getLong not implemented for class oracle.jdbc.driver.T4CRowidAccessor

issue #338
2022-08-11 18:34:07 +08:00
ifooling
f3e7ed16a3 fix:解决数据源为Oracle时,@explain 报错问题
解决数据源为Oracle时,使用性能分析关键字 @explain,查询报 "ORA-00922: 选项缺失或无效"问题

issue #432
closes #432
2022-08-09 10:32:01 +08:00
TommyLemon
98f282656a 新增支持物联网时序数据库 TDengine,版本提升为 5.2.0 2022-08-08 12:50:24 +08:00
TommyLemon
4886ee9236 新增支持物联网时序数据库 TDengine 2022-07-16 04:49:58 +08:00
TommyLemon
f224c5d81f 记录 SQL JOIN 副表的聚合函数结果和之前不一致问题 2022-07-15 04:03:31 +08:00
TommyLemon
880694841e 优化一对多 APP JOIN 的缓存逻辑 2022-07-15 03:46:35 +08:00
TommyLemon
e2fb0a1066 完善数据库版本判断,兼容 MySQL 8.0 以上和以下版本,适配正则匹配、窗口函数等 2022-07-15 03:16:39 +08:00
TommyLemon
4efcfd3c17 优化 Join.isOne2Many 判断性能 2022-07-15 02:34:16 +08:00
TommyLemon
1e7f38e322 大幅提升 APP JOIN 一对多时子数组查询和缓存性能 2022-07-15 01:57:27 +08:00
TommyLemon
77db28269d 解决 APP JOIN 一对多时子数组长度超过预设范围;提升 APP JOIN 一对多的子数组缓存性能;新增对 Year, Month, DayOfWeek 的支持 2022-07-14 23:15:23 +08:00
JarJar
9e99bad419
Merge branch 'Tencent:master' into master 2022-07-14 10:32:46 +08:00
huangcanjia
f5f7f3db78 fix: sql join缓存丢失而出现1+N查询问题
在处理app join时,连接上sql join的结果缓存

- 降childMap放入appJoinChildMap中,一起缓存
2022-07-14 10:31:48 +08:00
TommyLemon
8415910a52 升级版本至 5.1.5 2022-07-12 03:10:36 +08:00
TommyLemon
0f836600f0 解决 @combine:"(a | b) & (c | d)" 这种任意条件组合情况下有时预编译值错位导致 SQL 报错;优化代码和注释 2022-07-12 02:46:13 +08:00
TommyLemon
813c2dcf40
Merge pull request #414 from Tencent/dependabot/maven/APIJSONORM/com.alibaba-fastjson-1.2.83
Bump fastjson from 1.2.79 to 1.2.83 in /APIJSONORM
2022-07-07 16:37:17 +08:00
TommyLemon
5bb7eecfca 解决刚刚改动 result.remove("@RAW@LIST") 逻辑后新增的 NPE bug 2022-07-07 06:27:20 +08:00
dependabot[bot]
7c2443dd91
Bump fastjson from 1.2.79 to 1.2.83 in /APIJSONORM
Bumps [fastjson](https://github.com/alibaba/fastjson) from 1.2.79 to 1.2.83.
- [Release notes](https://github.com/alibaba/fastjson/releases)
- [Commits](https://github.com/alibaba/fastjson/compare/1.2.79...1.2.83)

---
updated-dependencies:
- dependency-name: com.alibaba:fastjson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-06 21:53:20 +00:00
TommyLemon
5525eab38d 完善对 APP JOIN 同层和跨层的校验;完善对 APP JOIN 的 SQL 执行与缓存次数统计;解决同层 JOIN 新增的报错 bug;解决 APP JOIN 副表返回内部字段 @RAW@LIST;fastjson2 改为 1.2.79 2022-07-07 05:52:44 +08:00
JarJar
f1430b20ab
Merge pull request #1 from github291406933/dev_join
feat: 支持跨层级app join
2022-07-06 19:51:18 +08:00
huangcanjia
4dfd9d4d4f feat: 支持跨层级app join
优化app join模式下,一对多join表查询时的1+N性能问题

- 支持客户端join字段,path的多层路径指定
- Join类增加count字段,以支持在生成副表sql时,按照指定count数量生成
- 处理App Join的查询结果时,将'一条条缓存'调整为'攒一起再缓存',防止错误替换
2022-07-06 18:51:20 +08:00
TommyLemon
1f0af2db4d
Merge pull request #403 from github291406933/master
fix: 修复多字段参与join时,没有命中缓存而出现的1+N查询性能问题
2022-06-06 15:15:51 +08:00
huangcanjia
3ed76c34a3 fix: 修复多字段参与join时,没有命中缓存而出现的1+N查询性能问题
在缓存副表数据到ChildMap时,反向遍历onList集合,避免除了idKey,userKey之外的字段在putWhere时,跟前端传参指定的顺序相反,导致没有命中缓存。

- 将onList反转

issue #402
2022-06-02 13:07:17 +08:00
ysy
be00ec44a1 fix field order 2022-05-29 15:47:55 +08:00
ysy
641d940941 fix dead loop 2022-05-29 12:33:57 +08:00
ysy
89accdacdc fastjson up2 2.0.4 2022-05-29 11:20:48 +08:00
Montos
beac8231a6 增加对LocalDateTime类型支持
增加对LocalDateTime类型支持
2022-05-10 00:20:06 +08:00
TommyLemon
9f724c1719
还原依赖 javax.activation,实测 JDK 11, 13 都需要
否则 APIJSONBoot DemoApplication 第 95 行报错 NoClassDefFoundError
static {
  Map<String, Pattern> COMPILE_MAP = AbstractVerifier.COMPILE_MAP;
...
}

Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/UnsupportedDataTypeException

https://github.com/APIJSON/APIJSON-Demo/blob/master/APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/boot/DemoApplication.java#L95
2022-05-04 06:14:40 +08:00
TommyLemon
95432dde2c 升级版本号为 5.1.0;删除不再需要的依赖 javax.activation 2022-05-04 01:52:49 +08:00
TommyLemon
f442543f7a 解决预估容量判断 NOT 条件用错逻辑 key 2022-05-04 01:08:08 +08:00
TommyLemon
92c396ced2 请求参数校验:REFUSE 新增支持 !key 排除禁止字段,优化 MUST 和 REFUSE 处理性能 2022-05-02 05:04:33 +08:00
TommyLemon
0e2b645465 优化登录报错和远程函数执行报错的提示 2022-05-02 00:39:16 +08:00
TommyLemon
8df36e26d7 优化 SQL 执行缓存;优化主键泛型;部分常量改为可自定义静态变量;解决高并发下 id 冲突导致新增记录失败等 2022-05-02 00:32:51 +08:00
TommyLemon
5d402171b0 解决 JOIN 副表返回空对象 2022-05-01 17:10:25 +08:00
TommyLemon
0fb42569cf 优化 AbstractSQLExecutor 关于耗时统计的代码 2022-05-01 16:34:06 +08:00
TommyLemon
5b7d54a492 优化代码 2022-05-01 16:24:44 +08:00
SingleDogL
4f40cbd561
Update AbstractSQLConfig.java 2022-04-29 09:23:39 +08:00
SingleDogL
614cc0a1c2 修复oracle分页获取时无法获取除第一页以外的数据
原来的getLimitString的方法所生成的语句oracle并无法正确获取,因为oracle的between并不支持获取除1开始以外的数据   也就是 无法获取到除了第一页以外的数据
2022-04-27 10:38:09 +08:00
TommyLemon
01410e2056
Merge pull request #387 from weiwei162/patch-1
fix #362
2022-04-22 22:14:43 +08:00
TommyLemon
30bbea94ac 优化角色权限、参数校验、远程函数的初始化;解决 format: true 在 Log.DEBUG 时也不返回 SQL、时间等调试信息;升级自身版本为 5.0.5; 2022-04-18 01:10:36 +08:00
weiwei162
d868d8e6fd
fix #362
支持PUT请求修改json/jsonb类型字段
2022-04-15 18:12:32 +08:00
TommyLemon
e609c8682c 解决关闭权限校验时 POST 请求传 userId 无效,加强对 POST 请求内字段格式的校验 2022-04-05 16:56:48 +08:00
TommyLemon
d803766fc4 升级自身, fastjson 版本分别为 5.0.0, 1.2.79 2022-03-27 22:50:21 +08:00
TommyLemon
d7c3115540 拼错单词 globle 纠正为 global 2022-03-27 20:34:02 +08:00
TommyLemon
1e5e587eaa 新增支持 @having:"match(arg0..)AGAINST(..)%2=1" 全文检索等函数后带数学表达式;对 key{}:">0;length(key)<=5" 新增支持部分为 RAW SQL;禁止 @having:"fun(arg0..):alias" 这样使用别名 2022-03-27 06:32:20 +08:00