国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mybatis-plus 使用

這篇具有很好參考價值的文章主要介紹了Mybatis-plus 使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 注解使用

? ? ? ? mybatis-plus提供了 ·@TableName·, @TableId, @TableField,?@TableLogic 四種注解,其含義分別為:

?@TableName

? ? ? ? ?@TableName("SPF_Require_Vehicle")? ? 用于聲明當(dāng)前class所對應(yīng)數(shù)據(jù)庫中的表,如果class的名字和表的名字完全相同,則不需要添加該注解,如果不一樣,則需要用該注解進(jìn)行聲明。

?@TableId

????????@TableId(value = "SPF_UID", type = IdType.AUTO)? ? ?用于聲明主鍵, value指定數(shù)據(jù)庫中主鍵的名稱,type為主鍵的生成類型,支持 Assign(雪花算法,java字段需要是Long)、Auto(數(shù)據(jù)庫字段需要聲明為auto_increment), uuid

? @TableField

? ? ? ??@TableField("SPF_Name")? 用于聲明當(dāng)前字段對應(yīng)的表中的字段

? @TableLogic

? ? ? ? @TableLogic(value = "0", delval = "1")? ?用于軟刪除,value是默認(rèn)值,delval表示軟刪除后的值。

@TableName("SPF_Require_Vehicle")
@Data
public class Employee {
    /**
     * 指定主鍵名稱為SPF_uid, 類型為自增,即數(shù)據(jù)庫的字段必須是auto_increment
     */
    @TableId(value = "SPF_UID", type = IdType.AUTO)
    private Long id;

    /**
     * 指定數(shù)據(jù)庫中對應(yīng)的字段是 Part_PartSap
     */
    @TableField("Part_PartSap")
    private String partSap;

    @TableField("Part_PlateSap")
    private String plateSap;

    @TableField("SPF_Name")
    private String name;

    /**
     * 邏輯刪除
     */
    @TableLogic(value = "0", delval = "1")
    @TableField("IsActvie")
    private Boolean active;
}

@EnumValue

? ? ? ? 代碼簡潔性考慮:許多時候需要用到Enum,例如0表示男1表示女、0表示關(guān)閉1表示打開,and so on

  1. ? ? ? ? ?在數(shù)據(jù)庫表中增加字段gender: 0表示男,1表示女
  2. ? ? ? ? ? 定義枚舉類, @EnumValue注解表示該字段是向數(shù)據(jù)庫中插入的值,@JsonValue表示讀取的時候?qū)ν庹故镜闹????????
@Getter
public enum SexEnum {
    SEX_MALE(0, "男"),
    SEX_FEMALE(1, "女");

    /**
     * 表示當(dāng)前字段是執(zhí)行insert時向數(shù)據(jù)庫中插入的字段
     */
    @EnumValue
    private int sexVal;

    /**
     * 表示從數(shù)據(jù)庫讀取的時候?qū)ν怙@示的值
     */
    @JsonValue
    private String sexName;

    SexEnum(int sexVal, String sexName) {
        this.sexVal = sexVal;
        this.sexName = sexName;
    }

    /**
     * 配合 @JsonValue使用
     * @return 返回展示的值
     */
    @Override
    public String toString() {
        return this.sexName;
    }
}

? ? ? ? 3.? 使用處

????????????????Mybatis-plus 使用,mybatis?

????????????????Mybatis-plus 使用,mybatis

? ? ? ? ?插入的值為枚舉注釋的值

Mybatis-plus 使用,mybatis? ? ? ? 讀取的是 @JsonValue注釋的值

????????Mybatis-plus 使用,mybatis?

2. IService使用

2.1 批量插入

boolean saveBatch(Collection<T> entityList, int batchSize);
@Test
    public void baseBatchInsertTest() {
        List<Employee> list = new ArrayList<>();
        for (int i = 20; i < 30; i++) {
            Employee employee = new Employee();
            employee.setName("zhagnsan" + i);
            employee.setPartSap("123425-" + i);
            employee.setPlateSap("312342-" + i);
            list.add(employee);
        }
        // 批量插入,service提供了兩個函數(shù),可以帶第二個參數(shù),也可以不帶,不帶的情況下默認(rèn)是1000
        // 批量插入實際也是一條一條的插入,不同的是底層啟動了同一個session,插入完成后關(guān)閉,不需要每次都開啟關(guān)閉
        this.service.saveBatch(list, 10);
    }

