V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  TommyLemon  ›  全部回复第 15 页 / 共 34 页
回复总数  669
1 ... 11  12  13  14  15  16  17  18  19  20 ... 34  
2019-03-14 10:09:20 +08:00
回复了 cwm165 创建的主题 Java 现在 Mybatis 是更多使用注解还是 XML 进行配置?
有意思,之前有类似的问题,可以看下或许有收获
现在用 mybatis 都不用 xml 了吗
https://www.v2ex.com/t/541755
2019-03-07 11:59:30 +08:00
回复了 noble4cc 创建的主题 Java 现在用 mybatis 都不用 xml 了吗
@TommyLemon 都是根据前端传的请求 JSON 自动生成的 SQL,后端不用写一行代码哦
2019-03-07 11:56:52 +08:00
回复了 noble4cc 创建的主题 Java 现在用 mybatis 都不用 xml 了吗
@zjp @GTim @fkdog @shayang888 @gejun123456
不管是注解还是调用 ORM 或 Mapper 的方法,都很难做复杂的查询,尤其是连表查询、子查询等,
而且都要写一堆繁琐的配置,不直观甚至有些还做不了。

APIJSON 就提供了自动化的各种 JOIN
#④ "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。

例如
{
"[]": {
"join": "&/User/id@,</Comment/momentId@",
"Moment": {
"@order": "date-"
},
"User": {
"@column": "id,name",
"name~": "t",
"id@": "/Moment/userId"
},
"Comment": {
"momentId@": "/Moment/id"
}
}
}
自动生成
SELECT Moment.*,User.id,User.name,Comment.* FROM Moment
INNER JOIN User ON User.id = Moment.userId
LEFT JOIN(
SELECT * FROM Comment
) AS Comment ON Comment.momentId = Moment.id
WHERE User.name REGEXP 't'
ORDER BY Moment.date DESC
LIMIT 10 OFFSET 0


#还有自动化子查询
"key@":{
"range": "ALL",
"from":"Table",
"Table":{ ... }
}
其中:
range 可为 ALL,ANY ;
from 为目标表 Table 的名称;
@ 后面的对象类似数组对象,可使用 count 和 join 等功能。
例如
"id@":{
"from":"Comment",
"Comment":{
"@column":"min(userId)"
}
}
自动生成
WHERE id=(SELECT min(userId) FROM Comment)

GitHub 右上角点 Star 支持下吧 ^_^
https://github.com/TommyLemon/APIJSON/blob/master/Document.md#3.2
2019-03-07 11:43:28 +08:00
回复了 noble4cc 创建的主题 Java 现在用 mybatis 都不用 xml 了吗
@9Rubi 没看到帖子里有广告啊,Mybatis 都这么火了还需要推广嘛
2019-03-07 11:40:51 +08:00
回复了 noble4cc 创建的主题 Java 现在用 mybatis 都不用 xml 了吗
@liuyibao 能做到不写代码吗?/滑稽

APIJSON 就做到了。
后端不用写接口、也不用写文档就能提供"接口"和"文档",前端 /客户端不用看"文档"就能调用"接口"。
https://github.com/TommyLemon/APIJSON/wiki
2019-03-06 18:39:20 +08:00
回复了 noble4cc 创建的主题 Java 现在用 mybatis 都不用 xml 了吗
@hjchjc1993 @cafreeze @daveze @yiyi11 @lhx2008 @LemonCoo1 @rizon
Spring Data JPA,Mybatis-Plus,tk Mapper 都是要后端写代码的哦
2019-03-06 18:33:58 +08:00
回复了 noble4cc 创建的主题 Java 现在用 mybatis 都不用 xml 了吗
上面提到的各种通用 Mapper 的确做到了 单表 的增删改查,省去了大量的 SQL 或 调用 ORM 方法的代码,
但即便这样,还是远远不如 APIJSON,因为用 APIJSON 自动化 API 后端都不用写代码!
更不用说 APIJSON 还支持多表组合、自由嵌套、各种 JOIN 了,
还有 多字段排序 order by,多字段分组 group by,聚合函数 having 等几乎所有 SQL 的常用功能,
支持 MySQL, PostgreSQL, Oracle 数据库,可跨数据库、跨模式查询,甚至是 JOIN 查询(APP JOIN),
以上这些功能全都不用后端写一行代码就能提供给前端 增删改查 的各种 API !
创作不易,GitHub 右上角点 Star 支持下吧^_^
github.com/TommyLemon/APIJSON
2019-03-06 17:30:01 +08:00
回复了 noble4cc 创建的主题 Java 现在用 mybatis 都不用 xml 了吗
@codingadog 射爆科技 是啥?英文错打成汉字了?
2019-03-06 16:19:55 +08:00
回复了 noble4cc 创建的主题 Java 现在用 mybatis 都不用 xml 了吗
2019-03-06 16:19:26 +08:00
回复了 noble4cc 创建的主题 Java 现在用 mybatis 都不用 xml 了吗
2019-03-06 16:16:55 +08:00
回复了 noble4cc 创建的主题 Java 现在用 mybatis 都不用 xml 了吗
不用写代码,自动化接口和文档 ORM 库 APIJSON,5K Star 远超 Java 第二大 ORM 库 Hibernate
https://www.oschina.net/news/101787/apijson-3-1-0-released#comments
2019-03-06 16:15:36 +08:00
回复了 noble4cc 创建的主题 Java 现在用 mybatis 都不用 xml 了吗
@qiuxiaojie
APIJSON 对安全做了大量优化,自动校验权限、自动校验数据和结构、自动防 SQL 注入 等
https://github.com/TommyLemon/APIJSON/issues/12
@qiuxiaojie 具体说下?
@qiuxiaojie APIJSON 不需要后端写代码就能实现 CRUD 哦
https://www.oschina.net/news/101787/apijson-3-1-0-released#comments
楼主的创造和开源精神值得鼓励。
首先一定要相对现有的开源项目有自己独特的优势,然后在平衡功能、安全、性能 时候也要深思熟虑。

可以看下这个 码云最有价值开源项目,4.9 K Star,已有多家企业公开使用
https://github.com/TommyLemon/APIJSON
2019-02-28 14:58:08 +08:00
回复了 ityouknow 创建的主题 Java Github 上 Star 最多的个人 Spring Boot 开源学习项目
2019-02-28 14:48:41 +08:00
回复了 ityouknow 创建的主题 Java Github 上 Star 最多的个人 Spring Boot 开源学习项目
APIJSON (APIJSONBoot 基于 SpringBoot)都 4821 个 Star 了,怎么没放到第 2 个?
https://github.com/TommyLemon/APIJSON
@TommyLemon
SELECT user,EXISTS(SELECT 1 FROM 表名 AS U2 WHERE U2.user=U1.user AND money BETWEEN 1 AND 2) FROM 表名 AS U1 GROUP BY user
@TommyLemon
看错你的意思了,#3 楼方法测试可行。还可以
SELECT user,EXISTS(SELECT 1 FROM 表名 AS U2 WHERE U2.user=U1.userAND sex=1) FROM 表名 AS U1 GROUP BY user
1 ... 11  12  13  14  15  16  17  18  19  20 ... 34  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2023 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 00:59 · PVG 08:59 · LAX 17:59 · JFK 20:59
Developed with CodeLauncher
♥ Do have faith in what you're doing.