V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  TommyLemon  ›  全部回复第 22 页 / 共 34 页
回复总数  669
1 ... 18  19  20  21  22  23  24  25  26  27 ... 34  
2018-11-15 14:44:02 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
2018-11-15 14:42:38 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@xgfan 链接主要是用来说明自己的论点,我又不像某些网友随口说出没有依据的话。
能直接点最好,不能的话,改下格式,起码大家还能复制粘贴到浏览器上打开。

话说作为一个开源项目的作者,希望别人 Star 自己的 Repo 有什么奇怪的吗?
至于用什么文字,不同的人有自己的风格也很正常啊。
你搜下 Github Star "支持一下" 照样一大堆结果
https://www.google.com.hk/search?q=Github+Star+%E6%94%AF%E6%8C%81%E4%B8%80%E4%B8%8B
2018-11-15 12:33:04 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@aheadlead 这句话是反复修改过 10 次以上的,多次实践证明效果很好,当然我也会不断思考和改进,如果你有更好的建议欢迎提出,谢谢
2018-11-15 12:26:50 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@nyaapass 不会写,暂时也没兴趣去爬数据
2018-11-15 12:25:46 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@sunzhenyucn
再次强调,Star 在比较大的程度上反映 Repo 在开源社区的受欢迎程度,在同种类库(例如 ORM )间对比很有意义。
“ Hibernate 近 1w 多的 commits,Github 上 343 位 contributors ”,
然而更受欢迎的 Mybatis 只有 2252 个 commits,112 个 contributors,你又怎么看?
github。com/mybatis/mybatis-3
APIJSON 也有 1307 个 commits,6 个 contributors。
github。com/TommyLemon/APIJSON

那部分是来不及翻译的,APIJSON 的绝大部分用户都是中国人,英文文档没有太过投入精力去维护,
还有你能看懂中文文档干嘛非要盯着这个小问题找茬? 当然毕竟也是问题,后续抽时间解决吧。
2018-11-15 12:18:11 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@ooonme
请问你说的 稍微正式一点的项目 能不能具体描述下它的规模(项目类型、表数量、记录数、开发人员配置等)?
同样是 Java 的 ORM 库为啥不能比?
Hibernate 代码质量比 APIJSON 高,这点我是承认的,但 APIJSON 的代码质量我自认为也是超过平均水平的,
不服的话,用阿里的 P3C 规范对比下? github。com/alibaba/p3c

“一个好的库想要满足大部分场景就要知道什么功能该丢掉” 我也认同,
所以 APIJSONLibrary 是围绕 ORM 这个核心做的,加了一个必要的自动化权限控制(对于 APIJSON 这种),
其它说的功能要么是 Demo 提供的,要么是生态内的其它开源库或工具提供的(自动生成文档与代码、自动回归测试等),
并不是贪大求全、无所不包。

“你这个 apijson 只是一堆胶水代码而已”,真不知道你是对 APIJSON 偏见有多大,才草率得出这种结论,
APIJSONLibrary 和 Hibernate 一样都是把 对象 转为 SQL 的 ORM 库,
APIJSONLibrary 对象是用 JSON,Hibernate 对象是用自定义的 POJO,
本质都是一样的,只不过 JSON 可以从前端动态传过来,POJO 只能后端提前写死,
居然就被你说成了“胶水代码”,这么说 Hibernate 不也是“胶水代码”?

“跟 hibernate 这种级别的项目比还差太远” 得具体看哪些方面吧,
从代码量上来看:
APIJSONLibrary 只有 49 个 java 文件
hibernate-core 有 3343 个 java 文件
确实“差太远”,但这不正是 APIJSON 的巨大优势?
代码越少 bug 越少。更何况支持的数据库功能也没有大的差距。

从使用上来讲:
用 APIJSON 可以通过自动化 API,不用后端写代码;
用 Hibernate 得每个接口都要 封装 POJO,及调用它的方法或写注解 等一大堆代码。

APIJSON 支自动化持关联查询(参数里加一个引用赋值键值对)和自动化 JOIN(参数里加一个 join 键值对),后端自动化解析不用写代码;
Hibernate 得写注解来实现关联,或分次调用代码,写一堆代码,不直观也不好开发和维护。
所以这方面反而是 Hibernate 比 APIJSON “差太远”。