2.2 批量插入修改

? ? ? ? 如果主鍵Id已經(jīng)在表中存在則修改,如果不存在則插入一條新數(shù)據(jù)

?// 第二個參數(shù)選填,默認(rèn)是1000

boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize);
@Test
    public void testBatchInsertOrUpdate() {
        List<Employee> list = new ArrayList<>();
        Employee e1 = new Employee();
        // 1L已經(jīng)存在,會指定update
        e1.setId(1L);
        // 只添加了一個字段,也就是只修改一個字段
        e1.setName("車轱轆");
        Employee e2 = new Employee();
        // id在表中不存在,則新增
        e2.setId(50L);
        e2.setName("車頂");
        e2.setPartSap("123142314-00");
        e2.setPlateSap("423414-09");
        list.add(e1);
        list.add(e2);
        this.service.saveOrUpdateBatch(list,2);
    }

2.2 單個插入修改

? ? ? ?// 如果id存在則修改,否則插入

boolean saveOrUpdate(T entity);

2.3 單個刪除

default boolean removeById(Serializable id)
default boolean removeById(T entity)
@Test
    public void testRemoveSingle01() {
        /**
         * id如果存在則刪除,返回ture,否則返回false
         */
        boolean b = this.service.removeById(9);
        System.out.println("b:" + b);
    }


/*
* 有的時候,前端傳過來的是一個類,此時可以直接調(diào)用該函數(shù)刪除
*/
@Test
    public void testRemoveSignle02() {
        Employee employee = new Employee();
        employee.setId(8L);
        this.service.removeById(employee);
    }

2.4 有條件刪除?

? ? ? ? 實際中很多情況并不是根據(jù)Id進(jìn)行刪除而是根據(jù)實際需要進(jìn)行刪除, service也提供了該功能

removeByMap
default boolean removeByMap(Map<String, Object> columnMap)

????????

/*
* 下面代碼執(zhí)行的語句如下
* UPDATE SPF_Require_Vehicle SET IsActvie=1 WHERE Part_PlateSap = ? AND Part_PartSap = ? AND IsActvie=0
*/
@Test
    public void testRemoveByMap() {
        Map<String, Object> map = new HashMap<>();
        map.put("Part_PartSap", "123425-0");
        map.put("Part_PlateSap", "312342-0");
        this.service.removeByMap(map);
    }
remove(可根據(jù)條件批量刪除)

?也可以根據(jù)wrapper進(jìn)行刪除,刪除的時候使用的是QueryWrapper, Wrapper的用法有很多種,此處只展示in的用法,其他用法下文進(jìn)行介紹

default boolean remove(Wrapper<T> queryWrapper)
@Test
    public void testRemove03() {
        QueryWrapper<Employee> wrapper = new QueryWrapper<>();
        List<Long> list = new ArrayList<>();
        list.add(2L);
        list.add(3L);
        list.add(4L);
        wrapper.in(list != null && !list.isEmpty(), "SPF_UID", list);
        /**
         * UPDATE SPF_Require_Vehicle SET IsActvie=1 WHERE IsActvie=0 AND (SPF_UID IN (?,?,?))
         */
        this.service.remove(wrapper);
    }

2.5 批量刪除

根據(jù)主鍵批量刪除

removeByIds
default boolean removeByIds(Collection<?> list)
@Test
    public void testRemoveByIds() {
        List<Long> list = new ArrayList<>();
        list.add(2L);
        list.add(3L);
        list.add(5L);
        /**
         * 根據(jù)Ids批量刪除
         * UPDATE SPF_Require_Vehicle SET IsActvie=1 WHERE SPF_UID IN ( ? , ? , ? ) AND IsActvie=0
         */
        this.service.removeByIds(list);
    }
removeBatchByIds

