Mybatis XML增刪操作(結合上文)

先來"增"操作

在UserInfoXMLMapper.xml里面寫

<?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.example.mybatisdemo.mapper.UserInfoXMLMapper"><insert id="insert">insert into userinfo(username,password,age,gender,phone)values(#{username},#{password},#{age},#{gender},#{phone})</insert>
</mapper>

然后在 UserInfoXMLMapper 接口中寫

package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface UserInfoXMLMapper {Integer insert(UserInfo userInfo);}

然后右鍵,generate,test,勾選insert,ok

然后進行完善

package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;import static org.junit.jupiter.api.Assertions.*;@Slf4j
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowiredprivate UserInfoXMLMapper userInfoXMLMapper;@Testvoid insert() {UserInfo userInfo = new UserInfo();userInfo.setUsername("haha");userInfo.setPassword("666");userInfo.setAge(22);userInfo.setGender(1);userInfo.setPhone("556699");Integer result = userInfoXMLMapper.insert(userInfo);log.info("影響的行數:{}",result);}
}

插入成功?

?

如果我們想插入完以后拿到它的 id 該怎么拿?

在?UserInfoXMLMapper.xml 稍作修改,加上 useGenerateKeys 和 keyProperty

<?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.example.mybatisdemo.mapper.UserInfoXMLMapper"><insert id="insert" useGeneratedKeys="true" keyProperty="id">insert into userinfo(username,password,age,gender,phone)values(#{username},#{password},#{age},#{gender},#{phone})</insert>
</mapper>

?然后在 UserInfoXMLMapperTest 的log.info 里面加上插入的結果

package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;import static org.junit.jupiter.api.Assertions.*;@Slf4j
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowiredprivate UserInfoXMLMapper userInfoXMLMapper;@Testvoid insert() {UserInfo userInfo = new UserInfo();userInfo.setUsername("haha");userInfo.setPassword("666");userInfo.setAge(22);userInfo.setGender(1);userInfo.setPhone("556699");Integer result = userInfoXMLMapper.insert(userInfo);log.info("影響的行數:{},插入結果的id:{}",result,userInfo.getId());}
}

插入成功?

在數據庫中也能看到確實是6?

插入數據如何進行重命名呢?

用@Param

package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;import java.util.List;@Mapper
public interface UserInfoXMLMapper {Integer insert(UserInfo userInfo);Integer insert2(@Param("userInfo2") UserInfo userInfo);
}

?然后右鍵,Generate,test,勾選insert2,ok

package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.Configuration;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;
import static org.junit.jupiter.api.Assertions.*;@Slf4j
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowiredprivate UserInfoXMLMapper userInfoXMLMapper;@Testvoid insert2() {UserInfo userInfo = new UserInfo();userInfo.setUsername("haha");userInfo.setPassword("666");userInfo.setAge(22);userInfo.setGender(1);userInfo.setPhone("556699");Integer result = userInfoXMLMapper.insert2(userInfo);log.info("影響的行數:{},插入結果的id:{}",result,userInfo.getId());}
}

然后在 UserInfoXMLMapper.xml 里面,每個字段前面都要加上 UserInfo2(@Param后面的內容)

<?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.example.mybatisdemo.mapper.UserInfoXMLMapper"><insert id="insert2" useGeneratedKeys="true" keyProperty="id">insert into userinfo(username,password,age,gender,phone)values(#{userInfo2.username},#{userInfo2.password},#{userInfo2.age},#{userInfo2.gender},#{userInfo2.phone})</insert>
</mapper>

這樣就能插入成功了?

接下來是"刪"操作

package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;import java.util.List;@Mapper
public interface UserInfoXMLMapper {Integer delete(Integer id);}

然后右鍵,Generate,test,勾選delete,ok

把Id為8 的數據刪了

package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.Configuration;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;
import static org.junit.jupiter.api.Assertions.*;@Slf4j
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowiredprivate UserInfoXMLMapper userInfoXMLMapper;@Testvoid delete() {userInfoXMLMapper.delete(8);}
}

然后在 UserInfoXMLMapper.xml 里面

<?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.example.mybatisdemo.mapper.UserInfoXMLMapper"><delete id="delete">delete from userinfo where id=#{id}</delete>
</mapper>

