国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務器之家 - 編程語言 - Java教程 - 如何使用MyBatis Plus實現數據庫curd操作

如何使用MyBatis Plus實現數據庫curd操作

2022-01-19 10:42我永遠信仰 Java教程

MyBatis-Plus是一個MyBatis 的增強工具,在MyBatis,的基礎上只做增強不做改變,為簡化開發、提高效率而生。 這篇文章主要介紹了MyBatis Plus實現數據庫curd操作,需要的朋友可以參考下

MyBatis-Plus實現數據庫curd操作

 

1.mp是什么

  1. MyBatis-Plus(簡稱MP)是一個MyBatis 的增強工具,在MyBatis,的基礎上只做增強不做改變,為簡化開發、提高效率而生。
  2. 潤物無聲,
  3. 只做增強不做改變,引入它不會對現有工程產生影響,如絲般順滑。
  4. 效率至上,
  5. 只需簡單配置,即可快速進行CRUD操作,從而節省大量時間。
  6. 豐富功能
  7. 熱加載、代碼生成、分頁、性能分析等功能一應俱全。

mp實現添加修改刪除查詢

mp自動填充樂觀鎖

mp邏輯刪除

mp分頁查詢

 

2、mp入門

CREATE TABLE `user` (
`id` bigint NOT NULL COMMENT '主鍵ID',
`name` varchar(30) DEFAULT NULL COMMENT '姓名',
`age` int DEFAULT NULL COMMENT '年齡',
`email` varchar(50) DEFAULT NULL COMMENT '郵箱',
PRIMARY KEY (`id`)
)

INSERT INTO `user`(`id`,`name`,`age`,`email`) VALUES
(1,'Jone',18,'test1@baomidou.com'),
(2,'Jack',20,'test2@baomidou.com'),
(3,'Tom',28,'test3@baomidou.com'),
(4,'Sandy',21,'test4@baomidou.com'),
(5,'Billie',24,'test5@baomidou.com');

sprinboot版本 2. 2.1

如何使用MyBatis Plus實現數據庫curd操作

引入相關依賴

<!--mp-->
<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.4.2</version>
</dependency>
<!--mysql-->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok-->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
</dependency>

下載好lombok插件

配置數據庫信息

創建實體類User

創建對應的Mapper

繼承BaseMapper,里面封裝了常用的增刪查改方法

在啟動類上增加掃描該mapper的路徑。因為是該接口動態生成的,默認掃描不到、

@Autowired 對類成員變量、方法及構造函數進行標注,完成自動裝配的工作。

通過 @Autowired的使用來消除 set ,get方法

@Repository、@Service、@Controller 和 @Component 將類標識為Bean

@Repository(“名稱”):dao層
@Service(“名稱”):service層
@Controller(“名稱”):web層

#mybatis日志  開啟
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

MP主鍵策略

如何使用MyBatis Plus實現數據庫curd操作

ASSIGN_ID默認生成19位 (根據符號位,時間戳、、、等等生成,百度)auto:自動增長

默認開啟ASSIGN_ID

#全局設置主鍵生成策略
mybatis-plus.global-config.db-config.id-type=auto

2.1、curd

查找

void findAll() {
  List<User> users = userMapper.selectList(null);
  users.forEach(System.out::println);
}

增加

void addUser(){
  User user = new User(12L, "黎明", 23, "592923@qq.com");
  int insert = userMapper.insert(user); //影響行數
  System.out.println(insert);
}

修改

public void upData(){
  User user = new User();
  user.setId(12L);
  user.setName("hhha");
  int i = userMapper.updateById(user);
  System.out.println("影響行數"+i);
}

2.2、自動填充

字段賦值的時候需要set

增加兩個字段,對應的實體類也增加

@TableField(fill = FieldFill.INSERT)
private Data createTime;

@TableField(fill = FieldFill.INSERT_UPDATE)
private Data updateTime;

新建一個類不要忘記添加注解將它交給Spring管理

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
  //實現兩個方法,自動填充增加、修改
}

 

3、樂觀鎖

3.1、場景

主要適用場景:當要更新一條記錄的時候,希望這條記錄沒有被別人更新,也就是說實現線程安全的數據更新

解決丟失更新的問題。(可重復讀,解決了不可重復讀,隔離性第三級別,Mysql默認)

樂觀鎖實現方式:

取出記錄時,獲取當前versione更新時,帶上這個versionv

執行更新時,set version = newexsion where version = oldVersion

如果version不對,就更新失敗

提交后修改版本號,另一個提交時,會先檢查版本號和獲取時是否一樣,不一樣提交失敗,一樣提交成功。

MP實現樂觀鎖。

1.顯然,需要在表中加上字段version,實體類也是

添加注解@Version即可

3.配置樂觀鎖插件,Spring Boot創建一個配置類

添加配置注解,添加掃描,創建一個樂觀鎖插件

@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
  return new OptimisticLockerInterceptor();
}

 

4、MP查詢

4.1、多個ID批量查詢

selectBatchIds():Batch 批量