采用jdbc批量刪除,底層使用for循環(huán)逐個刪除,這點是和上面函數(shù)的區(qū)別

default boolean removeBatchByIds(Collection<?> list, int batchSize)
@Test
    public void testremoveBatchByIds() {
        List<Long> list = new ArrayList<>();
        list.add(2L);
        list.add(3L);
        list.add(5L);
        /**
         * UPDATE SPF_Require_Vehicle SET IsActvie=1 WHERE SPF_UID=? AND IsActvie=0
         */
        this.service.removeBatchByIds(list, list.size());
    }

2.6 單個修改:根據(jù)Id修改

default boolean updateById(T entity)
@Test
    public void testupdateById() {
        Employee employee = new Employee();
        employee.setId(8L);
        employee.setName("doris");
        /**
         * UPDATE SPF_Require_Vehicle SET SPF_Name=? WHERE SPF_UID=? AND IsActvie=0
         */
        this.service.updateById(employee);
    }

2.7 有條件修改:根據(jù)wrapper修改

default boolean update(Wrapper<T> updateWrapper)
@Test
    public void testupdate() {
        Integer minId = 9;
        Integer maxId = 14;
        String name = "doris";
        String nName = "wangshun";
        LambdaUpdateWrapper<Employee> wrapper = new LambdaUpdateWrapper<>();
        wrapper.gt(minId != null, Employee::getId, minId)
                .lt(maxId != null, Employee::getId, maxId)
                .or()
                .like(name != null && !name.isEmpty(), Employee::getName, name);
        wrapper.set(nName != null && !nName.isEmpty(), Employee::getName, nName);
        /**
         * UPDATE SPF_Require_Vehicle SET SPF_Name=? WHERE IsActvie=0 AND (SPF_UID > ? AND SPF_UID < ? OR SPF_Name LIKE ?)
         */
        this.service.update(wrapper);
    }

2.8 批量修改:根據(jù)Id修改

這個方法很使用,實際工作中,都是根據(jù)前端傳過來的結(jié)構(gòu)體進(jìn)行修改

boolean updateBatchById(Collection<T> entityList, int batchSize)
@Test
    public void testupdateBatchById() {
        List<Employee> list = new ArrayList<>();
        Employee e1 = new Employee();
        e1.setId(1L);
        e1.setName("wangwu");
        Employee e2 = new Employee();
        e2.setId(2L);
        e2.setName("wangbaochuan");
        list.add(e1);
        list.add(e2);
        /**
         * UPDATE SPF_Require_Vehicle SET SPF_Name=? WHERE SPF_UID=? AND IsActvie=0
         */
        this.service.updateBatchById(list, list.size());

    }

2.9 單個查詢

? ? ? ? 根據(jù)Id單個查詢

????????getById
@Test
    public void testgetById() {
        /**
         * SELECT SPF_UID AS id,Part_PartSap AS partSap,Part_PlateSap AS plateSap,SPF_Name AS name,IsActvie AS active FROM SPF_Require_Vehicle WHERE SPF_UID=? AND IsActvie=0
         */
        Employee byId = this.service.getById(1);
        System.out.println(byId);
    }
????????getOne

? ? ? ? ? // 根據(jù)條件查找時:如果有多個則會拋出異常

????????default T getOne(Wrapper<T> queryWrapper)

????????

@Test
    public void testgetOne() {
        LambdaQueryWrapper<Employee> wrapper = new LambdaQueryWrapper<>();
        String plateSap = "312342-6";
        wrapper.eq(plateSap != null && !plateSap.isEmpty(), Employee::getPlateSap, plateSap);
        /**
         * SELECT SPF_UID AS id,Part_PartSap AS partSap,Part_PlateSap AS plateSap,SPF_Name AS name,IsActvie AS active
         *  FROM SPF_Require_Vehicle WHERE IsActvie=0 AND (Part_PlateSap = ?)
         */
        Employee one = this.service.getOne(wrapper);
        System.out.println(one);
    }

????????

2.10 批量查詢

????????listByIds

????????

@Test
    public void testlistByIds() {
        List<Long> list = new ArrayList<>();
        list.add(1L);
        list.add(2L);
        list.add(3L);
        List<Employee> employees = this.service.listByIds(list);
        /**
         * SELECT SPF_UID AS id,Part_PartSap AS partSap,Part_PlateSap AS plateSap,SPF_Name AS name,IsActvie AS active FROM SPF_Require_Vehicle WHERE SPF_UID IN ( ? , ? , ? ) AND IsActvie=0
         */
        employees.forEach(System.out::println);
    }
list

?????????

@Test
    public void testList() {
        List<Employee> list = this.service.list();
        /**
         * SELECT SPF_UID AS id,Part_PartSap AS partSap,Part_PlateSap AS plateSap,SPF_Name AS name,IsActvie AS active
         *  FROM SPF_Require_Vehicle WHERE IsActvie=0
         */
        list.forEach(System.out::println);
    }

2.11 有條件批量查詢

????????listByMap

????????default List<T> listByMap(Map<String, Object> columnMap)

@Test
    public void testlistByMap() {
        Map<String, Object> map = new HashMap<>();
        map.put("SPF_Name", "wangshun");
        map.put("Part_PlateSap", "312342-20");
        /**
         * SELECT SPF_UID AS id,Part_PartSap AS partSap,Part_PlateSap AS plateSap,SPF_Name AS name,IsActvie AS active 
         *  FROM SPF_Require_Vehicle WHERE Part_PlateSap = ? AND SPF_Name = ? AND IsActvie=0
         */
        List<Employee> employees = this.service.listByMap(map);
        employees.forEach(System.out::println);
    }
list
default List<T> list(Wrapper<T> queryWrapper)
@Test
    public void testList() {
        LambdaQueryWrapper<Employee> wrapper = new LambdaQueryWrapper<>();
        wrapper.like(Employee::getName, "wangshun");
        List<Employee> list = this.service.list(wrapper);
        /**
         *  SELECT SPF_UID AS id,Part_PartSap AS partSap,Part_PlateSap AS plateSap,SPF_Name AS name,IsActvie AS active 
         *      FROM SPF_Require_Vehicle WHERE IsActvie=0 AND (SPF_Name LIKE ?)
         */
        list.forEach(System.out::println);
    }

2.12?查詢指定列

getmap

? ? ? ? // 如果查詢出過個,則只取第一個

Map<String, Object> getMap(Wrapper<T> queryWrapper);
@Test
    public void testSelectMap() {
        String name = "wangshun";
        LambdaQueryWrapper<Employee> wrapper = new LambdaQueryWrapper<>();
        wrapper.like(!name.isEmpty(), Employee::getName, name);
        /**
         * 只查詢這兩列,如果同時查詢出多行,則只取第一行
         * SELECT Part_PlateSap AS plateSap,Part_PartSap AS partSap FROM SPF_Require_Vehicle WHERE IsActvie=0 AND (SPF_Name LIKE ?)
         */
        wrapper.select(Employee::getPlateSap, Employee::getPartSap);
        Map<String, Object> map = this.service.getMap(wrapper);
        System.out.println(map);
    }
listMap

? ? ? ? 可查詢多行

@Test
    public void testlistMaps() {
        LambdaQueryWrapper<Employee> wrapper = new LambdaQueryWrapper<>();
        wrapper.like(Employee::getName, "wangshun");
        /**
         * 只顯示這三列
         */
        wrapper.select(Employee::getPartSap, Employee::getPlateSap, Employee::getName);
        List<Map<String, Object>> maps = this.service.listMaps(wrapper);
        for (Map<String, Object> map : maps) {
            System.out.println(map);
        }
    }

????????

default List<Map<String, Object>> listMaps()  如果不見條件則查詢所有的行

2.13 個數(shù)查詢? ? ??

// 查詢表中國有效的總行數(shù)
default long count()
// 根據(jù)條件查詢行數(shù)
default long count(Wrapper<T> queryWrapper)

2.14 分頁查詢

? ? ? ? 分頁查詢需要首先注冊mybatis-plus的攔截器,配置如下

