首先,我们写多对多,这个多对多虽然用的没有一对多的多,但是用处也不少

SQL的显示,我们主要的不是关于表结构,而是看SQL怎么谢,需要用到那些函数,和这些应该怎么联系起来

    select a.*,b.fname from (select a.*,b.aname from(select a.*,b.name tname from t_order a left join t_time bon a.time_id = b.id) a left join t_address bon a.address_id = b.aid limit #{index},#{limit} ) a left join(select order_id,group_concat(f.name) fname from t_order_foot a left joint_foot fon a.foot_id = f.id group by order_id) bon a.id = b.order_id

下面我们来看添加,其实添加的话,一般都会直接添加单表或一对多的,但是多对多的基本上用于多选框中,所以,这个就有步骤了,

添加的SQL(标红重点)

  <insert id="saveOrder" useGeneratedKeys="true" keyProperty="id" parameterType="com.baidu.foot.entity.Order" >insert into t_order (id, name, tel, datea, time_id, address_id)values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{tel,jdbcType=VARCHAR}, sysdate(), #{timeId,jdbcType=INTEGER}, #{addressId,jdbcType=INTEGER})</insert>

添加的话只有把这两个属性放入才可以,因为你是以这张表为主表,你需要取到他们关联的ID

添加多表的SQL

<!-- 添加多表 --><insert id="saveT_O_F" parameterType="list">insert into t_order_foot(order_id,foot_id) values<foreach collection="list" item="item" separator=",">(#{item.orderId},#{item.footId})</foreach></insert>

在逻辑层中,只需要给他传一个选取的多选的Id进行遍历循环放入list即可

//添加多表String[] split = ids.split(",");List list = new ArrayList();for (String str : split) {T_O_F tOF = new T_O_F(Integer.parseInt(str), order.getId());list.add(tOF);}orderMapper.saveT_O_F(list);

就可以了,

删除,就比较简单了,你主表是通过Id进行删除的,那么多表就通过主表关联的外键的Id进行删除就可以了,参数也是相同的

回显

回显比较麻烦,SQL也要比较注意的,不多说,直接代码

    select a.*,b.footids from(select * from t_order where id = #{id}) a left join(select order_id,group_concat(cast(foot_id as char)) footids from t_order_footGROUP by order_id ) bon a.id = b.order_id 

多表把不是主表的关联Id给弄成一个char型,效果是这样的

在主表实体类中重新定义一个这样的字段
在前台这样回显

$(document).ready(function(){var aa = "${order.footids}".split(",")for (  i = 0; i < aa.length; i++) {$('#'+aa[i]).attr('checked',true);}            })

就可以了,

修改

修改的其实没有什么逻辑性的,其实就是删除的多表和添加的多表进行结合就行了,

一般就是,先定义一个主表单表的修改方法,然后调用删除多表的方法,在调用添加多表的就可以了,参数都一样,以主表的Id为主

转载于:https://www.cnblogs.com/songpinyue/p/4921544.html

多对多的添加修改,显示,的逻辑步骤相关推荐

  1. CentOS7设置静态IP、搭建单机版FastDFS图片服务器、使用FastDFS-Client客户端进行简单测试、实现图片上传、实现商品添加修改删除

    CentOS7设置静态IP.搭建单机版FastDFS图片服务器.使用FastDFS-Client客户端进行简单测试.实现图片上传.实现商品添加修改删除 CentOS7设置静态IP而且还可以上网 192 ...

  2. asp.net 对xml文件的读写,添加,修改,删除操作

    asp.net 对xml文件的读写,添加,修改,删除操作 下面有代码调试正确 using System; using System.Collections; using System.Componen ...

  3. wordpress怎么修改html,WordPress后台编辑器HTML模式界面中添加修改删除按钮

    在WordPress编辑器HTML模式界面中添加 按钮一文中,我大致介绍了怎么在后台添加一些自定义的按钮,本文则更为详细全面的对wordpress后台编辑器HTML模式下的按钮自定义进行详解,以让开发 ...

  4. html表格中添加修改和删除链接,jQuery实现为table表格动态添加或删除tr功能示例...

    本文实例讲述了jQuery实现为table表格动态添加或删除tr功能.分享给大家供大家参考,具体如下: HTML页面元素如下: 订单合同号 捆包号 品名 规格 材质 重量 业务需求是,从后台获取到订单 ...

  5. 深入学习SAP UI5框架代码系列之五:SAP UI5控件的实例数据修改和读取逻辑

    这是Jerry 2021年的第6篇文章,也是汪子熙公众号总共第277篇原创文章. 系列目录 (0) SAP UI5应用开发人员了解UI5框架代码的意义 (1) SAP UI5 module懒加载机制 ...

  6. day09---(02)课程大纲-小节添加修改删除(前端)

    1.在src/api/video.js中增加查询.添加.删除.修改小节的api接口方法 import request from '@/utils/request' export default {// ...

  7. 添加 右键显示隐藏文件+扩展名

    http://hi.baidu.com/zq52480/blog/item/1489fd1f13abed11413417ee.html 添加 右键显示隐藏文件+扩展名 2010-08-25 22:41 ...

  8. No6-6.从零搭建spring-cloud-alibaba微服务框架,添加用户鉴权逻辑,动态数据权限(使用AOP实现)等(六,no6-6)

    代码地址与接口看总目录:[学习笔记]记录冷冷-pig项目的学习过程,大概包括Authorization Server.springcloud.Mybatis Plus~~~_清晨敲代码的博客-CSDN ...

  9. VC6.0 MFC 列表框 列表控件 添加 修改 删除

    VC6.0 MFC 列表框 列表控件 添加 修改 删除 写在前面:列表框是很常用,并且很重要的一个控件,那么接下来,就跟随我的脚步,去探索它的奥秘吧! 一.未卜先知 1.编译运行后,点击"学 ...

最新文章

  1. 人脸检测库libfacedetection介绍
  2. TensorFlow基于cifar10数据集实现进阶的卷积网络
  3. WCF生成客户端对象方式解析
  4. 资源调度框架YARN
  5. 折半查找一个有序数组中的一个元素,即二分法
  6. 使用数据库表查询的方式直接获得CRM服务订单的sold to party信息
  7. java程序里繁体字显示为方块_网页 俄罗斯方块
  8. mysql 数据修改时间_怎样修改mysql数据中的具体时间
  9. python2处理耗时任务_RabbitMQ Go客户端教程2——任务队列/工作队列
  10. 【转载保存】lucene3.0可以对docId、docField、queryParser设置Boost值来影响排序结果
  11. 一波情人节海报温暖来袭,注定与众不同
  12. Listary基本操作
  13. 中标麒麟打包qt(Shell文本)
  14. Python爬取《你是我的荣耀》——词云图
  15. 一个程序员和一个黑客群的故事
  16. Kalrry记录---ing
  17. python注释多行
  18. 【Hive】如何在 Hive 中创建外部表映射 Hbase 中已存在的表
  19. N沟道增强型MOS管双向低频开关电路
  20. 合理使用DTO(Data Transfer Object)

热门文章

  1. CVPR2019| 亚洲微软研究院、阿德莱德论文:结构知识蒸馏应用语义分割
  2. 120余家自动驾驶公司的行业汇总
  3. c语言三级上机题库,2006年9月全国等级考试三级c语言上机题库(三十四)
  4. sumif三个条件怎么填_Excel根据条件进行求和的几个常用函数公式!
  5. floatmap 二维数组_Golang学习笔记(四):array、slice、map
  6. centos6.x 安装php5.6 tar,CentOs6.x安装php5.6.x Web程序 - 贪吃蛇学院-专业IT技术平台
  7. 小汤学编程之MySQL(三)——约束、多表查询、事务和数据库其他操作
  8. IDEA无法导入HttpServlet包解决方法
  9. JZOJ5918【NOIP2018模拟10.20】Car
  10. 微信小程序,转盘抽奖