最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文帶你了解如何正確使用MyBatisPlus

 更新時(shí)間:2022年12月07日 08:55:48   作者:指北君  
在本篇文章中,我們獎(jiǎng)通過(guò)?MyBatis?Plus?來(lái)對(duì)一張表進(jìn)行?CRUD?操作,來(lái)看看是如何簡(jiǎn)化我們開(kāi)發(fā)的。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

本篇文章,我們通過(guò) MyBatis Plus 來(lái)對(duì)一張表進(jìn)行 CRUD 操作,來(lái)看看是如何簡(jiǎn)化我們開(kāi)發(fā)的。

1、創(chuàng)建測(cè)試表

創(chuàng)建 USER 表:

DROP?TABLE?IF?EXISTS?`user`;
CREATE?TABLE?`user`?(
??`ID`?int(11)?NOT?NULL,
??`USER_NAME`?varchar(32)?COLLATE?utf8mb4_bin?DEFAULT?NULL,
??`USER_AGE`?int(11)?DEFAULT?NULL,
??PRIMARY?KEY?(`ID`)
)?ENGINE=InnoDB?DEFAULT?CHARSET=utf8mb4?COLLATE=utf8mb4_bin;

向 USER 表中插入兩條數(shù)據(jù):

INSERT?INTO?`user`?VALUES?('1',?'IT可樂(lè)',?'18');
INSERT?INTO?`user`?VALUES?('2',?'YSOcean',?'22');

打開(kāi)表,發(fā)現(xiàn)有兩條數(shù)據(jù)了:

2、創(chuàng)建 Spring Boot 工程

通過(guò) IDEA 創(chuàng)建 Spring Boot 工程,如果不能連接 https://start.spring.io/ 網(wǎng)址,可以將網(wǎng)址變成 https://start.aliyun.com/ ,如下所示:

3、導(dǎo)入依賴

<dependency>
????<groupId>com.baomidou</groupId>
????<artifactId>mybatis-plus-boot-starter</artifactId>
????<version>3.3.2</version>
</dependency>
<dependency>
????<groupId>mysql</groupId>
????<artifactId>mysql-connector-java</artifactId>
????<scope>runtime</scope>
</dependency>????

首先mybatis-plus 我們導(dǎo)入最新版 3.3.2。另外,由于我數(shù)據(jù)采用的是 MySql,所以這里導(dǎo)入了 Mysql 的連接依賴。

另外,為了簡(jiǎn)化JavaBean 類的書(shū)寫,我這里額外導(dǎo)入一個(gè) lombok 插件依賴。

<dependency>
????<groupId>org.projectlombok</groupId>
????<artifactId>lombok</artifactId>
????<optional>true</optional>
</dependency>

通過(guò)這個(gè)依賴的相關(guān)注解,我們可以不用書(shū)寫繁瑣的 get/set 方法。

4、編寫數(shù)據(jù)庫(kù)配置文件

在 springboot 項(xiàng)目的 resource 目錄下,新建 application.yml 文件,添加如下內(nèi)容:

server:
??port:?8082

spring:
??datasource:
????url:?jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=UTF-8
????username:?root
????password:?root
????#?>=?6.x:?com.mysql.cj.jdbc.Driver
????#?<=?5.x:?com.mysql.jdbc.Driver
????driver-class-name:?com.mysql.cj.jdbc.Driver

注意:url里面填寫的 mybatisplus 是我的數(shù)據(jù)庫(kù)名稱,注意修改,username和password分別填寫自己的數(shù)據(jù)庫(kù)連接名稱和密碼。

5、編寫代碼

①、實(shí)體類User.java

@Getter
@Setter
public?class?User?{
????private?Long?id;

????private?String?userName;
????
????private?String?userAge;

}

②、創(chuàng)建UserMapper 接口

import?com.baomidou.mybatisplus.core.mapper.BaseMapper;
import?com.ys.mybatisplusstudy.entry.User;

public?interface?UserMapper?extends?BaseMapper<User>?{
}

③、啟動(dòng)類增加@MapperScan注解

@SpringBootApplication
@MapperScan("com.ys.mybatisplusstudy.mapper")
public?class?MybatisplusstudyApplication?{

????public?static?void?main(String[]?args)?{
????????SpringApplication.run(MybatisplusstudyApplication.class,?args);
????}

}

