亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot3整合mybatis-plus的實現(xiàn)

 更新時間:2023年10月16日 09:32:44   作者:黑貓kaherine  
MyBatis-Plus是一個MyBatis的增強工具,在MyBatis的基礎上只做增強不做改變,本文主要介紹了Mybatis-Plus3.x的具體使用,具有一定的參考價值,感興趣的可以了解一下

Mybatis簡介

MyBatis-Plus是一個基于MyBatis的增強工具,它簡化了與數(shù)據(jù)庫的交互和操作。它提供了一系列的便利功能,可以減少編寫重復的SQL代碼和簡化數(shù)據(jù)訪問層的開發(fā)。

MyBatis-Plus的主要特點和功能:

  • 代碼生成器:MyBatis-Plus提供了一個代碼生成器,可以根據(jù)數(shù)據(jù)庫表結構自動生成實體類、Mapper接口和XML映射文件的代碼,減少了手動編寫重復的CRUD操作的工作量。
  • 通用CRUD操作:MyBatis-Plus提供了一套通用的CRUD操作方法,包括插入、更新、刪除和查詢等,可以大大簡化數(shù)據(jù)庫操作的代碼編寫。
  • 強大的查詢構建器:MyBatis-Plus提供了一個靈活而強大的查詢構建器,可以通過鏈式調(diào)用的方式構建復雜的查詢條件,支持動態(tài)條件拼接和排序等操作。
  • 分頁查詢支持:MyBatis-Plus內(nèi)置了分頁查詢的支持,可以方便地進行分頁查詢操作。
  • 邏輯刪除支持:MyBatis-Plus支持邏輯刪除,可以通過配置實現(xiàn)將刪除操作轉換為更新操作,便于數(shù)據(jù)的恢復和管理。
  • 自動填充字段:MyBatis-Plus支持自動填充字段的功能,可以在插入和更新操作時自動填充指定的字段值,例如創(chuàng)建時間和更新時間等。
  • 樂觀鎖支持:MyBatis-Plus提供了樂觀鎖的支持,可以通過版本號或時間戳等機制實現(xiàn)并發(fā)控制,避免數(shù)據(jù)沖突和并發(fā)更新問題。

Mybatis官網(wǎng)地址

快速入門

1、添加依賴

<!-- MySql驅動 -->
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>
<!-- MyBatisPlus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>

2、添加配置

