激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - MyBatis-Plus使用ActiveRecord(AR)實現CRUD

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

2021-09-27 09:20張起靈-小哥 Java教程

本文將結合實例代碼,介紹MyBatis-Plus使用ActiveRecord(AR)實現CRUD,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧

1.什么是ActiveRecord(AR)?

ActiveRecord 是什么:

  • 每一個數據庫表應該對應創建一個實體類,類的每一個對象的實例對應于數據庫中表的一行記錄; 通常表的每個字段在類中都有相應的方法Field;
  • ActiveRecord 負責把自己持久化. 在 ActiveRecord 中封裝了對數據庫的訪問,通過對象自己實現 CRUD,實現優雅的數據庫操作。
  • ActiveRecord 也封裝了部分業務邏輯??梢宰鳛闃I務對象使用。

2.通過AR實現CRUD

首先創建一張表。

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

創建一個SpringBoot工程,在pom文件中添加依賴。

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter</artifactId>
  4. </dependency>
  5.  
  6. <dependency>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-test</artifactId>
  9. <scope>test</scope>
  10. </dependency>
  11.  
  12. <dependency>
  13. <groupId>mysql</groupId>
  14. <artifactId>mysql-connector-java</artifactId>
  15. <scope>runtime</scope>
  16. <version>5.1.9</version>
  17. </dependency>
  18.  
  19. <dependency>
  20. <groupId>com.baomidou</groupId>
  21. <artifactId>mybatis-plus-boot-starter</artifactId>
  22. <version>3.0.5</version>
  23. </dependency>

在核心配置文件中,配置數據庫相關的連接信息。

  1. #配置數據庫的相關連接信息
  2. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  3. spring.datasource.url=jdbc:mysql://localhost:3306/springdb?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
  4. spring.datasource.username=root
  5. spring.datasource.password=12345678
  6.  
  7. #配置對應的日志信息
  8. mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

創建一個實體類,要使用AR,那么實體類就必須繼承MP框架中的Model這個類。

  1. package com.szh.mybatisplus.entity;
  2.  
  3. import com.baomidou.mybatisplus.annotation.IdType;
  4. import com.baomidou.mybatisplus.annotation.TableId;
  5. import com.baomidou.mybatisplus.extension.activerecord.Model;
  6.  
  7. /**
  8. * 使用AR,要求實體類必須繼承MP框架中的Model類
  9. * Model類中提供了數據庫相關的CRUD操作
  10. */
  11. public class Dept extends Model<Dept> {
  12.  
  13. @TableId(value = "id",type = IdType.AUTO)
  14. private Integer id;
  15. private String name;
  16. private String mobile;
  17. private Integer manager;
  18.  
  19. //getter and setter
  20. //toString
  21. }

可以從Model類的源碼中看到,這其中定義了大量關于CRUD操作的方法。

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

創建一個mapper接口。這里雖然不使用 mapper,但也需要定義這個它,MP 通過 mapper 獲取到表的結構;不定義時,MP 報錯無法獲取表的結構信息。

  1. package com.szh.mybatisplus.mapper;
  2.  
  3. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4. import com.szh.mybatisplus.entity.Dept;
  5.  
  6. /**
  7. *
  8. */
  9. public interface DeptMapper extends BaseMapper<Dept> {
  10. }

在SpringBoot項目的啟動入口類上方,添加@MapperScan注解,確??梢話呙璧組yBatis、MP下的相關注解。

  1. package com.szh.mybatisplus;
  2.  
  3. import org.mybatis.spring.annotation.MapperScan;
  4. import org.springframework.boot.SpringApplication;
  5. import org.springframework.boot.autoconfigure.SpringBootApplication;
  6.  
  7. @SpringBootApplication
  8. @MapperScan(value = "com.szh.mybatisplus.mapper")
  9. public class Application {
  10.  
  11. public static void main(String[] args) {
  12. SpringApplication.run(Application.class, args);
  13. }
  14.  
  15. }

1.1 insert

  1. @Test
  2. void testDeptInsert() {
  3. Dept dept=new Dept();
  4. dept.setName("銷售部");
  5. dept.setMobile("12345678900");
  6. dept.setManager(1);
  7.  
  8. //調用實體類對象自己的方法,完成對象自身到數據庫的添加操作
  9. boolean flag=dept.insert();
  10. System.out.println("insert的結果:" + flag);
  11. }

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

1.2 update

  1. @Test
  2. void testDeptUpdate() {
  3. Dept dept=new Dept();
  4. dept.setId(1);
  5. dept.setName("研發部");
  6. dept.setMobile("99999999999");
  7. dept.setManager(2);
  8.  
  9. //調用實體類對象自己的方法,完成對象自身到數據庫的更新操作
  10. boolean flag=dept.updateById();
  11. System.out.println("update的結果:" + flag);
  12. }

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

1.3 delete

  1. @Test
  2. void testDeptDelete() {
  3. Dept dept=new Dept();
  4. boolean result = dept.deleteById(2);
  5. System.out.println("delete的結果:" + result);
  6. }

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

  1. @Test
  2. void testDeptDelete2() {
  3. Dept dept=new Dept();
  4. dept.setId(2);
  5. boolean result = dept.deleteById();
  6. System.out.println("delete的結果:" + result);
  7. }

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

1.4 select

  1. @Test
  2. void testSelect() {
  3. Dept dept=new Dept();
  4. dept.setId(3);
  5. Dept dept1 = dept.selectById();
  6. System.out.println("select的結果:" + dept1);
  7. }

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

  1. @Test
  2. void testSelect2() {
  3. Dept dept=new Dept();
  4. Dept dept1 = dept.selectById(3);
  5. System.out.println("select的結果:" + dept1);
  6. }

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

  1. @Test
  2. void testSelect3() {
  3. Dept dept=new Dept();
  4. List<Dept> deptList=dept.selectAll();
  5. deptList.forEach( dept1 -> {
  6. System.out.println(dept1);
  7. });
  8. }

MyBatis-Plus使用ActiveRecord(AR)實現CRUD

到此這篇關于MyBatis-Plus使用ActiveRecord(AR)實現CRUD的文章就介紹到這了,更多相關MyBatis-Plus實現CRUD內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_43823808/article/details/118405197

延伸 · 閱讀

精彩推薦
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7472021-02-04
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
主站蜘蛛池模板: 99久久久精品免费观看国产 | 精品一区二区在线观看视频 | 国产黄色一区二区 | 久久人体 | 欧美黄色小视频 | 久久密 | 日本中文字幕久久 | 国产在线欧美 | 午夜精品久久久久久毛片 | www.91sese| 婷婷久久网| 久草在线精品观看 | 成人国产精品一区 | 国产精品久久久毛片 | 91av在线免费观看 | 黑人日比视频 | 在线看小早川怜子av | 中文字幕在线不卡视频 | 成人超碰 | 成人免费一区二区三区在线观看 | 精品久久久久久久久久久久久久久久久久久 | 精品无吗乱吗av国产爱色 | 久久久久久久高清 | 日韩在线观看视频一区二区三区 | 91精品国产乱码久 | 久久国产精品久久久久久久久久 | 日韩视频不卡 | 一级大片一级一大片 | 狠狠色成色综合网 | 免费淫视频 | 亚洲精品a级 | 一级在线免费观看视频 | 免费av网站观看 | 日韩大片在线永久观看视频网站免费 | 日日操日日操 | 黄色a级片视频 | 国产在线精品区 | 爱操影视| 羞羞的视频免费观看 | 久久国产一二区 | 日韩在线高清 |