V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  TommyLemon  ›  全部回复第 16 页 / 共 34 页
回复总数  669
1 ... 12  13  14  15  16  17  18  19  20  21 ... 34  
你的表述有问题。按照下方的示例,应该是根据用户名(user)来分组。
SELECT count(*) FROM 表名 WHERE money BETWEEN 1 AND 2 GROUP BY user
2018-12-21 16:01:44 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@kevinle #41 楼问了类似的问题,#64 楼有回复。

任何需要后端写代码实现 CRUD 的库,
和 APIJSON 的开发效率都不是一个级别的,
请大家了解清楚,APIJSON 是后端不用写代码的 ORM 库,
不要随便拿别的库来说比 APIJSON “不知道牛逼多少”,谢谢!
2018-12-21 15:56:57 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@qqqss
对字段的控制,也可以通过上面的方法配置不同角色查询这张表的校验规则,
还可以在 SQLExecutor 查到后,根据角色和权限配置过滤调没权限访问的字段。
https://github.com/TommyLemon/APIJSON/issues/31
2018-12-21 15:53:12 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@qqqss 欢迎提问,而不是没搞清楚就随便吐槽。
APIJSON 提供了自动化的权限管理,OWNER 指当前登录用户, LOGIN 指任何登录用户,UNKNOWN 指未登录用户,
给 表对应的 JavaBean 配置访问权限,然后 Request 表里配置对应的校验和补全规则即可。
https://juejin.im/post/5b17518c6fb9a01e75463096
2018-12-21 15:09:36 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@royzxq 原本 Node.js 有这种库,后面 ES6 加进来作为标准语法,
但问题是接手一个两年的项目,里面几十万行代码,基础设施敢随便升级?
出现生产事故别说奖金没了,可能还得扣工资。
而且即便用上了语法糖,一个请求能解决的为啥非得多个请求?
不仅代码写起来麻烦,http 连接也要多次,延时是累加的。
2018-12-21 14:57:37 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@jimchen9999
官网的例子
```js
var context = new SchoolContext();
var students = (from s in context.Students
where s.FirstName == "Bill"
select s).ToList();
```
http://www.entityframeworktutorial.net/basics/how-entity-framework-works.aspx

确实比很多 ORM 库写法简单不少,但 APIJSON 压根就不用后端写这些代码,前端传 JSON 参数过来就行了
```
{
"[]": {
"Student": {
"firstName": "Bill"
}
}
}
```
可以把里面的 Student 提取出来
```
{
"Student[]": {
"Student": {
"firstName": "Bill"
}
}
}
```
还可以把里面的 Student 的 firstName 提取出来
```
{
"Student-firstName[]": {
"Student": {
"firstName": "Bill"
}
}
}
```
都不用前端遍历再取值了。
2018-12-21 12:34:59 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
//-------------------------------------------------------------------------------------
20 个评论已满,后面的评论不再回复,前面剩下的看时间一个个回复。
//-------------------------------------------------------------------------------------
2018-12-21 12:30:05 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@TommyLemon 三无账号是指 无非随机头像、无非随机用户名、无 repo
2018-12-21 12:27:56 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@TommyLemon 另外现在确实有些库的 Star 很水,作假行为扰乱公平性,把社区搞得乌烟瘴气,
不过 求 Star 和 刷 Star 是有 真实 与 作假 的 本质区别的
https://www.zhihu.com/question/66587533/answer/244148558

至于 APIJSON 的 Star 的真实性,可以看趋势图
https://www.timqian.com/star-history/#TommyLemon/Android-ZBLibrary&TommyLemon/APIJSON
或者点 Star 的用户(基本没有三无账号),分别填 TommyLemon APIJSON
https://haochuan9421.github.io/stargazers/
2018-12-21 12:21:36 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@knightdf
我在很多评论和回复里都承认了 Hibernate 的历史地位,尤其还说明了它“是 Java 第 2 大 ORM 库”。

V2EX 又不是国外网站,Hibernate 团队不在这里发帖有什么奇怪的?
APIJSON 也没在 Twitter 和 Facebook 推广过
https://twitter.com/Hibernate
https://www.facebook.com/HibernateORM