#mybatis
mybatis-plus:
  mapper-locations: classpath*:/mapper/**/*.xml,classpath:/META-INF/modeler-mybatis-mappings/*.xml
  #實體掃描,多個package用逗號或者分號分隔
  typeAliasesPackage: com.kopensoft.modules.*.entity
  global-config:
    #數(shù)據(jù)庫相關配置
    db-config:
      #主鍵類型
      id-type: ASSIGN_ID
    banner: false
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/study?allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
    username: root
    password: 123456

3、增加包掃描的注解

@MapperScan(basePackages = “com.kopensoft.modules.*.mapper”)

package com.kopensoft;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan(basePackages = "com.kopensoft.modules.*.mapper")
@SpringBootApplication
public class KopensoftAdminApplication {

    public static void main(String[] args) {
        SpringApplication.run(KopensoftAdminApplication.class, args);
    }

}

4、用戶實例加測試

創(chuàng)建表

-- study.sys_user definition

CREATE TABLE `sys_user` (
                            `id` int NOT NULL AUTO_INCREMENT,
                            `username` varchar(100) DEFAULT NULL,
                            `password` varchar(100) DEFAULT NULL,
                            PRIMARY KEY (`id`),
                            KEY `sys_user_id_IDX` (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

創(chuàng)建實體類

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import nonapi.io.github.classgraph.json.Id;

@TableName("sys_user")
@Data
public class UserEntity {
    @TableId(type = IdType.AUTO)
    // 主鍵ID,自增策略
    private Long id;
    // 用戶名
    private String username;
    // 密碼
    private String pwd;
}

MyBatis-Plus中常用的注解主要包括以下幾種:

@TableName:用于指定實體類對應的數(shù)據(jù)庫表名,可以在注解中設置表名。

@TableId:用于指定實體類中的字段作為主鍵,并指定主鍵生成策略。常用的主鍵生成策略包括:

  • IdType.AUTO:自增主鍵。
  • IdType.NONE:無主鍵。
  • IdType.INPUT:手動輸入主鍵。
  • IdType.ID_WORKER:全局唯一ID,數(shù)字類型。
  • IdType.UUID:全局唯一ID,字符串類型。

@TableField:用于指定實體類中的字段與數(shù)據(jù)庫表中的字段的映射關系。常用的屬性包括:

  • value:指定數(shù)據(jù)庫表中的字段名。
  • exist:指定該字段是否在數(shù)據(jù)庫表中存在,默認為true。
  • fill:指定該字段是否為自動填充字段,默認為false。
  • insertStrategy:指定插入操作的填充策略。
  • updateStrategy:指定更新操作的填充策略。
  • whereStrategy:指定查詢操作的填充策略。

@TableLogic:用于指定邏輯刪除字段,標記該字段為邏輯刪除字段。邏輯刪除是通過修改字段的值來表示刪除狀態(tài),而不是直接從數(shù)據(jù)庫中刪除記錄。

@Version:用于樂觀鎖字段的標記,標記該字段為樂觀鎖字段。樂觀鎖是一種并發(fā)控制機制,通過比較字段的值來實現(xiàn)并發(fā)更新的控制。

@EnumValue:用于枚舉類型字段的標記,標記該字段為枚舉類型字段。

創(chuàng)建 mapper

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kopensoft.common.modules.security.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<UserEntity> {

}

MyBatis-PlusBaseMapper是一個通用的Mapper接口,提供了一系列常用的數(shù)據(jù)庫操作方法。通過繼承BaseMapper接口,可以直接使用這些方法,無需手動編寫SQL語句。
以下是BaseMapper接口的一些常用方法:

  • insert:插入一條記錄到數(shù)據(jù)庫表中。
  • deleteById:根據(jù)主鍵ID刪除數(shù)據(jù)庫表中的一條記錄。
  • updateById:根據(jù)主鍵ID更新數(shù)據(jù)庫表中的一條記錄。
  • selectById:根據(jù)主鍵ID查詢數(shù)據(jù)庫表中的一條記錄。
  • selectList:查詢數(shù)據(jù)庫表中的所有記錄。
  • selectPage:分頁查詢數(shù)據(jù)庫表中的記錄。
  • selectCount:查詢數(shù)據(jù)庫表中的記錄總數(shù)。
  • selectOne:根據(jù)條件查詢數(shù)據(jù)庫表中的一條記錄。
  • 除了上述常用方法,BaseMapper還提供了一些其他方法,如條件查詢、批量操作、邏輯刪除等,具體可以根據(jù)需求查看官方文檔。

創(chuàng)建mapper對應的xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.kopensoft.modules.sys.mapper.UserMapper">

</mapper>

mapper對應的xml中常用標簽
:XML文件的根元素,用于定義Mapper接口的映射配置。
:用于定義查詢操作的映射關系。
id:查詢操作的唯一標識符。
resultType:查詢結果的映射類型,即返回的實體類類型。
parameterType:查詢參數(shù)的映射類型,即傳入的參數(shù)類型。
:用于動態(tài)拼接SQL語句的條件判斷。
:用于循環(huán)遍歷集合,并生成對應的SQL語句片段。
:用于定義插入操作的映射關系。
id:插入操作的唯一標識符。
parameterType:插入?yún)?shù)的映射類型,即傳入的參數(shù)類型。
:用于獲取插入操作生成的主鍵值。
:用于定義更新操作的映射關系。
id:更新操作的唯一標識符。
parameterType:更新參數(shù)的映射類型,即傳入的參數(shù)類型。
:用于定義刪除操作的映射關系。
id:刪除操作的唯一標識符。
parameterType:刪除參數(shù)的映射類型,即傳入的參數(shù)類型。
:用于定義結果集的映射關系。
id:結果集的唯一標識符。
type:結果集的映射類型,即返回的實體類類型。
:用于定義字段與實體類屬性的映射關系。
:用于定義可重用的SQL語句片段。
id:SQL片段的唯一標識符。
:用于引入可重用的SQL語句片段。
refid:引用的SQL片段的唯一標識符。

使用測試類測試一下

package com.kopensoft;

import com.kopensoft.modules.sys.mapper.entity.UserEntity;
import com.kopensoft.modules.sys.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

@SpringBootTest
public class UserMapperTest {
    @Autowired
    private UserMapper userMapper;

    @Test
    public void testInsert() {
        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
        UserEntity user = new UserEntity();
        user.setUsername("admin");
        user.setPwd(encoder.encode("123456"));
        userMapper.insert(user);
    }
}

使用Mybatis-Plus插件生成代碼

https://baomidou.com/pages/ba5b24/

到此這篇關于SpringBoot3整合mybatis-plus的實現(xiàn)的文章就介紹到這了,更多相關SpringBoot整合mybatis-plus內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot返回統(tǒng)一的JSON標準格式實現(xiàn)步驟

    SpringBoot返回統(tǒng)一的JSON標準格式實現(xiàn)步驟

    這篇文章主要介紹了SpringBoot返回統(tǒng)一的JSON標準格式,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • java中的connection reset 異常處理分析

    java中的connection reset 異常處理分析

    本文主要介紹了java中的connection reset 異常處理分析的相關資料,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Java正則表達式易錯知識點匯總

    Java正則表達式易錯知識點匯總

    這篇文章主要總結Java正則表達式易錯知識,對易錯知識點進行分類整理,幫助大家更好的學習Java正則表達式,感興趣的小伙伴們可以參考一下
    2015-12-12
  • Java字符串相關類操作方法詳解

    Java字符串相關類操作方法詳解

    這篇文章主要給大家介紹了關于Java字符串相關類操作的相關資料,文中還特別介紹了字符串的定義、構造方法、內(nèi)存原理、比較方法和常見方法,同時還介紹了StringBuilder和StringJoiner類,需要的朋友可以參考下
    2024-12-12
  • Java參數(shù)傳遞及值傳遞實現(xiàn)原理詳解

    Java參數(shù)傳遞及值傳遞實現(xiàn)原理詳解

    這篇文章主要介紹了Java參數(shù)傳遞及值傳遞實現(xiàn)原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • JSON.toJSONString()方法在Java中的使用方法及應用場景

    JSON.toJSONString()方法在Java中的使用方法及應用場景

    這篇文章主要給大家介紹了關于JSON.toJSONString()方法在Java中的使用方法及應用場景,JSON.toJSONString是將對象轉化為Json字符串,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-04-04
  • java 枚舉類定義靜態(tài)valueOf(java.lang.String)方法的問題及解決

    java 枚舉類定義靜態(tài)valueOf(java.lang.String)方法的問題及解決

    這篇文章主要介紹了java 枚舉類定義靜態(tài)valueOf(java.lang.String)方法的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java中類與對象的使用詳情

    java中類與對象的使用詳情

    這篇文章主要介紹了java中類與對象的使用詳情,面向對象是通過類和對象去描述和代表萬千事物對象的,首先我們需要知道如何去定義一個類,下面文章我們詳細介紹兩者的使用方法,需要的小伙伴可以參考一下
    2022-05-05
  • 詳解Java 類的加載、連接和初始化

    詳解Java 類的加載、連接和初始化

    這篇文章主要介紹了Java 類的加載、連接和初始化的的相關資料,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • mybatis框架之mybatis中dao層開發(fā)的兩種方法

    mybatis框架之mybatis中dao層開發(fā)的兩種方法

    這篇文章主要介紹了mybatis框架之mybatis中dao層開發(fā)的兩種方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論