我正在处理连接到数据库以获取一些记录,处理每条记录和更新记录回到数据库表的java应用程序。Java集合优化
以下是我的DB模式(样本数据):
Table A: Requests
| REQUESTID | STATUS |
-------------------------
| 1 | PENDING|
| 2 | PENDING|
Table B: RequestDetails
| DETAILID | REQUESTID | STATUS | USERID |
---------------------------------------------
| 1 | 1 | PENDING | RA1234 |
| 2 | 1 | PENDING | YA7266 |
| 3 | 2 | PENDING | KAJ373 |
以下是我的要求:
1)用两个表 我请求数据一起未决状态一起获取请求使用以下查询此:
SELECT Requests.REQUEST_ID as "RequestID",RequestDetails.USERID as "UserID",RequestDetails.DETAILID as "DetailID"
FROM Requests Requests
JOIN RequestDetails RequestDetails
ON (Requests.REQUESTID=RequestDetails.REQUESTID AND Requests.REQUEST_STATUS='PENDING' AND RequestDetails.STATUS='PENDING')
2)我使用的是HashMap<String, List<HashMap<String,String>>
来存储所有的值
3)遍历每个请求,并得到详细List<HashMap<String,String>>
上的请求表中的每个细节记录和更新状态
4)在所有细节记录的请求处理执行行动,请求更新状态
最终状态应该是这样的:
Table A: Requests
| REQUESTID | STATUS |
-------------------------
| 1 | PENDING|
| 2 | PENDING|
Table B: RequestDetails
| DETAILID | REQUESTID | STATUS | USERID |
---------------------------------------------
| 1 | 1 | PENDING | RA1234 |
| 2 | 1 | PENDING | YA7266 |
| 3 | 2 | PENDING | KAJ373 |
我的问题是:我使用的集合是相当复杂("HashMap<String, List<HashMap<String,String>>"
)。有没有其他有效的方法来做到这一点?
谢谢
腰带
你是什么意思,哈希图是复杂的 – Vaibs
@Vaibs我刚刚更新了这个问题。谢谢。 –
嗨,你为什么不使用适当的ORM?这应该会让生活更轻松.. –