首页   注册   登录
 TommyLemon 最近的时间轴更新
TommyLemon's repos on GitHub
Java · 5271 人关注
APIJSON
🚀A JSON Transmission Protocol and an ORM Library for auto providing APIs and Documents.
Java · 3564 人关注
Android-ZBLibrary
🔥Android MVP快速开发框架,做国内 「Demo最全面」「注释最详细」「使用最简单」「代码最严谨」的Android开源UI框架
JavaScript · 245 人关注
APIJSONAuto
自动化接口管理工具,自动生成代码、自动静态检查、自动化回归测试、自动生成文档与注释等。
13 人关注
APIJSON-JS
APIJSON for JavaScript
Java · 12 人关注
APIJSON-Android-RxJava
APIJSON Android App Demo developing with RxJava. https://github.com/TommyLemon/APIJSON
Java · 12 人关注
PagedListView
Scroll ListView/GridView faster, more accurate and comfortable
Java · 9 人关注
AndroidPicker
安卓选择器类库,包括日期时间选择器、单项选择器、二三级联动选择器、地址选择器、颜色选择器、文件目录选择器、数字选择器等,可自定义顶部及底部界面,可自定义窗口动画。Picker for android, include date&time/option/number/address/city/color/file&directory.
Java · 7 人关注
AbsGrade
抽象列表分级工具,支持微信朋友圈单层评论、QQ空间双层评论、百度网盘多层(无限层)文件夹等。
4 人关注
Axis-Lang
A programming language running on JVM. Powerful, Flexible, Safe and Simple.
4 人关注
StaticResources
静态资源,例如图片等,放在代码库里很占空间,单独放到这个库再引用可以节省下载的压缩包大小。
Java · 3 人关注
SmartRefreshLayout
🔥下拉刷新、上拉加载、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹,具有极强的扩展性,集成了几十种炫酷的Header和 Footer。
Java · 2 人关注
android-utils
It contains most of the Android utility classes.
Vue · 1 人关注
APIJSON-JS-Vue
APIJSON for Vue.js
Java · 1 人关注
StateButton
一个可以用代码设置selector背景(按下去背景颜色更改,样式变化等等)的button, 再也不用写selector了
PHP · 0 人关注
APIJSON-PHP
APIJSON 的 PHP版本,原仓库见
Java · 0 人关注
DynamicGrid
Drag and drop GridView for Android
Java · 0 人关注
fastjson
:bullettrain_side: A fast JSON parser/generator for Java
JavaScript · 0 人关注
GayHub
An awesome chrome extension for github :octocat:
Java · 0 人关注
HeaderAndFooterRecyclerView
A RecyclerView solution, Support addHeaderView, addFooterView, and page loading
JavaScript · 0 人关注
ice
🚀 飞冰 - 让前端开发简单而友好,海量可复用物料,配套桌面工具极速构建前端应用,效率提升 100%
C · 0 人关注
ijkplayer
Android/iOS video player based on FFmpeg n3.2, with MediaCodec, VideoToolbox support.
Java · 0 人关注
java
jsoniter (json-iterator) is fast and flexible JSON parser available in Java and Go
Java · 0 人关注
NumberProgressBar
A beautiful, slim Android ProgressBar.
Kotlin · 0 人关注
p3c
Alibaba Java Coding Guidelines pmd implements and IDE plugin
0 人关注
PagedDragDropGrid
An Android ViewGroup that implements a paged grid with drag'n'drop moveable items
Java · 0 人关注
platform_packages_apps_contacts
JavaScript · 0 人关注
react-native
A framework for building native apps with React.
Java · 0 人关注
RxAndroid
RxJava bindings for Android
Java · 0 人关注
RxJava
RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
Java · 0 人关注
SystemBarTintManager
Android systembar manager

TommyLemon

V2EX 第 324576 号会员,加入于 2018-06-25 14:33:30 +08:00
今日活跃度排名 14158
TommyLemon 最近回复了
3 天前
回复了 jinx930621 创建的主题 Java 关于 mybatis 和通用 mapper 的一些疑问
如果有什么疑问,可以看下这个帖子,评论里的各种问题都一一解答了。

自动化 ORM 库 APIJSON 3.4.9 发布,已 5K Star 入选码云最具价值项目
https://www.v2ex.com/t/544424
3 天前
回复了 jinx930621 创建的主题 Java 关于 mybatis 和通用 mapper 的一些疑问
@anyele 你看下 #7 的回复,人家就需要扩展思路,甚至能解决问题( APIJSON 是能达到楼主想要省去大量代码的效果的)的方案,就因为你们自己的情绪还不让人合法合规地发言了?
3 天前
回复了 jinx930621 创建的主题 Java 关于 mybatis 和通用 mapper 的一些疑问
@jinx930621 GraphQL 可做不到这些,全都要手写的,除了过滤字段,而且只能在网络层面自动过滤,做不到像 APIJSON 一样直接在数据库层面自动过滤。
APIJSON 与 GraphQL 全方位对比
https://juejin.im/post/5ae80edd51882567277433cf
4 天前
回复了 jinx930621 创建的主题 Java 关于 mybatis 和通用 mapper 的一些疑问
可以用 APIJSON 的自动化 JOIN,后端不用写一行代码,前端传一个 join 键值对就好。

