RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MyBatis Plus如何簡(jiǎn)化開(kāi)發(fā)

科技綠洲 ? 來(lái)源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-10-09 15:08 ? 次閱讀

本篇文章,我們通過(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)入依賴(lài)

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

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

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

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

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

4、編寫(xiě)數(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里面填寫(xiě)的 mybatisplus 是我的數(shù)據(jù)庫(kù)名稱(chēng),注意修改,username和password分別填寫(xiě)自己的數(shù)據(jù)庫(kù)連接名稱(chēng)和密碼。

5、編寫(xiě)代碼

①、實(shí)體類(lèi)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)類(lèi)增加@MapperScan注解

@SpringBootApplication
@MapperScan("com.ys.mybatisplusstudy.mapper")
public class MybatisplusstudyApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(MybatisplusstudyApplication.class, args);
    }
 
}

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

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

6、CRUD 測(cè)試

我們?cè)诰帉?xiě) 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:查詢(xún)記錄

/**
 * 查詢(xún)User表所有記錄
 */
@Test
public void testSelectAll(){
    List< User > users = userMapper.selectList(null);
    users.forEach(x- > System.out.println(x.getId()+"-"+x.getUserName()+"-"+x.getUserAge()));
}
 
/**
 * 查詢(xún)指定記錄
 */
@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)有,做增刪改查是如此的絲滑流暢,都不用寫(xiě)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

執(zhí)行效果如下:

