java 一对 多 数据处理_Java 一对多的数据怎样获取 可以提高性能

TommyLemon

2018-08-31 23:52:08 +08:00

JOIN 直接就解决了,只取需要的而不是全部数据,为啥还要在内存中(我的理解是应用层,而不是数据库引擎)筛选?

```sql

SELECT A.*, B.* FROM A INNER JOIN B ON A.id = B.a_id WHERE {A 和 B 里面字段的条件}

```

封装是肯定要在应用层搞定的,遍历 ResultSet 再封装 A,B 即可,A 很可能会有重复,所以最好用

```java

Map aMap = new LinkedHashMap<>();

```

这样的结构,每次

```java

A a = aMap.get(a_id);

if (a == null) {

a = new A();

aMap.put(a_id, A);

}

a.setId(a_id);

...

List bs = a.getBs();

if (bs == null) {

bs = new ArrayList<>();

a.setBs(bs);

}

B b = new B();

b.setA_id(a_id);

...

bs.add(b);

```

如果你懒得封装,其实可以用 APIJSON 的自动化 API 帮你搞定:

请求

```javascript

{

"Moment": {},

"Comment[]": { //把数组里面每项的 Comment 对象提取出来

"Comment": {

"momentId@": "Moment/id" // 引用赋值:Comment.momentId = Moment.id

}

}

}

```

返回:

```javascript

{

"Moment": {

"id": 12,

"userId": 70793,

"date": "2017-02-08 16:06:11.0",

"content": "1111534034",

"praiseUserIdList": [

70793,

93793

],

"pictureList": [

"http://static.oschina.net/uploads/img/201604/22172508_eGDi.jpg"

]

},

"Comment[]": [

{

"id": 162,

"toId": 0,

"userId": 93793,

"momentId": 12,

"date": "2017-03-06 13:03:45.0",

"content": "This is a Content...-162"

},

{

"id": 164,

"toId": 0,

"userId": 93793,

"momentId": 12,

"date": "2017-03-06 13:03:45.0",

"content": "This is a Content...-164"

},

{

"id": 172,

"toId": 162,

"userId": 82001,

"momentId": 12,

"date": "2017-03-25 20:22:58.0",

"content": "OK"

}

],

"code": 200,

"msg": "success"

}

```

APIJSON 自动将前端传的 JSON 参数转为 SQL 语句执行并返回结果,

期间自动校验权限、结构、内容,自动防 SQL 注入。

通过自动化 API,前端可以定制任何数据、任何结构!

大部分 HTTP 请求后端再也不用写接口了,更不用写文档了!

前端再也不用和后端沟通接口或文档问题了!再也不会被文档各种错误坑了!

后端再也不用为了兼容旧接口写新版接口和文档了!再也不会被前端随时随地没完没了地烦了!

在线解析

自动生成文档,清晰可读永远最新

自动生成请求代码,支持 Android 和 iOS

自动生成 JavaBean 文件,一键下载

自动管理与测试接口用例,一键共享

自动校验与格式化 JSON,支持高亮和收展

对于前端

不用再向后端催接口、求文档

数据和结构完全定制,要啥有啥

看请求知结果,所求即所得

可一次获取任何数据、任何结构

能去除重复数据,节省流量提高速度

对于后端

提供通用接口,大部分 API 不用再写

自动生成文档,不用再编写和维护

自动校验权限、自动管理版本、自动防 SQL 注入

开放 API 无需划分版本,始终保持兼容

支持增删改查、模糊搜索、正则匹配、远程函数等

后端接口和文档自动化,前端(客户端) 定制返回 JSON 的数据和结构!

创作不易,GitHub 右上角点 Star 支持下吧,谢谢^_^

github.com/TommyLemon/APIJSON

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值