APIJSONAuto,自动化接口管理平台,自动生成文档与注释、自动生成代码、自动化回归测试(机器学习)、自动静态检查等。
http://apijson。org
2018-11-15 09:47:34 +08:00
回复了 reid2017 创建的主题 Java JPA 问题请教
@reid2017 也有可能这个库默认加了一个 主键 或 创建时间 之类的字段,
最好还是断点调试下下它最终到 JDBC 时 set 进去的值,这样最容易看出问题所在。
2018-11-14 23:51:47 +08:00
回复了 reid2017 创建的主题 Java JPA 问题请教
@TommyLemon
如果以上试过都不行,或许是 serialVersionUID 有个对应的 getSerialVersionUID 方法(自动生成时错误勾选),
导致序列化时多转了一个字段。
某些 JSON 库可以通过 @JSONField(serialize = false) 这种注解等方式来忽略要序列化的变量或方法。
2018-11-14 23:46:17 +08:00
回复了 reid2017 创建的主题 Java JPA 问题请教
@TommyLemon 默认值得去掉,或者改成 null。
2018-11-14 23:45:53 +08:00
回复了 reid2017 创建的主题 Java JPA 问题请教
@SQLInsert(sql = "insert ignore into tb_vip_code (code, duration) value (?, ?)")
首先 value 得改成 values
如果还不行,可能就是如楼上所说 BaseModel 里有额外的字段,很可能还是用基本类型有默认值的。
如果是基本类型,改成对应的封装类型再试。

另外你代码都没发全,都不知道构造函数里是否给其它字段 set 了值,难以判断。
2018-11-14 23:06:01 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@AllOfMe
感谢。我是 Android 开发出身转 Java 后端开发,最早开源的项目是 Android 快速开发框架 ZBLibrary
https://github.com/TommyLemon/Android-ZBLibrary

这个建议非常好,目前 APIJSON 的自动化权限控制需要静态编码(最少 3 行代码配置每种角色对一张表的 CRUD 权限),
等把这个做成动态获取的(例如存数据库,项目启动时加载并缓存,然后改了配置后可以调接口刷新缓存),
权限也就能动态配置,新增表后也不用写代码再重启服务了,就能实现几乎完全可以在线配置的 SaaS 后端。
2018-11-14 19:07:39 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@sagaxu
能啊,这就是 APIJSON 相对以前做法的很大优势。
搜索 name 中包含字母 a
{
"User": {
"name~": "a"
}
}
变为 搜索 sex 为 1
{
"User": {
"sex": 1
}
}
以上都是单个对象,可以套一个 []:{} 变成列表
{
"[]": {
"User": {
"sex": 1
}
}
}

发短信通知不属于 CRUD 了,超过了 APIJSON 的应用范围。
但你也可以写一个远程函数,用于发送短信,
然后不需要的就不调用,需要的就调用,
后面如果有需求 从不发 到变为 发送 就不需要后端写代码了。

最后这个也只是你个人的经验,也许是 ERP 项目,也许是金融项目,也许是其它大项目,
但大部分互联网中小型项目还真没有多少复杂的业务逻辑,APIJSON 的自动化 API 就很适用,
而且也能通过远程函数来扩展业务逻辑的实现。

既然你手上的项目是这样,那就不用呗。
不过从第一点来看,你对 APIJSON 没有足够的了解,或许可以再看看。

在线测试
apijson。org
2018-11-14 18:57:43 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@sagaxu 至于学习成本,哪个库没有学习成本?
只要 带来的好处 明显超过 带来的坏处 + 学习成本 就值得尝试。

为什么要用 APIJSON ?前后端 10 大痛点解析
github。com/TommyLemon/APIJSON/wiki
2018-11-14 17:57:04 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@sagaxu
不写代码居然和写代码没什么不同,我也是服。
你写了代码,需求变更,是不是得改接口或新增接口?
用 APIJSON 就不需要后端改接口,前端改下 JSON 参数,
就会重新自动生成新的 SQL 语句,满足新的需求。
2018-11-14 17:44:19 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@zpf124
Star 在比较大的程度上反映 Repo 在开源社区的受欢迎程度,在同种类库(例如 ORM )间对比很有意义。
Mybatis 目前应该是 Java ORM 库中 Star 最高的,
然而你敢说 Mybatis(2010 年开源) 使用率一定比 Hibernate(2007 年开源) 高?
但 Star 反映的是 Mybatis 在开源社区的确更受欢迎。

