2、SpringBoot+Mybatis整合------一对一

开发工具:STS

代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis01/tree/93398da60c647573645917b27bd549da2f9f0f15

前言:

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

一、建立数据库:

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

图片描述

二、代码实现

1.添加身份证实体:

图片描述

图片描述

 package com.xm.pojo;
 
 import java.util.Date;
 /**
  * 身份证实体
  * @author xm
  *
  */
 public class IDCard {
     
     private int sid;
     private long cardId;
     private Date beginTime;
     private Date endTime;
     private Student student;
     
     
     public Student getStudent() {
         return student;
     }
     public void setStudent(Student student) {
         this.student = student;
     }
     public int getSid() {
         return sid;
     }
     public void setSid(int sid) {
         this.sid = sid;
     }
     public long getCardId() {
         return cardId;
     }
     public void setCardId(long cardId) {
         this.cardId = cardId;
     }
     public Date getBeginTime() {
         return beginTime;
     }
     public void setBeginTime(Date beginTime) {
         this.beginTime = beginTime;
     }
     public Date getEndTime() {
         return endTime;
     }
     public void setEndTime(Date endTime) {
         this.endTime = endTime;
     }
     
     
 
 }

IDCard.java

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

图片描述

图片描述

 package com.xm.mapper;
 
 import java.util.List;
 
 import com.xm.pojo.IDCard;
 
 /**
  * Idcard的数据操作层接口类
  * @author xm
  *
  */
 public interface IDCardMapper {
     
     /**
      * 获取包括学生信息的身份证列表
      * @return
      */
     public List<IDCard>  getListIdOfStudent();
 
 }

IDCardMapper.java

3.添加mapper映射:

图片描述

图片描述

 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.xm.mapper.IDCardMapper">
 
 <!--  学生表与身份证表的一对一映射-->
 <resultMap type="iDCard" id="IDCardOfStudentMap">
 <id property="cardId" column="cardId"/>
 <result property="beginTime" column="begin_time"/>
 <result property="endTime" column="end_time"/>
 <association property="student" javaType="student">
 <id property="id" column="id"/>
 <result property="name" column="name"/>
 </association>
 </resultMap>
 
 <!-- 查出带有学生信息的身份证列表 -->
 <select id="getListIdOfStudent" resultMap="IDCardOfStudentMap">
 select * from id_card a,student b where a.sid=b.id;
 </select>
 
 </mapper>

IDCardMapper.xml

4.添加controller

图片描述

图片描述

 package com.xm.controller;
 
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.xm.mapper.IDCardMapper;
 import com.xm.pojo.IDCard;
 
 /**
  * 身份证信息的控制类
  * @author xm
  *
  */
 @RestController
 public class IDCardController {
     @Autowired
     private IDCardMapper iDCardMapper;
     /**
      * 查出带有学生信息的身份证列表
      * @return
      */
     @GetMapping("/IDCardsOfStudent")
     public List<IDCard> listOfStudent(){
         List<IDCard>  iDCards=  iDCardMapper.getListIdOfStudent();
         return iDCards;
     }
 
 }

IDCardController.java

三、测试:

1.数据表信息:

图片描述

2.运行结果:

图片描述

                                                                             

                                                                          2018-06-19