在數據庫中再次驗證是否刪除,上面是刪除前,下面是刪除后,刪除成功了

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210610.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210610.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210610.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nginx多端口部署

1.配置nginx.conf文件 有幾個端口需要部署就寫幾個server&#xff0c;我這里只部署了兩個端口分別為80和81端口&#xff0c;所以有兩個server文件。80端口項目入口在根目錄的test文件中&#xff0c;81端口項目入口在根目錄的test1文件夾中。 2.準備項目文件html文件 在/test1…

Dockerfile部署Java項目掛載使用外部配置文件

Dockerfile部署Java項目掛載使用外部配置文件 技術博客 http://idea.coderyj.com/ 需求是由于java項目使用的是nacos 而且每次部署nacos服務器ip不一樣導致要重新打包,想引入外部配置文件進行打包 1.需求是由于java項目使用的是nacos 而且每次部署nacos服務器ip不一樣導致要重新…

數據結構和算法專題---5、調度算法與應用

本章我們會對調度算法做個簡單介紹&#xff0c;包括常用的調度算法&#xff08;FCFS、SJF、RR、HPF&#xff09;的概述、實現方式、典型場景做個說明。 什么是調度算法 調度算法常見于操作系統中&#xff0c;因為系統資源有限&#xff0c;當有多個進程&#xff08;或多個進程…

Oracle 怎樣修改DB_NAME

DBNEWID 是一個數據庫實用程序&#xff0c;用于更改 Oracle 數據庫的 DBNAME 和 DBID。可以更改 DBID 或 DBNAME 或兩者。 DBNAME 是在創建數據庫時指定的數據庫名稱&#xff0c;DBID 是創建數據庫時分配給數據庫的唯一編號。 以下步驟演示如何使用 DBNEWID 實用程序更改 Oracl…

【論文閱讀筆記】序列數據的數據增強方法綜述

【論文閱讀筆記】序列數據的數據增強方法綜述 摘要 這篇論文探討了在深度學習模型中由于對精度的要求不斷提高導致模型框架結構變得更加復雜和深層的趨勢。隨著模型參數量的增加&#xff0c;訓練模型需要更多的數據&#xff0c;但人工標注數據的成本高昂&#xff0c;且由于客觀…

將RK3399的挖掘機開發板在Android10下設置系統默認為24小時制

將RK3399的挖掘機開發板在Android10下設置系統默認為24小時制 2023/12/9 22:07 應該也可以適用于RK3399的Android12系統 --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml -2…

MagicAnimate

簡介 新加坡國立大學 Show 實驗室和字節聯合做了一項類似的研究。他們提出了一個基于擴散的框架 MagicAnimate&#xff0c;旨在增強時間一致性、忠實地保留參考圖像并提升動畫保真度。并且&#xff0c;MagicAnimate 項目是開源的&#xff0c;目前推理代碼和 gradio 在線 demo …

python程序大全(9)——鼠標亂動惡搞小病毒(有資源)

目錄 &#x1f3c6;一、前言 &#x1f3c6;二、程序第一版 &#x1f3c6;三、程序大魔改 &#x1f6a9;1、基礎改動 &#x1f6a9;2、打包 &#x1f6a9;3、F12保護機制 &#x1f6a9;4、添加開機自啟項 &#x1f6a9;5、自己也不懂的線程魔改 &#x1f3c6;四、最終代碼 &…

排列游戲 --- 動態規劃 --- 題解

目錄 排列游戲 題目描述 輸入描述: 輸出描述: 輸入 輸出 備注: 思路&#xff1a; 代碼&#xff1a; 排列游戲 K-排列游戲_牛客競賽動態規劃專題班習題課 (nowcoder.com) 時間限制&#xff1a;C/C 1秒&#xff0c;其他語言2秒 空間限制&#xff1a;C/C 262144K&#…

外包干了三年,我承認我確實廢了……

沒錯&#xff0c;我也干過外包&#xff0c;一干就是三年&#xff0c;三年后&#xff0c;我廢了…… 雖說廢的不是很徹底&#xff0c;但那三年我幾乎是出差了三年、玩了三年、荒廢了三年&#xff0c;那三年&#xff0c;我的技術能力幾乎是零成長的。 說起這段三年的外包經歷&a…