@Test
public void select1() {
  List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));
  for (User user : users) {
      System.out.println(user);
  }
}

4.2、簡單條件查詢(Map)

public void select2(){
  Map<String, Object> columnMap = new HashMap<>();
  columnMap.put("name", "Jack");
  columnMap.put("age", "20");
  List<User> users = userMapper.selectByMap(columnMap);
  System.out.println(users);
}

value的屬性 不對應數據庫中的也能查詢到

4.3、分頁查詢

邏輯

如何使用MyBatis Plus實現數據庫curd操作

public void selectPage() {
  Page<User> page = new Page<>(1,3);
  Page<User> userPage = userMapper.selectPage(page,null);
  long pages = userPage.getPages();//總頁數
  long current = userPage.getCurrent();//當前頁
  List<User> records = userPage.getRecords();//數據集合
  long total = userPage.getTotal();
  boolean hasNext = userPage.hasNext();//是否還有下一頁
  boolean previous = userPage.hasPrevious();//上一頁

  System.out.println(pages);
  System.out.println(current);
  System.out.println(records);
  System.out.println(total);
}

 

5、MP刪除

  1. 簡單刪除,根據id刪除。簡單
  2. 批量刪除
  3. 和批量查詢一樣
  4. 簡單條件刪除,和上面一樣,使用map

5.1、物理刪除和邏輯刪除

物理刪除∶真實刪除,將對應數據從數據庫中刪除,之后查詢不到此條被刪除數據(易懂)

**邏輯刪除U**假刪除,將對應數據中代表是否被刪除字段狀態修改為"被刪除狀態”,之后在數據庫中仍舊能看到此條數據記錄;

邏輯刪除

邏輯刪除實現的邏輯:

在表添加字段,作為邏輯刪除標志,每次刪除時候,修改標志位

0沒有刪除
1刪除

1.表添加字段,實體類添加屬性,這是標志

2.增加注解@TableLogic :表邏輯

執行刪除會將該字段的值設為1.

當該字段的值為1時,MP查不到該數據,但是該數據仍在數據庫中存在

 

6、條件構造器和常用接口

Wapper的使用

public void testWrapper1() {
  /**
   *  ge :大于等于
   *  gt: 大于
   *  le : <=
   *  lt : <
   */
  QueryWrapper<User> wrapper = new QueryWrapper<>();
  QueryWrapper<User> queryWrapper = wrapper.ge("age", 18);
  List<User> users = userMapper.selectList(queryWrapper);
  users.forEach(System.out::println);
}

SELECT id,name,age,email,create_time,update_time,version,deleted FROM user WHERE deleted=0 AND (age >= ?)

ge:大于等于

gt: 大于

le : <=

lt : <

eq :=

ne :!=

between: 閉區間

notBetween: 閉區間

用的多:模糊查詢

like 包含 %張%

notLike 不包含

likeLeft 張%

likeRight 張%

排序

orderBy、orderByDesc、orderByAsc. (參數)

到此這篇關于MyBatis Plus實現數據庫curd操作的文章就介紹到這了,更多相關MyBatis Plus curd操作內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_44769557/article/details/120464415

延伸 · 閱讀

精彩推薦
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

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

    大行者10067412021-08-30
  • Java教程小米推送Java代碼

    小米推送Java代碼

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

    富貴穩中求8032021-07-12
  • Java教程升級IDEA后Lombok不能使用的解決方法

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

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

    程序猿DD9332021-10-08
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

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

    Java教程網2942020-09-17
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

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

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

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

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

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

    阿杜7482021-02-04
  • Java教程20個非常實用的Java程序代碼片段

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

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

    lijiao5352020-04-06
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

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

    littleschemer13532021-05-16
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩中文字幕一区二区三区 | 成人福利网站 | 男人天堂亚洲 | 免费精品视频一区二区三区 | 成人一区二区三区久久精品嫩草 | 青青青国产精品一区二区 | 成人一区二区在线 | 亚洲免费在线观看 | 日韩中文字幕在线观看 | 午夜tv| 欧美成年网站 | 亚洲成av人片一区二区梦乃 | 狠狠操一区二区三区 | 国产精品久久久久久久久久久久久 | 亚洲视频在线不卡 | 国模爱爱 | 亚洲成人av一区二区三区 | 欧美日韩视频在线第一区 | 我要看黄色一级大片 | 99热在线播放 | 男女做爰猛烈叫床无遮挡 | 中文字幕一区在线观看视频 | 7799精品天天综合网 | 亚洲一区二区在线 | 精品国偷自产国产一区 | 亚洲成人av | 中文字幕一区二区三区精彩视频 | 中文字幕成人 | 91婷婷射 | 午夜视频网站 | 亚洲美女精品视频 | 亚洲成人av在线 | 亚洲黄色成人av | 天堂一区 | 国产精品久久久久久亚洲调教 | 中文字幕视频一区 | 亚洲精品久久久久久动漫 | 特级av | 黄在线免费观看 | 日本成片视频 | 黄色成人在线 |