jackson 主页
https://github.com/FasterXML/jackson
底部有对比其它 JSON 库的链接
https://dzone.com/articles/be-lazy-productive-android

Vue 对比其它框架
https://cn.vuejs.org/v2/guide/comparison.html#React

Tinker 对比其它热更新库
https://github.com/Tencent/tinker/wiki

对比已有的热门库是国内外都很普遍的做法,而且有时候不是作者一开始想要对比,而是一堆人说
“我为啥不用 XXX ”,“和 XXX 相比有什么优势?”,“和 XXX 很像”,“不就是 XXX 么?”...
作者为了消除误解,反对不经思考或验证随意说出来贬低自己项目的声音,有什么不可以吗?
2018-12-21 11:42:24 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@TommyLemon 至于学习成本,哪个开源库没有学习成本?你不看文档,不看例子等,直接就拿来用了?
APIJSON 简单易用,提供了丰富的文档、Demo、视频等,还有在线接口工具
apijson.org
2018-12-21 11:38:36 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@TommyLemon 有出错误,“教程” 一般不属于 大而全的项目,它的 Star 数往往和对应的 语言 /开源库 的热度有很大关系,Go 现在火得很,Star 多太正常了。几年前我一个同事翻译了 Swift 的文档,短短几个月就有好几千 Star 了。
2018-12-21 11:34:54 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@blless 有关联的操作怎么就是强行放一个 API ?
你看下 微信好友详情界面,一个用户信息 + 最近发布的动态,按照传统 RESTful 方式,就是提供
GET /user?id=1
GET /moment/list?userId=1
两个接口,前端要调用两次,渲染界面也是两次。
这个还好,能并行请求,如果是需要 从前面的接口取出返回值 作为下一个接口的参数,
例如查评论列表,如果先
GET /comment/id=1
查出 comemnt 里的 userId = 1,然后回调里再调用
GET /user?id=1

代码很容易写成这种这样
```js
axios.get("/comment/id=1")
.then(function (response) {
console.log(response);

var userId = (response && response.data && response.data.data) ? response.data.data.userId
if (userId == null) {
console.log('axios.get("/comment/id=1").then userId == null >> return');
return
}
axios.get("/user/id=" + userId)
.then(function (response) {
console.log(response);
//TODO 渲染界面
})
.catch(function (error) {
// handle error
console.log(error);
})
})
.catch(function (error) {
// handle error
console.log(error);
})
```
如果是 Android 或 iOS 代码,那就更麻烦了。

至于你说的
“我要自己方便我完全可以一个 model 直接生成服务端客户端代码”
然后呢?这种只能生成简单的单表增删改查 API 的代码,能直接满足需求了?
多表关联查询怎么办?模糊搜索、分组排序 都生成了?
还不是要改,后面需求改了还不是要改后端代码或新增接口?

APIJSON Server 不生成任何静态代码,只生成动态的 SQL 语句,
前端改了 JSON 参数,后端就生成新的 SQL 语句, 满足新的需求,
不需要后端写任何代码来实现上面的说 模糊搜索、分组排序 等,
还有自动化 JOIN 也不需要后端写代码:
```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
}
}
}
```
APIJSONLibrary 生成
```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
```
来,你介绍个其它的工具,能生成这样比较复杂的 SQL,让大家都见识见识。

“ star 数不能说明什么,我记得有个 go web 教程有 2w7 star …”
再次强调:
Star 在一定程度上反映了 Repo 在开源社区的受欢迎程度,同类型的 Repo ( APIJSON 和 Hibernate 都是 ORM 库)对比是有参考意义的。
“教程”,工具集合,AwesomeXX 库集合 这种大而全的项目,
本身就容易获得 Star,很多人都觉得收藏起来万一里面有东西可以用上,
反而是专注于解决某个场景的问题的一些库,除非有 名企 或 名人 光环,否则 Star 就相对难获得很多,
Hibernate 快 12 年了不也才 3.5 K Star 嘛,难道它的技术价值,使用率比不上你说的那个“ go web 教程”?
不同类型的项目拿到一起对比才基本没有参考价值。
2018-12-21 10:51:01 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@diggerdu 感谢
2018-12-21 10:50:45 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@Terry05 感谢
2018-12-21 09:52:59 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@br00k MongoDB 语法和 MySQL 差异太大了,暂时不打算支持哦,先专注于 MySQL,PostgreSQL,Oracle 等关系型数据库,最近新增了 TiDB 的支持。
https://github.com/TommyLemon/APIJSON/commit/d8583de029e79bf47586d96d99ba21305098ddb0
2018-12-20 23:40:34 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@pexcn
Star 早就超过了,怎么没得比呢?上面的截图你不信的话可以 GitHub 上分别看下 APIJSON 和 Hibernate 的。

