3、SpringBoot+Mybatis整合------主键回填
2018-06-21 06:54:00来源:未知 阅读 ()
开发工具:STS
代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis01/tree/d68efe51774fc4d96e5c6870786eb3f1a1a5b629
前言:
当我们插入一个一对一、一对多、多对多的关系数据时,往往需要分表插入,那么我们可能需要获取自动生成的主键用于后面的插入操作,因此今天来介绍下mybatis里的主键回填。
一、代码实现:
1.数据操作层接口mapper:
1 package com.xm.mapper; 2 3 import java.util.List; 4 5 import com.xm.pojo.Student; 6 7 public interface StudentMapper { 8 9 /** 10 * 根据id查询 11 * @param id 12 * @return 13 */ 14 public Student getById(Integer id); 15 16 /** 17 * 查询全部 18 * @return 19 */ 20 public List<Student> list(); 21 22 /** 23 * 插入 24 * @param student 25 */ 26 public int insert(Student student); 27 /** 28 * 主键回填的插入 29 * @param student 30 * @return 31 */ 32 public int insertToId(Student student); 33 34 /** 35 * 根据student的id修改 36 * @param student 37 */ 38 public void update(Student student); 39 40 /** 41 * 根据id删除 42 * @param id 43 */ 44 public void delete(Integer id); 45 46 47 }
2.关系映射xml:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > 3 <mapper namespace="com.xm.mapper.StudentMapper"> 4 5 <!-- 根据id查询 --> 6 <select id="getById" parameterType="int" resultType="student"> 7 select * from student where id=#{id} 8 </select> 9 <!-- 查询所有 --> 10 <select id="list" parameterType="int" resultType="student"> 11 select * from student 12 </select> 13 14 <!-- 插入一个学生 --> 15 <insert id="insert" parameterType="student"> 16 insert into student(name) values(#{name}) 17 </insert> 18 <!-- 主键回填的插入 --> 19 <insert id="insertToId" parameterType="student" useGeneratedKeys="true" keyProperty="id"> 20 insert into student(name) values(#{name}) 21 </insert> 22 23 <!-- 根据id修改学生信息 --> 24 <update id="update" parameterType="student"> 25 update student set name=#{name} where id=#{id} 26 </update> 27 28 <!-- 根据id删除学生 --> 29 <delete id="delete" parameterType="int"> 30 delete from student where id=#{id} 31 </delete> 32 </mapper>
3.测试类:
1 package com.xm; 2 3 import org.junit.Test; 4 import org.junit.runner.RunWith; 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.boot.test.context.SpringBootTest; 7 import org.springframework.test.context.junit4.SpringRunner; 8 9 import com.xm.mapper.StudentMapper; 10 import com.xm.pojo.Student; 11 12 @RunWith(SpringRunner.class) 13 @SpringBootTest 14 public class StudentTest { 15 @Autowired 16 private StudentMapper studentMapper; 17 18 @Test 19 public void insertStudent() { 20 Student student = new Student(); 21 student.setName("张大萨"); 22 int a= studentMapper.insert(student); 23 System.out.println(a); 24 System.out.println(student.getId()); 25 26 a= studentMapper.insertToId(student); 27 System.out.println(a); 28 System.out.println(student.getId()); 29 30 } 31 32 33 }
二、测试结果:
主键自动补充到student中,无需另外获取
2018-06-19
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- MyBatis整合双数据源 2020-06-04
- Spring07_纯注解实战及Spring整合Junit 2020-05-28
- ElasticSearch7.4.2安装、使用以及与SpringBoot的整合 2020-05-27
- SpringBoot2.3整合RabbitMQ实现延迟消费消息 2020-05-26
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash