最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

Mybatis簡(jiǎn)介

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

MyBatis-Plus的主要特點(diǎn)和功能:

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

Mybatis官網(wǎng)地址

快速入門(mén)

1、添加依賴(lài)

<!-- MySql驅(qū)動(dòng) -->
<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
  #實(shí)體掃描,多個(gè)package用逗號(hào)或者分號(hào)分隔
  typeAliasesPackage: com.kopensoft.modules.*.entity
  global-config:
    #數(shù)據(jù)庫(kù)相關(guān)配置
    db-config:
      #主鍵類(lèi)型
      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、用戶(hù)實(shí)例加測(cè)試

創(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)建實(shí)體類(lèi)

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;
    // 用戶(hù)名
    private String username;
    // 密碼
    private String pwd;
}

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

@TableName:用于指定實(shí)體類(lèi)對(duì)應(yīng)的數(shù)據(jù)庫(kù)表名,可以在注解中設(shè)置表名。

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

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

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

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

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

@Version:用于樂(lè)觀(guān)鎖字段的標(biāo)記,標(biāo)記該字段為樂(lè)觀(guān)鎖字段。樂(lè)觀(guān)鎖是一種并發(fā)控制機(jī)制,通過(guò)比較字段的值來(lái)實(shí)現(xiàn)并發(fā)更新的控制。

@EnumValue:用于枚舉類(lèi)型字段的標(biāo)記,標(biāo)記該字段為枚舉類(lèi)型字段。

創(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是一個(gè)通用的Mapper接口,提供了一系列常用的數(shù)據(jù)庫(kù)操作方法。通過(guò)繼承BaseMapper接口,可以直接使用這些方法,無(wú)需手動(dòng)編寫(xiě)SQL語(yǔ)句。
以下是BaseMapper接口的一些常用方法:

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

創(chuàng)建mapper對(duì)應(yīng)的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對(duì)應(yīng)的xml中常用標(biāo)簽
:XML文件的根元素,用于定義Mapper接口的映射配置。
:用于定義查詢(xún)操作的映射關(guān)系。
id:查詢(xún)操作的唯一標(biāo)識(shí)符。
resultType:查詢(xún)結(jié)果的映射類(lèi)型,即返回的實(shí)體類(lèi)類(lèi)型。
parameterType:查詢(xún)參數(shù)的映射類(lèi)型,即傳入的參數(shù)類(lèi)型。
:用于動(dòng)態(tài)拼接SQL語(yǔ)句的條件判斷。
:用于循環(huán)遍歷集合,并生成對(duì)應(yīng)的SQL語(yǔ)句片段。
:用于定義插入操作的映射關(guān)系。
id:插入操作的唯一標(biāo)識(shí)符。
parameterType:插入?yún)?shù)的映射類(lèi)型,即傳入的參數(shù)類(lèi)型。
:用于獲取插入操作生成的主鍵值。
:用于定義更新操作的映射關(guān)系。
id:更新操作的唯一標(biāo)識(shí)符。
parameterType:更新參數(shù)的映射類(lèi)型,即傳入的參數(shù)類(lèi)型。
:用于定義刪除操作的映射關(guān)系。
id:刪除操作的唯一標(biāo)識(shí)符。
parameterType:刪除參數(shù)的映射類(lèi)型,即傳入的參數(shù)類(lèi)型。
:用于定義結(jié)果集的映射關(guān)系。
id:結(jié)果集的唯一標(biāo)識(shí)符。
type:結(jié)果集的映射類(lèi)型,即返回的實(shí)體類(lèi)類(lèi)型。
:用于定義字段與實(shí)體類(lèi)屬性的映射關(guān)系。
:用于定義可重用的SQL語(yǔ)句片段。
id:SQL片段的唯一標(biāo)識(shí)符。
:用于引入可重用的SQL語(yǔ)句片段。
refid:引用的SQL片段的唯一標(biāo)識(shí)符。

使用測(cè)試類(lèi)測(cè)試一下

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/

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

相關(guān)文章

  • Maven打包所有依賴(lài)到一個(gè)可執(zhí)行jar中遇到的問(wèn)題

    Maven打包所有依賴(lài)到一個(gè)可執(zhí)行jar中遇到的問(wèn)題

    這篇文章主要給大家介紹了關(guān)于Maven打包所有依賴(lài)到一個(gè)可執(zhí)行jar中遇到的問(wèn)題,將依賴(lài)打入jar包,由于maven管理了所有的依賴(lài),所以將項(xiàng)目的代碼和依賴(lài)打成一個(gè)包對(duì)它來(lái)說(shuō)是順理成章的功能,需要的朋友可以參考下
    2023-10-10
  • Java?List集合取交集的8種不同實(shí)現(xiàn)方式總結(jié)

    Java?List集合取交集的8種不同實(shí)現(xiàn)方式總結(jié)

    工作中經(jīng)常遇到需要取兩個(gè)集合之間的交集、差集情況,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java?List集合取交集的8種不同實(shí)現(xiàn)方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • Java中雙重檢查鎖(double checked locking)的正確實(shí)現(xiàn)

    Java中雙重檢查鎖(double checked locking)的正確實(shí)現(xiàn)

    雙重檢查鎖(Double-Check Locking),顧名思義,通過(guò)兩次檢查,并基于加鎖機(jī)制,實(shí)現(xiàn)某個(gè)功能,下面這篇文章主要給大家介紹了關(guān)于Java中雙重檢查鎖(double checked locking)的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • springboot整合spring-data-redis遇到的坑

    springboot整合spring-data-redis遇到的坑

    使用springboot整合redis,使用默認(rèn)的序列化配置,然后使用redis-client去查詢(xún)時(shí)查詢(xún)不到相應(yīng)的key.問(wèn)題出在哪,怎么解決呢?下面小編給大家?guī)?lái)了springboot整合spring-data-redis遇到的坑,需要的的朋友參考下吧
    2017-04-04
  • java如何通過(guò)FileOutputStream字節(jié)流向文件中寫(xiě)數(shù)據(jù)

    java如何通過(guò)FileOutputStream字節(jié)流向文件中寫(xiě)數(shù)據(jù)

    這篇文章主要介紹了java如何通過(guò)FileOutputStream字節(jié)流向文件中寫(xiě)數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • MyBatis中SqlSession實(shí)現(xiàn)增刪改查案例

    MyBatis中SqlSession實(shí)現(xiàn)增刪改查案例

    這篇文章主要介紹了MyBatis中SqlSession實(shí)現(xiàn)增刪改查案例,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • 深入學(xué)習(xí)JAVA GC日志的相關(guān)知識(shí)

    深入學(xué)習(xí)JAVA GC日志的相關(guān)知識(shí)

    JVM 在Java應(yīng)用程序優(yōu)化中是不可缺少的一大重項(xiàng),如何合理配置Java參數(shù),如何驗(yàn)證配置參數(shù)的有效性,從GC日志中可以獲得很重要的提示。下面小編就帶大家來(lái)一起學(xué)習(xí)一下吧
    2019-06-06
  • 淺談Mybatis分頁(yè)插件,自定義分頁(yè)的坑

    淺談Mybatis分頁(yè)插件,自定義分頁(yè)的坑

    這篇文章主要介紹了淺談Mybatis分頁(yè)插件,自定義分頁(yè)的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • SpringMVC中RequestContextHolder獲取請(qǐng)求信息的方法

    SpringMVC中RequestContextHolder獲取請(qǐng)求信息的方法

    這篇文章主要介紹了SpringMVC中RequestContextHolder獲取請(qǐng)求信息的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • iReport簡(jiǎn)單使用方法圖文教程

    iReport簡(jiǎn)單使用方法圖文教程

    iReport是一個(gè)能夠創(chuàng)建復(fù)雜報(bào)表的開(kāi)源項(xiàng)目,它100%使用Java語(yǔ)言編寫(xiě),是目前全球最為流行的開(kāi)源報(bào)表設(shè)計(jì)器,由于它豐富的圖形界面,你能夠很快的創(chuàng)建出任何一種你想要的報(bào)表
    2021-10-10

最新評(píng)論

西宁市| 闽侯县| 封丘县| 贡嘎县| 渭源县| 手游| 罗平县| 蓝山县| 泸州市| 扶沟县| 乡宁县| 洛川县| 新安县| 靖江市| 富源县| 离岛区| 大城县| 固安县| 德惠市| 六枝特区| 正镶白旗| 肥西县| 拜泉县| 江口县| 平远县| 剑阁县| 莱阳市| 昌平区| 中西区| 许昌市| 大化| 河南省| 岳池县| 吕梁市| 积石山| 隆安县| 新巴尔虎右旗| 黑河市| 潜江市| 乌苏市| 辽阳市|