@Configuration
public class MpConfig {
    @Bean
    public MybatisPlusInterceptor getIntercepter() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return mybatisPlusInterceptor;
    }
}
@Test
    public void testPage01() {
        Page<Employee> page = new Page<>(2, 4);
        LambdaQueryWrapper<Employee> wrapper = new LambdaQueryWrapper<>();
        wrapper.like(Employee::getName, "wangshun");
        this.service.page(page, wrapper);
        System.out.println(page);
        // 查詢到的內(nèi)容
        System.out.println("records: " + page.getRecords());
        // 總頁數(shù)
        System.out.println("pages: " + page.getPages());
        // 當(dāng)前頁數(shù)
        System.out.println("current: " + page.getCurrent());
        // 總條目數(shù)
        System.out.println("total: " + page.getTotal());
    }

2.15 SQL分頁查詢

? ? ? ? 許多時候需要手寫語句實現(xiàn)分頁查詢,例如同時從多張表中查詢數(shù)據(jù),這個時候需要自己寫條件。

01. 在 application.yml中指定mybatis-plus的相關(guān)配置,尤其要指定xml的路徑,默認(rèn)在mapper下,本人仍習(xí)慣指明位置

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  # 指定mapper.xml所在的位置
  mapper-locations: classpath:/mapper/*.xml

02. 在Mapper中增加聲明

 /**
     * 手寫語句實現(xiàn)分頁查詢
     * @param page 攔截器使用,當(dāng)前sql中不需要
     * @param employee 查詢對象
     * @return 查詢結(jié)果
     */
    Page<Employee> getEmployeeInfoByPage(@Param("page") Page<Employee> page, @Param("employee") Employee employee);

03. 添加Mapper對應(yīng)的xml文件并增加對應(yīng)的函數(shù)

<?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.ssm01.mapper.EmployeeMapper">
    <resultMap id="baseResultMap" type="com.ssm01.pojo.Employee">
        <result column="SPF_UID" property="id"/>
        <result column="Part_PartSap" property="partSap"/>
        <result column="Part_PlateSap" property="plateSap"/>
        <result column="SPF_Name" property="name"/>
    </resultMap>
    <select id="getEmployeeInfoByPage" resultMap="baseResultMap">
        select * from SPF_Require_Vehicle where SPF_Name = #{employee.name} and IsActvie = 0
    </select>
</mapper>

04. 在自己的service中增加相應(yīng)的方法,調(diào)用mapper中的函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-728319.html

