在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

CRUD如何簡化開發

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

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

1、創建測試表

創建 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 表中插入兩條數據:

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

打開表,發現有兩條數據了:

圖片

2、創建 Spring Boot 工程

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

圖片

3、導入依賴

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

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

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

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

4、編寫數據庫配置文件

在 springboot 項目的 resource 目錄下,新建 application.yml 文件,添加如下內容:

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 是我的數據庫名稱,注意修改,username和password分別填寫自己的數據庫連接名稱和密碼。

5、編寫代碼

①、實體類User.java

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

    private String userName;
    
    private String userAge;

}

②、創建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 內部,發現其結構如下:

圖片

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

①、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("影響記錄數:"+insert);
    }

}

執行完畢后,我們查看數據庫:

圖片

②、delete:刪除記錄

/**

 * 根據id刪除一條記錄
   */
   @Test
   public void testDeleteById(){
   int num = userMapper.deleteById(3L);
   System.out.println("刪除的記錄數為:"+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("刪除的記錄數為:"+num);
   }

③、update:修改記錄

/**

 * 根據id修改
   */
   @Test
   public void testudpateById(){
   User user = new User();
   user.setId(3L);
   user.setUserName("test update");
   int num = userMapper.updateById(user);
   System.out.println("修改的記錄數為:"+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()));
   }

發現沒有,做增刪改查是如此的絲滑流暢,都不用寫SQL語句了。

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

7、打印SQL語句

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

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

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

圖片

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7102

    瀏覽量

    89275
  • 開發
    +關注

    關注

    0

    文章

    370

    瀏覽量

    40877
  • 工程
    +關注

    關注

    0

    文章

    166

    瀏覽量

    27894
  • spring
    +關注

    關注

    0

    文章

    340

    瀏覽量

    14362
收藏 人收藏

    評論

    相關推薦

    基于ORM的CRUD操作流程概述

    基于ORM的CRUD
    發表于 07-12 14:16

    如何設計一個MiniGUI可視化開發工具?

    本文設計了一個MiniGUI可視化開發工具,并使用Eclipse GEF(Graphical Editing Framework)實現。
    發表于 04-27 06:27

    LDO簡化開關電源的設計

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

    可控硅整流器簡化開了單穩態線圈激勵器電路圖

    可控硅整流器簡化開了單穩態線圈激勵器電路圖
    發表于 07-03 13:57 ?521次閱讀
    可控硅整流器<b class='flag-5'>簡化開</b>了單穩態線圈激勵器電路圖

    采用GEF的MiniGUI的可視化開發工具技術

    采用GEF的MiniGUI的可視化開發工具技術 1  概  述隨著嵌入式系統的廣泛應用,圖形用戶界面(Graphi
    發表于 04-16 15:10 ?771次閱讀
    采用GEF的MiniGUI的可視<b class='flag-5'>化開發</b>工具技術

    圖形化開發環境LabView中文版

    電子發燒友網站提供《圖形化開發環境LabView中文版.rar》資料免費下載
    發表于 07-14 17:39 ?0次下載

    如何簡化開關電源設計

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

    NI LabVIEW圖形化開發環境與NI硬件平臺,開發無人駕駛賽車

    使用NI LabVIEW圖形化開發環境與NI硬件平臺對智能車進行快速開發、測試以及原型,從而贏得挑戰賽。
    發表于 07-19 11:22 ?1544次閱讀

    利用IoT三大核心簡化開發

    這些框架,最大程度地實現應用互操作性。 以此為基礎 我們正在利用幾乎適合任何環境的明確策略和獨特技術,推動IoT開發。另外,Qualcomm開發者網絡還提供一整套學習資源,幫助您簡化設備和應用
    發表于 09-18 19:21 ?202次閱讀

    如何使用Myeclipse進行java可視化開發

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

    數據可視化開發平臺PageNow上線了

    PageNow是一款基于SpringBoot+Vue構建的數據可視化開發平臺。
    的頭像 發表于 03-02 08:53 ?3672次閱讀

    21489圖形化開發詳解:Fireware的燒寫與直通

    本文介紹ADI SHARC DSP圖形化開發,在一般我們都是使用vdsp++進行c語言開發的,但其實adsp 21489也可以進行圖形化開發,使用sigmastudio,非常簡單和方便。 圖形
    的頭像 發表于 08-27 15:14 ?7202次閱讀
    21489圖形<b class='flag-5'>化開發</b>詳解:Fireware的燒寫與直通

    JavaScript模塊化開發實驗---webpack入門

    JavaScript模塊化開發實驗---webpack入門(現代電源技術試題及答案)-文檔為JavaScript模塊化開發實驗---webpack入門總結文檔,是一份不錯的參考資料,感興趣的可以下載看看,,,,,,,,,,,,,
    發表于 09-17 14:49 ?7次下載
    JavaScript模塊<b class='flag-5'>化開發</b>實驗---webpack入門

    MyBatis Plus如何簡化開發

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

    Arm推出GitHub平臺AI工具,簡化開發者AI應用開發部署流程

    軟件提供了無縫的開發體驗。 GitHub Actions、原生 GitHub 運行器和基于 Arm 平臺的 AI 框架相結合,幫助全球 2,000 萬開發簡化 AI 應用開發
    的頭像 發表于 10-31 18:51 ?2583次閱讀
    主站蜘蛛池模板: 日本精品一在线观看视频| 亚洲福利视频网站| 亚洲欧美日韩特级毛片| 奇米影视99| 五月天婷婷亚洲| 国产成都一二三四区| 国产精品99r8免费视频2022| 大尺度在线| 亚洲第一在线播放| 日日干天天草| 8天堂资源在线| 亚洲一区在线视频观看| 亚洲性夜| 91婷婷色涩涩| 2021最新久久久视精品爱| 2018国产精品| 91免费在线视频| xxx久久| 四虎黄色网址| 午夜色视频| 日本免费三级网站| 狠狠躁夜夜躁人人爽天天段 | 国产小毛片| 噜噜色网| 你懂的在线免费观看| 日本五十交尾在线观看| 美女黄视频免费| free性欧美video| 大量真实偷拍情侣视频野战| 天天视频观看| 天天夜夜爽| 公妇乱淫日本免费观看| 日本在线视频二区| 手机毛片| 丁香花五月婷婷| 免费观看在线aa| 亚洲综合资源| 涩999| 福利天堂| 动漫精品成人免费网站| 国产成人系列|