vue中滾輪縮放事件

在Vue中&#xff0c;可以使用原生JS的滾輪事件監聽來實現滾輪縮放&#xff1a; 首先在模板中給需要監聽滾輪事件的元素添加一個ref屬性&#xff0c;用于在Vue中獲取元素節點。 <template><div ref"scale"><!-- 需要縮放的內容 --></div> &…

Ubuntu中編譯出Windows的可執行程序(.exe)

1、前言 在嵌入式開發中&#xff0c;交叉編譯是很常見的情況&#xff0c;如果你把Windows電腦也看做一塊高性能的開發板&#xff0c;那在Ubuntu中編譯出Windows上運行的可執行程序也是很好理解的行為。 2、安裝mingw64環境 sudo apt-get install mingw-w64 3、測試編譯鏈是否安…

【力扣100】5.盛水最多的容器

添加鏈接描述 我的題解&#xff1a; class Solution:def maxArea(self, height: List[int]) -> int:# 兩層for循環&#xff0c;保存最大值temp0res0for i in range(len(height)-1):for j in range(i1,len(height)):tempmin(height[i],height[j])*(j-i)# print(temp)resmax…

Linux壓縮命令tar之排除不需要的文件或者目錄(--exclude)

tar 中–exclude的簡單用法 # 首先創建一個如下的目錄結構和測試文件 mydir/ ├── myfile ├── zidir1 │ ├── file1 │ └── file2 ├── zidira │ └── filea └── zidirA├── fileA└── fileB3 directories, 6 files# 上面在 mydir 目錄下有三個子…

C++知識點總結(8):尺取法

尺取法 一、復習枚舉算法1. 算法三要素2. 最小公倍數公式3. 時間復雜度 二、算法優化初級1. 概念2. 例題(1) 最長小寫子串Ⅰ 初步算法Ⅱ 認識尺取法Ⅲ 尺取法程序 (2) 最長遞增子串(3) 最小子串和Ⅰ 偽代碼Ⅱ 完整代碼 (4) 最短字符串包含Ⅰ 偽代碼 Ⅱ 代碼 一、復習枚舉算法 …

打破常規思維:Scrapy處理豆瓣視頻下載的方式

概述 Scrapy是一個強大的Python爬蟲框架&#xff0c;它可以幫助我們快速地開發和部署各種類型的爬蟲項目。Scrapy提供了許多方便的功能&#xff0c;例如請求調度、數據提取、數據存儲、中間件、管道、信號等&#xff0c;讓我們可以專注于業務邏輯&#xff0c;而不用擔心底層的…

MongoDB簡介與安裝

目錄 1. MongoDB簡介 2. 安裝MongoDB 3. 基本命令行操作 4. Java代碼實踐 MongoDB是一種NoSQL數據庫&#xff0c;以其靈活的文檔存儲模型和高度可擴展性而聞名。這篇文章將簡單介紹一下MongoDB的基本概念&#xff0c;包括其特點和優勢&#xff0c;并提供安裝MongoDB的步驟。…

MapReduce的執行過程(以及其中排序)

Map階段(MapTask)&#xff1a; 切片(Split)-----讀取數據(Read)-------交給Mapper處理(Map)------分區和排序(sort) Reduce階段(ReduceTask): 拷貝數據(copy)------排序(sort)-----合并(reduce)-----寫出(write) 1、Map task讀取&#xff1a; 框架調用InputFormat類的子類讀取…

Vue2與Vue3的語法對比

Vue2與Vue3的語法對比 Vue.js是一款流行的JavaScript框架&#xff0c;通過它可以更加輕松地構建Web用戶界面。隨著Vue.js的不斷發展&#xff0c;Vue2的語法已經在很多應用中得到了廣泛應用。而Vue3于2020年正式發布&#xff0c;帶來了許多新的特性和改進&#xff0c;同時也帶來…

rpc原理與應用

IPC和RPC&#xff1f; RPC 而RPC&#xff08;Remote Procedure Call&#xff09;&#xff0c;又叫做遠程過程調用。它本身并不是一個具體的協議&#xff0c;而是一種調用方式。 gRPC 是 Google 最近公布的開源軟件&#xff0c;基于最新的 HTTP2.0 協議&#xff0c;并支持常見…