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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

MyBatis Plus如何簡化開發(fā)

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-10-09 15:08 ? 次閱讀

本篇文章,我們通過 MyBatis Plus 來對一張表進行 CRUD 操作,來看看是如何簡化我們開發(fā)的。

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

創(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可樂', '18');
INSERT INTO `user` VALUES ('2', 'YSOcean', '22');

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

圖片

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

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

圖片

3、導入依賴

< 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 我們導入最新版 3.4.3.2。另外,由于我數(shù)據(jù)采用的是 MySql,所以這里導入了 Mysql 的連接依賴。

另外,為了簡化JavaBean 類的書寫,我這里額外導入一個 lombok 插件依賴。

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

通過這個依賴的相關注解,我們可以不用書寫繁瑣的 get/set 方法。

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

在 springboot 項目的 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ù)庫名稱,注意修改,username和password分別填寫自己的數(shù)據(jù)庫連接名稱和密碼。

5、編寫代碼

①、實體類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 > {
}

③、啟動類增加@MapperScan注解

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

如果不想在啟動類加 @MapperScan 注解,也可在每個 Mapper 接口上增加 @Mapper 注解。

所有配置上面都已完成,是不是很簡單,接下來我們對這張表進行CRUD 測試。

6、CRUD 測試

我們在編寫 UserMapper 接口時,其繼承了一個 BaseMapper 接口:

public interface UserMapper extends BaseMapper< User > {
}

我們進入到 BaseMapper 內(nèi)部,發(fā)現(xiàn)其結構如下:

圖片

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

①、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ù)庫:

圖片

②、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);
}
 
/**
 * 構造相關條件刪除記錄
 */
@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可樂");
    List< User > users = userMapper.selectList(wrapper);
    users.forEach(x- > System.out.println(x.getId()+"-"+x.getUserName()+"-"+x.getUserAge()));
}

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

當然,這都只是單表的簡單玩法,后面我們會介紹高階玩法。

7、打印SQL語句

這里補充一個小知識點,通過如下配置,我們可以查看執(zhí)行的 SQL 語句日志。

在 applicatio.yml 文件中,進行如下配置:

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

執(zhí)行效果如下:

圖片

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

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

    關注

    8

    文章

    6756

    瀏覽量

    88614
  • 開發(fā)
    +關注

    關注

    0

    文章

    359

    瀏覽量

    40769
  • 網(wǎng)址
    +關注

    關注

    2

    文章

    12

    瀏覽量

    6972
  • mybatis
    +關注

    關注

    0

    文章

    58

    瀏覽量

    6693
收藏 人收藏

    評論

    相關推薦

    mybatis plus的常規(guī)用法

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

    LDO簡化開關電源的設計

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

    如何簡化開關電源設計

    如何簡化開關電源設計
    發(fā)表于 01-14 11:12 ?9次下載

    如何使用Myeclipse進行java可視化開發(fā)

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

    一篇讓你熟練掌握 MyBatis-Plus!

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

    Mybatis-Plus Mybatis增強工具包

    ./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>增強工具包

    MyBatis-Plus的使用與測試

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

    Fluent Mybatis、原生MybatisMybatis Plus對比

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

    SpringBoot中MybatisX插件的簡單使用教程

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

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

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

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

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

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

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

    CRUD如何簡化開發(fā)

    本篇文章,我們通過 MyBatis Plus 來對一張表進行 CRUD 操作,來看看是**如何簡化我們開發(fā)的****。 1、創(chuàng)建測試表 創(chuàng)建 USER 表: DROP TABLE IF
    的頭像 發(fā)表于 09-25 15:43 ?435次閱讀
    CRUD如何<b class='flag-5'>簡化開發(fā)</b>

    mybatis和mybatisplus的區(qū)別

    個輕量級的持久層框架,它提供了一個靈活的SQL映射機制,使得開發(fā)者可以編寫原生SQL語句來操作數(shù)據(jù)庫。MyBatis的設計目標是將原生SQL和對象關系映射(ORM)相結合,以便開發(fā)者可以靈活地操作數(shù)據(jù)庫。 而
    的頭像 發(fā)表于 12-03 11:53 ?2374次閱讀

    mybatis框架的主要作用

    。MyBatis框架的主要作用包括以下幾個方面。 數(shù)據(jù)庫操作的簡化和標準化: MyBatis框架提供了一種簡單的方式來執(zhí)行數(shù)據(jù)庫操作,包括插入、更新、刪除和查詢等操作。通過使用MyBatis
    的頭像 發(fā)表于 12-03 14:49 ?1882次閱讀