Mybatis-主键回填
Mybatis-主键回填
需求:
添加检查组,检查组包含多个检查项目,检查组与检查项连张表是多对多得关系,用一种中间表为维系
检查组表:
检查项表:
中间表:
mapper映射文件:
<!--新增--><insert id="add" parameterType="com.itheima.pojo.CheckGroup"><selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">SELECT LAST_INSERT_ID()</selectKey>insert into t_checkgroup(code,name,sex,helpCode,remark,attention)values(#{code},#{name},#{sex},#{helpCode},#{remark},#{attention})</insert>
- selectKey元素的keyProperty属性指定了采用哪个属性作为POJO的主键。
- resultType告诉MyBatis将返回一个Integer型的结果集。
- order属性设置为BEFORE说明将于当前定义的SQL前执行。说明它会在插入之前先执行生成主键的SQL,然后插入数据。如果有一些特殊需要,可以把它设置为AFTER,比如一些插入语句的内部可能有嵌入索引调用,这样它就会在插入语句之后执行了。
mapper接口
package com.itheima.dao;import com.github.pagehelper.Page;
import com.itheima.pojo.CheckGroup;import java.util.Map;/*** 持久层接口*/
public interface CheckGroupDao {public void add(CheckGroup checkGroup);
}
服务实现类:
package com.itheima.service.impl;import com.alibaba.dubbo.config.annotation.Service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.dao.CheckGroupDao;
import com.itheima.entity.PageResult;
import com.itheima.pojo.CheckGroup;
import com.itheima.service.CheckGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;import java.util.HashMap;
import java.util.Map;/*** @Description: TODO* @author: scott* @date: 2021年06月03日 22:43*/@Service(interfaceClass = CheckGroupService.class)
@Transactional
public class CheckGroupServiceImpl implements CheckGroupService {@Autowiredprivate CheckGroupDao checkGroupDao;public void add(CheckGroup checkGroup, Integer[] checkitemIds) {//设置检查组checkGroupDao.add(checkGroup);//设置检查组合和检查项的关联关系Integer groupId = checkGroup.getId();//当执行了checkGroupDao.add(checkGroup);就可以获取到idSystem.out.println(groupId);Map<String, Integer> map = new HashMap<String, Integer>();for (Integer checkitemId : checkitemIds) {map.put("checkGroupId",groupId);map.put("checkItemId",checkitemId);checkGroupDao.setCheckGroupAndCheckItem(map);}}
}
Mybatis-主键回填相关推荐
- MyBatis主键回填和自定义主键
MyBatis主键回填和自定义主键 1. 主键回填 JDBC中的Statement对象在执行插入的SQL后,可以通过getGeneratedKeys方法获得数据库生成的主键,这样便能达到获取主键的功能 ...
- MyBatis主键回填
方式一 <insert id="insertBook" useGeneratedKeys="true" keyProperty="id" ...
- Mybatis—— 主键回填
在 MySQL 中主键自增字段,在插入后往往需要获得这个主键,以便于后面的操作,而 MyBatis 提供了实现的方法. 首先可以使用 keyProperty 属性指定哪个是主键字段,同时使用 useG ...
- Mybatis 主键回显 KeyGenerator原理
这篇文章研究下 Mybatis 配置主键回显相关功能. 本篇文章将以以下几个问题切入: Mybatis 如何 配置主键自增回显? JDBC 主键回显用法? 对于不支持自增主键数据库,Mybatis 有 ...
- mybatis主键生成策略和mp主键生成策略
mybatis主键生成策略和mp主键生成策略 1,mybatis plus 主键生成策略 都是通过给实体类的属性添加注解的方式执行type = IDTYPE- 1,AUTO数据库ID自增 2, ...
- mybatis 主键自增 insert后返回主键
mybatis 主键自增 insert后返回主键 : <insert id="insertStudentAutoKey" parameterType="Studen ...
- 轻量级封装DbUtilsMybatis之四MyBatis主键
MyBatis主键 不支持对象列表存储时对自增id字段的赋值(至少包括3.2.6和3.3.0版本),如果id不是采用底层DB自增主键赋值,不必考虑此问题 温馨提示:分布式DB环境下,DB主键一般会采用 ...
- Mybatis中selectKey 标签的作用,主键回填,找了好多文章没一个解释清楚。。
(1)没有配置selectKey 标签时候插入数据: <insert id="addUser" parameterType="model.User"> ...
- @MyBatis主键返回
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能. 比如在表的关联关系中,将数据插入主 ...
- mysql mybatis 主键id_MyBatis+MySQL 返回插入的主键ID-Go语言中文社区
需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如下: insert into user(user ...
最新文章
- 【转载】YOLOV详解
- ICPC2008哈尔滨-A-Array Without Local Maximums
- oracle schema
- 使用GNS3简单模拟帧中继环境
- spark streaming kafka Couldn't find leader
- 手机之家签名工具_这个签名工具可以让任何人“证明自己是中本聪”
- vlan trunk中继链路(讲解+配置)
- color 的一些处理
- C++ 手动实现简单的智能指针类
- 中国大陆物联网驶入快车道 台商抢上车
- python编译成c代码_python如何调用c编译好可执行程序
- 孙鑫VC学习笔记:第三讲 MFC应用程序框架
- iOS测试技巧:GPX文件修改经纬度
- 用php打竖的文字_总结PHP竖排文字的方法
- Win7开机加速全攻略一:序章和开机原理
- 最伟大的IT人物10强
- Acwing算法基础课学习笔记
- excel操作系列之中文姓名转英文姓名
- 一款技术人必备的接口测试神器:Apifox
- 美国大学生数学建模竞赛选题、经验以及准备材料
热门文章
- 收集大家的想法,谢谢参与。。
- 如何有效的杜绝“羊毛党“的薅羊毛行为?
- display:none和visibility:hidden的区别
- Linux更改文件权限(一)
- 离散傅里叶变换 (DFT)、快速傅里叶变换 (FFT)
- 什么是jQuery,jQuery的特点。
- Android 地图导航调用百度地图、高德地图、腾讯地图,ffmpeg音视频开发实战5
- html中h3字体不加粗取消,css如何取消加粗
- 7-8 打死我也不说
- 有没有好的学计算机英语的软件,什么软件学英语最好免费