只要关系配置正确,一条sql就可以解决循环中查询数据库的问题

原创 2015年07月08日 08:53:05


如上配置,可以实现查询多个订单,并且查询出每个订单对应的商品信息,存放在对应订单的集合中,实体类中存在如下的属性


在实体对象中展现一对多的关系,mapper文件中通过collection标签配置一对多关系

假设执行sql的结果如下:


相同的订单出现可能不止一次,里面存在的商品也不一样,如何将同一订单的商品整合在一起?

其实我们不需要做任何的事情,看到上图中配置的ResultMap,因为PURCHASE_ID作为主键,数据库中的每条记录是一个对象,相同的订单编号会覆盖之前的订单,而商品信息则继续往集合中添加。这样最终就可以把一个订单中的商品信息全部放在一个集合中。

相关文章推荐

java 不让查询数据库sql一直在循环中执行的方法

java sql 循环查询 for(String id:list){ po = dao.select(id); dao.update(po); } 这样做的话会有性能问题,可是不...

不要循环查询数据库

在编码过程中要避免在循环中查询数据库,能一次查询的就不要多次查询。下面两个代码块是完全等效的。代码块一写起来简单,但却在循环中多次查询数据库,该代码执行时间为8毫秒。代码二写起来麻烦甚至还多了个双重循...

MySql数据库 sql查询增加序号的伪列

在查询数据库的时候,我们有时候需要对查询出来的数据加上序列,1,2,3,……n 例如:我们根据表的某个字段排序后,要对这些数据加上序列,这个时候序号常常不是我们建表时设置好的自增的主键id,怎么办呢...
  • sam_jet
  • sam_jet
  • 2014年12月12日 14:01
  • 11113

mybatis 实现关联查询的一对多和多对多查询

1.1  一对多查询 案例:查询所有订单信息及订单下的订单明细信息。 订单信息与订单明细为一对多关系。 使用resultMap实现如下: 1.1.1  Sql语句:三张表的关联查询  标红的分别为查询...

遇见了奇怪bug,前端用的AngularJs,后台是SpringMVC,持久用的hibernate,跟后台断点时查询数据库返回一条数据,否则返回两条,以下是问题详述

我在做一个系统,有一个银行下拉,当银行的钱全部转出的时候则下拉不显示该银行,进入该界面的时候会初始化该银行下拉,我在点击【转出】按钮的时候在里面再一次调用了查询银行下拉的方法,结果出现了跟debug到...

写了一个查询数据库的程序,不熟的Tomcat6。查询条件为英文时运行正常,为中文时出现乱码。后在tomcap的server.xml中加入useBodyEncodingForURI="true解决了问题

Tomcat的乱码 首先,说说JSP/Servlet中的几个编码的作用。  在JSP/Servlet中主要有以下几个地方可以设置编码,pageEncoding="UTF-8"、cont...

用SQL查询数据库中某一字段下相同值的记录方法

今天接到一任务,有一张学生信息表(Excel表),里面有一万多条记录,现在要把这张表导入到数据库中,并设置学生学号为主键,但是现在这张表中的学生学号有重复的记录,我必须先找出这些重复的记录,然后再进行...

ORACLE 性能优化-查询数据库慢SQL(其实还是awr和ash报告更方便~)

查询数据库繁忙原因 V$SQLAREA; v$session;   1. 查看数据库逻辑读写前10sql     set linesize 300;     set pagesize...

SQL查询数据库表名、表的列名

 SQl查询数据库表名、表的列名--读取库中的所有表名select name from sysobjects where xtype=u--读取指定表的所有列名select name from sys...

[代码实例][C语言][sqlite3]用SQL语句查询数据库的实例

下载sqlite3源代码 https://www.sqlite.org/ 编译安装sqlite3的Makefile INSTALL_PATH =/usr/local al...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:只要关系配置正确,一条sql就可以解决循环中查询数据库的问题
举报原因:
原因补充:

(最多只允许输入30个字)