日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

2.SpringBoot整合Mybatis(一对一)

發(fā)布時(shí)間:2023/12/8 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2.SpringBoot整合Mybatis(一对一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言:

上一篇整合springboot和mybatis的項(xiàng)目的建立,以及單表的簡(jiǎn)單的增刪改查。這里是上一篇blog的地址:https://www.cnblogs.com/wx60079/p/11461158.html今天來(lái)介紹一對(duì)一的關(guān)系該怎么處理。

準(zhǔn)備工具:IntelliJ IDEA? ??Navicat for MySQL? ?Postman

?

一、建立數(shù)據(jù)庫(kù):

每個(gè)user對(duì)應(yīng)一張身份證,每張身份證上有身份證號(hào)cardId、開始日期、結(jié)束日期。并且建立與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

?

?

?二、代碼實(shí)現(xiàn)

1.添加身份證實(shí)體:

1 package com.beilin.entity; 2 import org.springframework.format.annotation.DateTimeFormat; 3 import java.util.Date; 4 5 /** 6 * 身份證實(shí)體 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反反復(fù)復(fù)試了多次,如果要修改的話,總是失敗,在此就用:String類型--->Data

為此,在IDCard同級(jí)目錄下創(chuàng)建:

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.添加數(shù)據(jù)操作接口mapper:

(本來(lái)簡(jiǎn)單的增刪改查不打算寫的,再寫也是為了自己更熟練,這里主要看后面的那兩方法)

1 package com.beilin.mapper; 2 import com.beilin.entity.IDCard; 3 import java.util.List; 4 5 /** 6 * Idcard的數(shù)據(jù)操作層接口類 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表與身份證表的一對(duì)一映射--> 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 <!--根據(jù)uid刪除id_card表信息--> 24 <delete id="delete" parameterType="int"> 25 delete from id_card where uid=#{uid} 26 </delete> 27 28 <!--根據(jù)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 <!--根據(jù)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 //根據(jù)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 * 根據(jù)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

?

三、測(cè)試:

(當(dāng)然,最開始建表里面是什么都沒有的,可以根據(jù)上面的增刪改方法自行練習(xí),這里不再贅述)

1.數(shù)據(jù)表信息:

2.Postman運(yùn)行結(jié)果:?

?

?后面還有一部分沒有截出來(lái)

?

最后,邊學(xué)邊寫也是非常耗時(shí)間的,往往一個(gè)小問題都能卡個(gè)一兩天,寫博客也是當(dāng)事后日記來(lái)寫,以便加深記憶,如果有什么錯(cuò)誤的地方,也請(qǐng)大家指出!

轉(zhuǎn)載于:https://www.cnblogs.com/wx60079/p/11525649.html

總結(jié)

以上是生活随笔為你收集整理的2.SpringBoot整合Mybatis(一对一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。