如果不想在啟動(dòng)類加 @MapperScan 注解,也可在每個(gè) Mapper 接口上增加 @Mapper 注解。

所有配置上面都以完成,是不是很簡(jiǎn)單,接下來(lái)我們對(duì)這張表進(jìn)行CRUD 測(cè)試。

6、CRUD 測(cè)試

我們?cè)诰帉?UserMapper 接口時(shí),其繼承了一個(gè) BaseMapper 接口:

public?interface?UserMapper?extends?BaseMapper<User>?{
}

我們進(jìn)入到 BaseMapper 內(nèi)部,發(fā)現(xiàn)其結(jié)構(gòu)如下:

這些方法便是我們常用的增刪改查了,下面我們分別演示幾個(gè)常用的。

①、insert:新增一條記錄

@SpringBootTest
class?MybatisplusstudyApplicationTests?{

????@Autowired
????private?UserMapper?userMapper;


????/**
?????*?新增一條記錄
?????*/
????@Test
????public?void?testInsert(){
????????User?user?=?new?User();
????????user.setId(3L);
????????user.setUserName("test?insert");
????????user.setUserAge("1");
????????int?insert?=?userMapper.insert(user);
????????System.out.println("影響記錄數(shù):"+insert);
????}

}

執(zhí)行完畢后,我們查看數(shù)據(jù)庫(kù):

②、delete:刪除記錄

/**

?*?根據(jù)id刪除一條記錄
???*/
???@Test
???public?void?testDeleteById(){
???int?num?=?userMapper.deleteById(3L);
???System.out.println("刪除的記錄數(shù)為:"+num);
???QueryWrapper?wrapper?=?new?QueryWrapper();
???wrapper.eq("id",3L);
???userMapper.delete(wrapper);
???}

/**

?*?構(gòu)造相關(guān)條件刪除記錄
???*/
???@Test
???public?void?testDelete(){
???QueryWrapper?wrapper?=?new?QueryWrapper();
???wrapper.eq("USER_NAME","test?insert");
???int?num?=?userMapper.delete(wrapper);
???System.out.println("刪除的記錄數(shù)為:"+num);
???}

③、update:修改記錄

/**

?*?根據(jù)id修改
???*/
???@Test
???public?void?testudpateById(){
???User?user?=?new?User();
???user.setId(3L);
???user.setUserName("test?update");
???int?num?=?userMapper.updateById(user);
???System.out.println("修改的記錄數(shù)為:"+num);
???}

④、select:查詢記錄

/**

?*?查詢User表所有記錄
???*/
???@Test
???public?void?testSelectAll(){
???List<User>?users?=?userMapper.selectList(null);
???users.forEach(x->?System.out.println(x.getId()+"-"+x.getUserName()+"-"+x.getUserAge()));
???}

/**

?*?查詢指定記錄
???*/
???@Test
???public?void?testSelectWrapper(){
???QueryWrapper?wrapper?=?new?QueryWrapper();
???wrapper.eq("user_name","IT可樂(lè)");
???List<User>?users?=?userMapper.selectList(wrapper);
???users.forEach(x->?System.out.println(x.getId()+"-"+x.getUserName()+"-"+x.getUserAge()));
???}

發(fā)現(xiàn)沒(méi)有,做增刪改查是如此的絲滑流暢,都不用寫SQL語(yǔ)句了。

當(dāng)然,這都只是單表的簡(jiǎn)單玩法,后面我們會(huì)介紹高階玩法。

7、打印SQL語(yǔ)句

這里補(bǔ)充一個(gè)小知識(shí)點(diǎn),通過(guò)如下配置,我們可以查看執(zhí)行的 SQL 語(yǔ)句日志。

在 applicatio.yml 文件中,進(jìn)行如下配置:

#?配置slq打印日志
mybatis-plus:
??configuration:
????log-impl:?org.apache.ibatis.logging.stdout.StdOutImpl

當(dāng)然,這種配置只是把 SQL 日志打印到控制臺(tái)便于我們調(diào)試,后面會(huì)介紹更加強(qiáng)大的 SQL 分析工具。