例子:
前端传入一个 JSON
```js
{
"[]": {
"count": 10, // LIMIT 10
"join": "</User/id@", // Comment LEFT JOIN User
"Comment": {
"content~": "a", // content REGEXP 'a'
"@group": "momentId", //GROUP BY momentId
"@order": "date+" //ORDER BY date ASC
},
"User": {
"@column":"id,name", // SELECT id,name
"id@": "/Comment/userId" // ON User.id = Comment.userId
}
}
}
```
APIJSONORM 自动生成
```sql
SELECT `Comment`.*, `User`.`id`, `User`.`name` FROM `sys`.`Comment` AS `Comment` WHERE `Comment`.`content` REGEXP 'a'
LEFT JOIN (SELECT `id`, `name` FROM `sys`.`apijson_user`) AS `User` ON `User`.`id` = `Comment`.`userId`
GROUP BY `Comment`.`momentId` ORDER BY `Comment`.`date` ASC LIMIT 10 OFFSET 0
```

说明:
④ "join":"&/Table0/key0@,</Table1/key1@"
多表连接方式:
"<" - LEFT JOIN
">" - RIGHT JOIN
"&" - INNER JOIN
"|" - FULL JOIN
"!" - OUTTER JOIN
"@" - APP JOIN
其中 @ APP JOIN 为应用层连表,会从已查出的主表里取得所有副表 key@ 关联的主表内的 refKey 作为一个数组 refKeys: [value0, value1...],然后把原来副表 count 次查询 key=$refKey 的 SQL 用 key IN($refKeys) 的方式合并为一条 SQL 来优化性能;
其它 JOIN 都是 SQL JOIN,具体功能和 MySQL,PostgreSQL 等数据库的 JOIN 一一对应,
"ViceTable":{ "key@:".../MainTable/refKey" }
会对应生成
MainTable ... JOIN ViceTable ON ViceTable.key=MainTable.refKey。


已有 5.3K Star, 并已入选 码云最有价值项目,GitHub 右上角点 Star 支持下吧^_^
https://github.com/TommyLemon/APIJSON
4 天前
回复了 jinx930621 创建的主题 Java 关于 mybatis 和通用 mapper 的一些疑问
@blless
模糊测试用现有的工具即可,APIJSON 的 Demo 提供了 HTTP API,
甚至也实现可以用 TCP, UDP 来通信的 Demo,暴露出的 API 就能用工具进行模糊测试。
@woscaizi
建议使用 APIJSON 时,权限用 APIJSONORM 提供的自动化权限 注解+注册 的方式控制。
如果一定要用 Shiro 这种基于路由的权限库,可以拼接 APIJSON 的通用 API 与请求 JSON 里的 tag,
例如 base_url/post 与 tag:User 拼接就是 base_url/post/user,给它传进去一个虚拟路由,动态设置 URL。
@rogwan 感谢,哈哈,其实用 MySQLWorkbench, Datagrip, Navicat 等各种数据库工具建表也很方便了
@rogwan 对的,但前端额外做的事情基本就是:
在原来 RESTful 传 JSON 参数的基础上, 构建的 JSON 键值对和层级多一些。
而且后端把接口上传到 APIJSONAuto(可下载源码部署到内网),前端点开看就知道了,
流程和以前一样,都不用自己去想怎么构造各种嵌套的查询,各种 JOIN、子查询等,
JSON 参数传到后端的 APIJSONORM,就会被自动解析成 SQL 并自动连数据库 CRUD,
然后将结果集封装成和请求 JSON 结构完全对应的 返回结果 JSON,
期间自动校验 数据、结构、权限,自动防 SQL 注入。

APIJSON 目前有 Java,C#,Python,PHP,Node 5 种语言的后端库及 Demo,Android, iOS, JavaScript 种前端 Demo,
还有一个
第三方 APIJSON 协议解析库,将 JSON 动态编译成 SQL,也已经比较成熟了,各种自动化 JOIN 也都支持。
https://github.com/Zerounary/APIJSONParser

还有一个
自动化接口管理工具,自动生成代码、自动静态检查、自动化回归测试、自动生成文档与注释等。
https://github.com/TommyLemon/APIJSONAuto

创作不易,GitHub 右上角点 Star 支持下作者吧 ^_^
@jorneyr 并不会。
APIJSON 通过自动化 API 实现 [大部分] CRUD 的业务需求,
但还有部分需要特殊处理数据或结构的地方做不了自动化,
所以 APIJSON 提供了 [远程函数],后端可以在里面写代码自定义自己的业务逻辑。
https://github.com/TommyLemon/APIJSON/blob/master/Document.md#3.2

还有一小部分
很复杂的查询(一般对应报表之类的需求,各种 JOIN 和子查询 嵌套、字符串拼接 等,SQL 写一屏以上)、
复杂的事务操作(操作多表,还可能中间 CRUD 出现两种以上,各种校验、多次读写、事务回滚、定制异常等)
等用 APIJSON 做就很吃力了甚至不能实现,建议还是用手写接口(包括 SQL)的方式来实现。
还有后端也不止 CRUD,还有各种
报表统计、数据分析、个性化推荐、服务监控、数据库运维(如果没有 DBA 的话)
等工作,这些也不是 APIJSON 的适用范围或者说应用场景。
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2674 人在线   最高记录 4385   ·  
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 19ms · UTC 14:12 · PVG 22:12 · LAX 07:12 · JFK 10:12
♥ Do have faith in what you're doing.
沪ICP备16043287号-1