至于 Facebook 出的 GraphQL,你拿出来对比只能说明你没有对 它 和 APIJSON 有足够的了解。
从 Star 数量来看,比 APIJSON 多,确实也在开源社区更受欢迎,在 CRUD 上 APIJSON 完爆 GraphQL:

完爆 Facebook/GraphQL,APIJSON 全方位对比解析(一)-基础功能
juejin.im/post/5ae80edd51882567277433cf

完爆 Facebook/GraphQL,APIJSON 全方位对比解析(二)-权限控制
juejin.im/post/5b13cda1f265da6e4a6bcfee

完爆 Facebook/GraphQL,APIJSON 全方位对比解析(三)-表关联查询
juejin.im/entry/5b4ff88f6fb9a04f914a8df5

目前我已知的所有 ORM 开源库,只有 APIJSON 能做到 关系型数据库 自动化 CRUD,
如果有别的,欢迎告诉我,我会认真了解和对比下。

以下项目主页包括 源码、部署与协议文档、视频教程、接口工具等。
创作不易,GitHub 右上角点 ⭐Star 支持下吧,谢谢 ^_^
github。com/TommyLemon/APIJSON
2018-11-14 17:19:24 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@biantaoGG
因为 SpringBoot 让 Java 开发变得很简单,APIJSON Demo 基于 SpringBoot 提供了自动化 API,
又极大地简化了大部分 CRUD 接口的开发,其实是这部分 API 压根就不用后端开发了哈哈。
2018-11-14 17:15:17 +08:00
回复了 zhangmengyu 创建的主题 Java springboot 权限控制
自动化的权限控制了解下,3 行代码就可配置每种角色对一张表的增删改查权限。

我们用 APIJSON 来操作一张表,例如用户表 User,代码写 3 行就够了:

//注册表并添加权限,用默认配置
@MethodAccess
public class User {
//内容一般仅供表字段说明及 Android App 开发使用,服务端不用的可不写。
}

//Verifier 内添加权限
accessMap.put(User.class.getSimpleName(), getAccessMap(User.class.getAnnotation(MethodAccess.class)));


然后运行下 Server 工程就可以请求了:

URL: http://apijson.cn:8080/get

表单:

{
"User": {
"id": 82001
}
}
返回:

{
"User": {
"id": 82001,
"sex": 0,
"name": "Test",
"tag": "APIJSON User",
"head": "http://static.oschina.net/uploads/user/19/39085_50.jpg",
"contactIdList": [
82004,
82021,
70793
],
"pictureList": [
"http://common.cnblogs.com/images/icon_weibo_24.png"
],
"date": "2017-02-01 19:21:50.0"
},
"code": 200,
"msg": "success"
}


或者可以再定制下 POST 请求的角色权限:
//只允许未登录角色和管理员角色新增 User,默认配置是{UNKNOWN, LOGIN, CONTACT, CIRCLE, OWNER, ADMIN}
@MethodAccess(
GET = {LOGIN, CONTACT, CIRCLE, OWNER, ADMIN}
)
public class User {}

再直接像上面那样请求就会报错:
{
"User": {
"id": 82001
},
"tag": "User",
"code": 407,
"msg": "未登录,请登录后再操作!"
}
登录后就和上面一样返回正确的结果。


不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
https://www.v2ex.com/t/507671#reply7
2018-11-14 17:05:25 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@ooonme 这么贬低别人,得先有公开的拿得出手的成就才行
2018-11-14 17:04:31 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@ooonme Talk is cheap, show me your code.
2018-11-14 16:53:44 +08:00
回复了 TommyLemon 创建的主题 开源软件 不用写代码 APIJSON 3.5K Star 超第 2 大 ORM 库 Hibernate
@richangfan
不会的,非常复杂的查询( 1 屏以上 SQL )不建议使用 APIJSON 的自动化 API,手写更容易实现以及性能调优。
还有后端也不只是 CRUD 啊,服务监控、微服务、数据分析、个性化推荐 ...
1 ... 18  19  20  21  22  23  24  25  26  27 ... 34  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3278 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 10:46 · PVG 18:46 · LAX 03:46 · JFK 06:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.