前言:

上一篇整合springboot和mybatis的项目的建立,以及单表的简单的增删改查。这里是上一篇blog的地址:https://www.cnblogs.com/wx60079/p/11461158.html今天来介绍一对一的关系该怎么处理。

准备工具:IntelliJ IDEA    Navicat for MySQL   Postman

一、建立数据库:

每个user对应一张身份证,每张身份证上有身份证号cardId、开始日期、结束日期。并且建立与user表的外键

1 CREATE TABLE `id_card` (
2   `cardId` bigint(18) NOT NULL,
3   `uid` int(5) DEFAULT NULL,
4   `begin_time` date DEFAULT NULL,
5   `end_time` date DEFAULT NULL,
6   PRIMARY KEY (`cardId`),
7   KEY `fksu_id` (`uid`),
8   CONSTRAINT `fksu_id` FOREIGN KEY (`uid`) REFERENCES `user` (`id`)
9 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

id_card

二、代码实现

1.添加身份证实体:

 1 package com.beilin.entity;
 2 import org.springframework.format.annotation.DateTimeFormat;
 3 import java.util.Date;
 4
 5 /**
 6    * 身份证实体
 7   * @author 北林
 8    *
 9    */
10
11 public class IDCard {
12
13     private int uid;
14     private long cardId;
15
16     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
17     private Date beginTime;
18     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
19     private Date endTime;
20     private User user;
21
22
23     public User getUser() {
24         return user;
25     }
26     public void setUser(User user) {
27         this.user = user;
28     }
29     public int getUid() {
30         return uid;
31     }
32     public void setUid(int uid) {
33         this.uid = uid;
34     }
35     public long getCardId() {
36         return cardId;
37     }
38     public void setCardId(long cardId) {
39         this.cardId = cardId;
40     }
41     public Date getBeginTime() {
42         return beginTime;
43     }
44     public void setBeginTime(Date beginTime) {
45         this.beginTime = beginTime;
46     }
47     public Date getEndTime() {
48         return endTime;
49     }
50     public void setEndTime(Date endTime) {
51         this.endTime = endTime;
52     }
53
54
55 }

IDCard.java

在这里需要注意的是:由于身份证上的日期类型是Data 我在Postman反反复复试了多次,如果要修改的话,总是失败,在此就用:String类型--->Data

为此,在IDCard同级目录下创建:

 1 package com.beilin.entity;
 2
 3 import org.springframework.format.annotation.DateTimeFormat;
 4
 5 import java.util.Date;
 6
 7 public class IDCardRequest {
 8
 9     private int uid;
10     private long cardId;
11
12     private String beginTime;
13     private String endTime;
14
15
16     public int getUid() {
17         return uid;
18     }
19
20     public void setUid(int uid) {
21         this.uid = uid;
22     }
23
24     public long getCardId() {
25         return cardId;
26     }
27
28     public void setCardId(long cardId) {
29         this.cardId = cardId;
30     }
31
32     public String getBeginTime() {
33         return beginTime;
34     }
35
36     public void setBeginTime(String beginTime) {
37         this.beginTime = beginTime;
38     }
39
40     public String getEndTime() {
41         return endTime;
42     }
43
44     public void setEndTime(String endTime) {
45         this.endTime = endTime;
46     }
47 }

IDCardRequest.java

2.添加数据操作接口mapper:

(本来简单的增删改查不打算写的,再写也是为了自己更熟练,这里主要看后面的那两方法)

 1 package com.beilin.mapper;
 2 import com.beilin.entity.IDCard;
 3 import java.util.List;
 4
 5 /**
 6    * Idcard的数据操作层接口类
 7   * @author 北林
 8    *
 9    */
10
11 public interface IDCardMapper {
12
13     //增
14     public void insert(IDCard iDCard);
15
16     //删
17     public void delete(Integer uid);
18
19     //改
20     public void update(IDCard iDCard);
21
22     //查
23     public List<IDCard> getByUid(Integer uid);
24
25     /**
26      * 获取包括user信息的身份证列表
27      */
28     public List<IDCard>  getListIdOfUser();
29
30 }

IDCardMapper.java

3.添加mapper映射:

 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.beilin.mapper.IDCardMapper">
 4
 5     <!--  user表与身份证表的一对一映射-->
 6     <resultMap type="iDCard" id="IDCardOfUserMap">
 7         <id property="cardId" column="cardId"/>
 8         <result property="beginTime" column="begin_time"/>
 9         <result property="endTime" column="end_time"/>
10         <association property="user" javaType="user">
11             <id property="id" column="id"/>
12             <result property="name" column="name"/>
13             <result property="age" column="age"/>
14         </association>
15     </resultMap>
16
17
18     <!--插入id_card表信息-->
19     <insert id="insert" parameterType="iDCard">
20         insert into id_card values(#{cardId},#{uid},#{beginTime},#{endTime})
21     </insert>
22
23     <!--根据uid删除id_card表信息-->
24     <delete id="delete" parameterType="int">
25         delete from id_card where uid=#{uid}
26     </delete>
27
28     <!--根据uid修改id_card表信息-->
29     <update id="update" parameterType="iDCard">
30         update id_card set cardId=#{cardId},begin_time=#{beginTime},end_time=#{endTime} where uid=#{uid}
31     </update>
32
33     <!--根据uid查询id_card信息-->
34     <select id="getByUid" parameterType="int" resultType="iDCard">
35         select * from id_card where uid=#{uid}
36     </select>
37
38
39     <!-- 查出带有uer信息的id_card列表 -->
40     <select id="getListIdOfUser" resultMap="IDCardOfUserMap">
41         select * from id_card a,user b where a.uid=b.id;
42     </select>
43
44 </mapper>

IDCardMapper.xml

4.添加controller:

 1 package com.beilin.controller;
 2
 3 import com.beilin.entity.IDCard;
 4 import com.beilin.entity.IDCardRequest;
 5 import com.beilin.mapper.IDCardMapper;
 6 import org.springframework.beans.factory.annotation.Autowired;
 7 import org.springframework.web.bind.annotation.*;
 8
 9 import java.text.SimpleDateFormat;
10 import java.util.Date;
11 import java.util.List;
12
13 @RestController
14 public class IDCardController {
15     @Autowired
16     private IDCardMapper iDCardMapper;
17
18     //插入IDCard信息
19     //注意这里使用的是json格式
20     @PostMapping("/insert")
21     public void insert(@RequestBody IDCard iDCard){
22         iDCardMapper.insert(iDCard);
23     }
24
25     //根据uid删除
26     @RequestMapping("/delete/{uid}")
27     public  void delete(@PathVariable("uid") Integer uid){
28         iDCardMapper.delete(uid);
29     }
30
31     @RequestMapping("/update/{uid}")
32     public void update(IDCardRequest idCardRequest, @PathVariable("uid") Integer uid){
33         IDCard idCard = new IDCard();
34         idCard.setCardId(idCardRequest.getCardId());
35         idCard.setUid(idCardRequest.getUid());
36         try{
37             idCard.setBeginTime(this.strToDate(idCardRequest.getBeginTime()));
38             idCard.setEndTime(this.strToDate(idCardRequest.getEndTime()));
39         }catch (Exception e){
40             e.printStackTrace();
41         }
42         iDCardMapper.update(idCard);
43     }
44
45     /**
46      *  根据uid查询
47      * @return
48      */
49     @RequestMapping("/select/{uid}")
50     public List<IDCard> getByUid(@PathVariable("uid") Integer uid) {
51         List<IDCard> iDCards = iDCardMapper.getByUid(uid);
52         return iDCards;
53     }
54
55     /**
56      * 查出带有user信息的身份证列表
57      * @return
58      */
59     @GetMapping("/IDCardsOfUser")
60     public List<IDCard> listOfUser(){
61         List<IDCard>  iDCards=  iDCardMapper.getListIdOfUser();
62         return iDCards;
63     }
64
65     private Date strToDate(String strDate) throws Exception {
66         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
67         return simpleDateFormat.parse(strDate);
68     }
69 }

IDCardController.java

三、测试:

(当然,最开始建表里面是什么都没有的,可以根据上面的增删改方法自行练习,这里不再赘述)

1.数据表信息:

2.Postman运行结果:

后面还有一部分没有截出来

最后,边学边写也是非常耗时间的,往往一个小问题都能卡个一两天,写博客也是当事后日记来写,以便加深记忆,如果有什么错误的地方,也请大家指出!

转载于:https://www.cnblogs.com/wx60079/p/11525649.html

2.SpringBoot整合Mybatis(一对一)相关推荐

  1. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...

  2. mybatis plugins_[MyBatis] SpringBoot 整合Mybatis

    现在基本上搭建一个简单的工程都是三剑客 springboot+mybatis+redis 之前整合Mybatis 都是按照SSM来,所以,这一次带来SpringBoot+MyBatis 的快速整合 p ...

  3. SpringBoot整合Mybatis超详细流程

    SpringBoot整合Mybatis超详细流程 文章目录 SpringBoot整合Mybatis超详细流程 前言 详细流程 0.引入Mybatis 1.创建数据 2.创建程序目录 3.理解后台访问流 ...

  4. SpringBoot整合Mybatis(高级)

    SpringBoot整合Mybatis(高级) 文章目录 SpringBoot整合Mybatis(高级) 前言 基础环境配置 增删改查 ResultMap 复杂查询 多对一 一对多 动态SQL if ...

  5. 3、SpringBoot整合MyBatis注解版及配置文件版

    目录 1.配置pom.xml 2.配置application.yml 3.配置DruidConfig关联yml的配置文件spring.datasource 4.创建数据库及数据库表结构 5.创建对应的 ...

  6. (一)SpringBoot 整合 MyBatis

    一.工具 IDE:idea.DB:mysql 二.创建SpringBoot工程 在Idea中使用SpringInitializr模板创建SpringBoot工程,依赖选择如下: 这里也可以不选JDBC ...

  7. SpringBoot整合mybatis进行快速开发

    SpringBoot整合mybatis进行数据库操作 1.环境的搭建 pom.xml <!--核心模块,包括自动配置支持.日志和YAML --> <dependencies>& ...

  8. springboot 整合mybatis实现curd

    springboot 整合mybatis pom文件 mvc 架构 application.properties 扩展配置,druid配置类 项目地址: https://github.com/seve ...

  9. springboot整合mysql5.7_详解SpringBoot整合MyBatis详细教程

    1. 导入依赖 首先新建一个springboot项目,勾选组件时勾选Spring Web.JDBC API.MySQL Driver 然后导入以下整合依赖 org.mybatis.spring.boo ...

最新文章

  1. linux日志手机,通过 shell 脚本 自动发送 log日志 文件内容 到手机邮箱
  2. 记录这两日悲哀的血泪史,以便后来人能绕行
  3. 《IBM-PC汇编语言程序设计》(第2版)【沈美明 温冬婵】——第三章——自编解析与答案
  4. ORACLE ROWNUM用法、select into与insert into区别、merge into的使用、递归查询
  5. 09 Softmax 回归 + 损失函数 + 图片分类数据集【动手学深度学习v2】
  6. 【报错笔记】关于图片上传时的路径问题
  7. 乘风破浪的迁移学习!四字成语讲明白这个大热研究方向
  8. 马云:未来10年,人类将面临AI、IoT和区块链3大挑战!(视频+全文)
  9. 【java】从进程角度理解java
  10. #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  11. idft重建图像 matlab_不可见成为可见!超材料和 AI 融合,洛桑联邦理工破译了声音图像...
  12. 2 创建型模式之 - 工厂模式
  13. TortoiseSvn和Subclipse对应关系
  14. 你真的了解“无纸化办公”了吗?
  15. php通过js连接打印机直接打印PDF文件
  16. matlab 函数pdf怎么用_PDF剪裁页面工具怎么用?怎么剪裁PDF页面
  17. 实战技巧-学会这一招让前端工程师都刮目相看
  18. 对数据库中的数据(用户名/密码)加密解密
  19. 可视化行程管理app_可视化流量:时间行程,扭矩和时间图
  20. 三面微软,四面雅虎,外企面经复盘总结,那些你不知道的面试技巧

热门文章

  1. python编写淘宝秒杀脚本
  2. 麦克风阵列之一阶差分麦克风阵列
  3. 学生考试作弊行为视频实时检测系统源码
  4. 欧洲共同语言参考标准英语c1,美国小学英语3年级语言知识对标欧洲共同语言参考标准CEFR...
  5. 2014年最新720多套源码2.0GB免费一次性打包下载
  6. Office激活了提示非正版!
  7. 高中数学必考公式全总结
  8. 3.3V和1.8V电平双向转换
  9. VSTO C# 操作excel
  10. bbs.php ww1.dzxa.me_bbs论坛小结