APIJSON 是增量更新,只更新传过来的非 null 字段;
github.com/TommyLemon/APIJSON/blob/master/Document.md#3.1

Hibernate 默认全量更新,需要麻烦的配置才能实现增量更新
blog.csdn.net/u012038649/article/details/52587404/


APIJSON 关联查询非常容易实现,
还支持自动化 JOIN,包括 LEFT JOIN, INNER JOIN 等 SQL JOIN,
还有可跨数据库的应用层联表 APP JOIN,
全都不用后端写代码,前端传对对应的参数即可。
github.com/TommyLemon/APIJSON/blob/master/Document.md#3.2

比 Hibernate 注解 @OneToMany, @ManyToOne 等 或 写 HQL 好用很多
blog.csdn.net/kd_bright/article/details/79528818
2018-12-20 19:42:09 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@xiangyuecn
权限由后端控制,粒度细分到 每种角色、每种操作、每张表、每条记录,所以并不会出现越权访问的问题。
非开放请求(增删改,限制性查询)由后端控制参数 JSON 的数据和结构,所以非开放请求是后端说了算。

至于 开放请求( get 查数据,head 统计数量),返回 JSON 的数据和结构都是前端说了算。

需要事务 或 对安全性要求高 的用 非开放请求,其它用开放请求。
https://github.com/TommyLemon/APIJSON/blob/master/Document.md#3.1
2018-12-20 18:33:01 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@loading 哈哈,试试发现可能比想象的还好用
https://github.com/TommyLemon/APIJSON/issues/17
2018-12-20 16:59:08 +08:00
回复了 TommyLemon 创建的主题 程序员 APIJSON 3.2.0 发布, 4K Star 与 Hibernate 拉开差距
@liuhuansir
Hibernate 的 issue 多到官方都关闭 issue 了,现在没法看。
https://github.com/hibernate/hibernate-orm

issue 的确反映了用户的数量及频率,但太多了也可能是 bug 太多,
issue/star <= 10% 是可接受的,> 20% 我一般找别的同类库了,找不到合适的可能基于现有的定制或干脆自己写。

关于 GitHub 的 issue
1.issue 是一个公开的讨论区,可以发任何东西。
2.大部分 issue 都是 提交 bug、提建议、提问题(如何使用 XXX,怎么添加 XXX,有没有文档 等),还有些是灌水、发泄 等。
3.issue 的数量和 Repo 的 受关注程度、使用频率、用户群体、Repo 本身的代码与文档质量 等相关。

APIJSON 提供了自动化 API,只有配置权限需要写极少的代码,加上详细的文档、视频教程、测试工具,
已经做到非常简单易用了,所以很少有问“怎样配置 XXX ”,“如何部署 XXX ”之类的问题。

APIJSON 经过 2 年时间维护、1000+次 Commit、40+ 次 Release, 功能上已经很完善、稳定,
所以也很少有用户问“如何解决 XXX ”之类的问题。

还有 APIJSON 目前大部分用户都是 国内的开发者,他们更倾向于在首页提供的 QQ 群交流和讨论。

https://github.com/TommyLemon/APIJSON/issues/53
1 ... 12  13  14  15  16  17  18  19  20  21 ... 34  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5106 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 09:09 · PVG 17:09 · LAX 02:09 · JFK 05:09
Developed with CodeLauncher
♥ Do have faith in what you're doing.