到此這篇關(guān)于一文帶你了解如何正確使用MyBatisPlus的文章就介紹到這了,更多相關(guān)MyBatisPlus使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用resty Quartz執(zhí)行定時(shí)任務(wù)的配置方法

    使用resty Quartz執(zhí)行定時(shí)任務(wù)的配置方法

    這篇文章主要為大家介紹了使用resty?Quartz來(lái)執(zhí)行定時(shí)任務(wù)的配置方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Java中內(nèi)存區(qū)域的劃分與異常詳解

    Java中內(nèi)存區(qū)域的劃分與異常詳解

    最近在看java虛擬相關(guān)知識(shí),把每天看到的一些內(nèi)容做一個(gè)歸納總結(jié),下面這篇文章主要給大家介紹了關(guān)于Java中內(nèi)存區(qū)域的劃分與異常的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧
    2018-06-06
  • Java定時(shí)器Timer與TimerTask的使用詳解

    Java定時(shí)器Timer與TimerTask的使用詳解

    這篇文章主要介紹了Java定時(shí)器Timer與TimerTask的使用詳解,在JDK類庫(kù)中Timer主要負(fù)責(zé)計(jì)劃任務(wù)的功能,也就是在指定時(shí)間執(zhí)行某一任務(wù),執(zhí)行時(shí)候會(huì)在主線程之外起一個(gè)單獨(dú)的線程執(zhí)行指定的任務(wù),該類主要是設(shè)置任務(wù)計(jì)劃,但封裝的類是TimerTask類,需要的朋友可以參考下
    2023-10-10
  • java二進(jìn)制運(yùn)算基礎(chǔ)知識(shí)點(diǎn)詳解

    java二進(jìn)制運(yùn)算基礎(chǔ)知識(shí)點(diǎn)詳解

    在本文里小編給大家分享了關(guān)于java二進(jìn)制運(yùn)算基礎(chǔ)知識(shí)點(diǎn)以及實(shí)例代碼內(nèi)容,需要的朋友們參考學(xué)習(xí)下。
    2019-08-08
  • Java Comparable 和 Comparator 的詳解及區(qū)別

    Java Comparable 和 Comparator 的詳解及區(qū)別

    這篇文章主要介紹了Java Comparable 和 Comparator 的詳解及區(qū)別的相關(guān)資料,Comparable 自然排序和Comparator 定制排序的實(shí)例,需要的朋友可以參考下
    2016-12-12
  • SpringCloud?Gateway詳細(xì)分析實(shí)現(xiàn)負(fù)載均衡與熔斷和限流

    SpringCloud?Gateway詳細(xì)分析實(shí)現(xiàn)負(fù)載均衡與熔斷和限流

    這篇文章主要介紹了SpringCloud?Gateway實(shí)現(xiàn)路由轉(zhuǎn)發(fā),負(fù)載均衡,熔斷和限流,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Spring注解方式無(wú)法掃描Service注解的解決

    Spring注解方式無(wú)法掃描Service注解的解決

    這篇文章主要介紹了Spring注解方式無(wú)法掃描Service注解的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Mybatis-Plus中update()和updateById()將字段更新為null

    Mybatis-Plus中update()和updateById()將字段更新為null

    本文主要介紹了Mybatis-Plus中update()和updateById()將字段更新為null,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • java中l(wèi)ong(Long)與int(Integer)之間的轉(zhuǎn)換方式

    java中l(wèi)ong(Long)與int(Integer)之間的轉(zhuǎn)換方式

    這篇文章主要介紹了java中l(wèi)ong(Long)與int(Integer)之間的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Java之String、StringBuffer、StringBuilder的區(qū)別分析

    Java之String、StringBuffer、StringBuilder的區(qū)別分析

    今天搞安卓在看書(shū)的時(shí)候遇到了StringBuilder這個(gè)類型的東東,有點(diǎn)小迷,不知道它跟string、stringbuffer的關(guān)系式怎么樣的,趕快查閱相關(guān)資料,了解了個(gè)大概,拿出來(lái)分享一下
    2012-11-11

最新評(píng)論

汉沽区| 绥阳县| 磴口县| 平远县| 井研县| 铜山县| 盐源县| 南和县| 伊通| 政和县| 沾益县| 三河市| 莱阳市| 盐津县| 芒康县| 油尖旺区| 宁夏| 麦盖提县| 财经| 军事| 南投县| 永泰县| 从江县| 昭苏县| 安宁市| 广元市| 上杭县| 宁化县| 霍邱县| 永嘉县| 晋江市| 庆城县| 重庆市| 溆浦县| 遵化市| 耿马| 永昌县| 江永县| 右玉县| 天祝| 沾化县|