到了這里,關(guān)于Mybatis-plus 使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)

    SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)

    1.需求分析 2.數(shù)據(jù)庫表設(shè)計 3.數(shù)據(jù)庫環(huán)境配置 1.新建maven項目 2.pom.xml 引入依賴 3.application.yml 配置數(shù)據(jù)源 數(shù)據(jù)庫名 用戶名 密碼 驅(qū)動是mysql8的(因為上面使用了版本仲裁) 4.Application.java 編寫啟動類 5.測試 6.配置類切換druid數(shù)據(jù)源 7.測試數(shù)據(jù)源是否成功切換 4.Mybatis基礎(chǔ)配置 1

    2024年03月20日
    瀏覽(30)
  • Mybatis-plus框架使用配置

    MyBatis-Plus(簡稱 MP)是一個基于 MyBatis 的增強工具,它對 Mybatis 的基礎(chǔ)功能進(jìn)行了增強,但未做任何改變。使得我們可以可以在 Mybatis 開發(fā)的項目上直接進(jìn)行升級為 Mybatis-plus,正如它對自己的定位,它能夠幫助我們進(jìn)一步簡化開發(fā)過程,提高開發(fā)效率。 Mybatis-Plus 其實可以看

    2024年02月09日
    瀏覽(23)
  • Mybatis-Plus使用方法

    MyBatis-Plus 提供了豐富的增強版的 CRUD 方法,使得開發(fā)者能夠更簡潔、高效地進(jìn)行數(shù)據(jù)庫操作。以下是如何使用 MyBatis-Plus 自帶的增強版 CRUD 方法的基本步驟: 添加依賴 首先,確保你的 Maven 項目中已經(jīng)添加了 MyBatis-Plus 的相關(guān)依賴,包括核心依賴和數(shù)據(jù)庫驅(qū)動依賴。 xml復(fù)制代

    2024年04月11日
    瀏覽(19)
  • 使用Mybatis-Plus問題解答

    使用Mybatis-Plus問題解答

    我們使用一個新的框架難免會遇到各種問題,當(dāng)然使用這款國產(chǎn)的優(yōu)秀的Mybatis-Plus框架也不例外,下面我就給大家列舉一下使用Mybatis-Plus可能遇到的一些問題,并做一下一一的解答。 1:如何排除非表的字段 (這個問題一定要注意,我們Java中寫的Entity類的屬性是和表的字段一

    2024年02月08日
    瀏覽(23)
  • 使用Mybatis-plus清空表數(shù)據(jù)

    方法一: ?方法二: 直接使用自帶的remove接口 ,同時使用QueryWrapper參數(shù)如: 引申一下?Mybatis-plus這個好用的框架: 我們知道 MyBatis 是一個基于 java 的持久層框架,它內(nèi)部封裝了 jdbc,極大提高了我們的開發(fā)效率。 但是使用 Mybatis 開發(fā)也有很多痛點: 每個 Dao 接口都需要自己

    2023年04月09日
    瀏覽(17)
  • mybatis-plus使用updateBatchById小記

    mybatis-plus使用updateBatchById小記

    過程? staff_info表里,我通過sql把entry_time字段先設(shè)置成2,然后再通過代碼設(shè)置成0,設(shè)置成2的時候一共有483條數(shù)據(jù),然后通過代碼修改的時候,我把number=0132791的數(shù)據(jù)設(shè)置成null,即更新這一條數(shù)據(jù)肯定會報錯,通過debug我知道number=2這條數(shù)據(jù)在更新的list中處于index=141的位置,所

    2024年02月12日
    瀏覽(16)
  • Mybatis-Plus 使用隱患,太坑了!

    Mybatis-Plus 使用隱患,太坑了!

    作者:糊涂碼 鏈接:https://juejin.cn/post/7156428078061895710 MP 從出現(xiàn)就一直有爭議 感覺一直 都存在兩種聲音 很方便啊 通過函數(shù)自動拼接Sql 不需要去XML 再去使用標(biāo)簽 之前一分鐘寫好的Sql 現(xiàn)在一秒鐘就能寫好 簡直不要太方便 侵入Service層 不好維護 可讀性差 代碼耦合 效率不行

    2024年02月05日
    瀏覽(17)
  • mybatis-plus的一些使用案例

    (1)需求分析 在創(chuàng)建和修改的時候,需要判斷庫名是否重復(fù),而庫名是全英文,所以要忽略字母大小寫,大小寫不同被認(rèn)為是相同的字母 (2)解決思路 把數(shù)據(jù)庫里的字段,還有要查的條件字段,都轉(zhuǎn)成小寫或者大寫,然后再判斷是否相同 (3)代碼案例 (1)Api接口層 參數(shù)

    2024年02月13日
    瀏覽(20)
  • Mybatis-plus中IService接口的使用

    Mybatis-plus中IService接口的使用

    Mybatis-plus的IService接口:IService接口解釋,我們可以看到IService接口就是有一大堆方法接口。 IService的使用: IService的使用需要另外兩個接口的配合:baseMapper和ServiceImpl 第一步:實現(xiàn)basemapper接口 第二步:編寫service類 第三步:編寫serviceImpl,ServiceImpl里面是各種的方法實現(xiàn),好

    2024年02月04日
    瀏覽(33)
  • springboot使用Mybatis-plus分頁插件

    在? pom.xml ? 文件中添加 MyBatis Plus 和分頁插件的依賴: 注意替換? {mybatis-plus-version} ?為對應(yīng)的版本號。 在 Spring Boot 的配置文件? application.yml ? 中添加分頁插件的配置參數(shù): 注意代碼中的注釋,其中 ? PaginationInterceptor ?表示使用 MyBatis Plus 提供的分頁插件。 在接口層使用

    2024年02月07日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包