圖片

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7002

    瀏覽量

    88941
  • 開(kāi)發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    370

    瀏覽量

    40836
  • 網(wǎng)址
    +關(guān)注

    關(guān)注

    2

    文章

    12

    瀏覽量

    6982
  • mybatis
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    6709
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    mybatis plus的常規(guī)用法

    上篇文章我們介紹過(guò)通過(guò) Mybatis Plus 進(jìn)行增刪改查,如下這段代碼: /** * 根據(jù)id修改 * UPDATE user SET user_name=?, user_age
    的頭像 發(fā)表于 09-25 15:06 ?903次閱讀
    <b class='flag-5'>mybatis</b> <b class='flag-5'>plus</b>的常規(guī)用法

    LDO簡(jiǎn)化開(kāi)關(guān)電源的設(shè)計(jì)

        1. 簡(jiǎn)化開(kāi)關(guān)電源設(shè)計(jì)    開(kāi)關(guān)電源多路輸出一般通過(guò)增加高頻變壓器反饋端來(lái)實(shí)現(xiàn),這使得開(kāi)關(guān)電源在設(shè)計(jì)過(guò)程中增加了設(shè)計(jì)者的工作量。應(yīng)用LDO作為開(kāi)關(guān)電源的輸出終端,可以極大地簡(jiǎn)化開(kāi)
    發(fā)表于 10-29 09:25

    如何簡(jiǎn)化開(kāi)關(guān)電源設(shè)計(jì)

    如何簡(jiǎn)化開(kāi)關(guān)電源設(shè)計(jì)
    發(fā)表于 01-14 11:12 ?9次下載

    如何使用Myeclipse進(jìn)行java可視化開(kāi)發(fā)

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用Myeclipse進(jìn)行java可視化開(kāi)發(fā)。實(shí)現(xiàn)Java的可視化開(kāi)發(fā)
    發(fā)表于 01-10 10:38 ?5次下載
    如何使用Myeclipse進(jìn)行java可視<b class='flag-5'>化開(kāi)發(fā)</b>

    一篇讓你熟練掌握 MyBatis-Plus

    MyBatis-plus 是一款 Mybatis 增強(qiáng)工具,用于簡(jiǎn)化開(kāi)發(fā),提高效率。下文使用縮寫(xiě) mp來(lái)簡(jiǎn)化表示 MyBatis-plus,
    的頭像 發(fā)表于 06-01 09:30 ?2600次閱讀
    一篇讓你熟練掌握 <b class='flag-5'>MyBatis-Plus</b>!

    Mybatis-Plus Mybatis增強(qiáng)工具包

    ./oschina_soft/gitee-mybatis-plus.zip
    發(fā)表于 06-13 11:34 ?1次下載
    <b class='flag-5'>Mybatis-Plus</b> <b class='flag-5'>Mybatis</b>增強(qiáng)工具包

    MyBatis-Plus的使用與測(cè)試

    本文主要介紹mybatis-plus這款插件,針對(duì)springboot用戶(hù)。包括引入,配置,使用,以及擴(kuò)展等常用的方面做一個(gè)匯總整理,盡量包含大家常用的場(chǎng)景內(nèi)容。
    的頭像 發(fā)表于 08-22 11:56 ?1311次閱讀

    Fluent Mybatis、原生MybatisMybatis Plus對(duì)比

    mapper中再組裝參數(shù)。那對(duì)比原生Mybatis, Mybatis Plus或者其他框架,F(xiàn)luentMybatis提供了哪些便利呢?
    的頭像 發(fā)表于 09-15 15:41 ?1430次閱讀

    SpringBoot中MybatisX插件的簡(jiǎn)單使用教程

    MybatisX 是一款基于 IDEA 的快速開(kāi)發(fā)插件,方便在使用mybatis以及mybatis-plus開(kāi)始時(shí)簡(jiǎn)化繁瑣的重復(fù)操作,提高開(kāi)發(fā)
    的頭像 發(fā)表于 02-21 09:49 ?1284次閱讀

    MyBatis-Plus為什么不支持聯(lián)表

    MyBatis Plus Join`一款專(zhuān)門(mén)解決MyBatis Plus 關(guān)聯(lián)查詢(xún)問(wèn)題的擴(kuò)展框架,他并不一款全新的框架,而是基于`MyBatis
    的頭像 發(fā)表于 02-28 15:19 ?2451次閱讀
    <b class='flag-5'>MyBatis-Plus</b>為什么不支持聯(lián)表

    介紹一款基于Mybatis-Plus的代碼自助生成器

    在基于Mybatis開(kāi)發(fā)模式中,很多開(kāi)發(fā)者還會(huì)選擇Mybatis-Plus來(lái)輔助功能開(kāi)發(fā),以此提高開(kāi)發(fā)
    的頭像 發(fā)表于 05-23 14:16 ?1139次閱讀
    介紹一款基于<b class='flag-5'>Mybatis-Plus</b>的代碼自助生成器

    如何調(diào)優(yōu)MyBatis 25倍性能

    最近在壓測(cè)一批接口,發(fā)現(xiàn)接口處理速度慢的有點(diǎn)超出預(yù)期,感覺(jué)很奇怪,后面定位發(fā)現(xiàn)是數(shù)據(jù)庫(kù)批量保存這塊很慢。 這個(gè)項(xiàng)目用的是 mybatis-plus,批量保存直接用的是 mybatis-plus 提供的 saveBatch。 我點(diǎn)進(jìn)去看了下源碼,感覺(jué)有點(diǎn)不太對(duì)勁
    的頭像 發(fā)表于 05-30 09:56 ?599次閱讀
    如何調(diào)優(yōu)<b class='flag-5'>MyBatis</b> 25倍性能

    CRUD如何簡(jiǎn)化開(kāi)發(fā)

    本篇文章,我們通過(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
    的頭像 發(fā)表于 09-25 15:43 ?495次閱讀
    CRUD如何<b class='flag-5'>簡(jiǎn)化開(kāi)發(fā)</b>

    mybatis和mybatisplus的區(qū)別

    個(gè)輕量級(jí)的持久層框架,它提供了一個(gè)靈活的SQL映射機(jī)制,使得開(kāi)發(fā)者可以編寫(xiě)原生SQL語(yǔ)句來(lái)操作數(shù)據(jù)庫(kù)。MyBatis的設(shè)計(jì)目標(biāo)是將原生SQL和對(duì)象關(guān)系映射(ORM)相結(jié)合,以便開(kāi)發(fā)者可以靈活地操作數(shù)據(jù)庫(kù)。 而
    的頭像 發(fā)表于 12-03 11:53 ?2546次閱讀

    mybatis框架的主要作用

    。MyBatis框架的主要作用包括以下幾個(gè)方面。 數(shù)據(jù)庫(kù)操作的簡(jiǎn)化和標(biāo)準(zhǔn)化: MyBatis框架提供了一種簡(jiǎn)單的方式來(lái)執(zhí)行數(shù)據(jù)庫(kù)操作,包括插入、更新、刪除和查詢(xún)等操作。通過(guò)使用MyBatis
    的頭像 發(fā)表于 12-03 14:49 ?2023次閱讀
    RM新时代网站-首页