欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis-Plus?CRUD操作方法

 更新時間:2023年10月25日 12:43:21   作者:wei_shuo  
通用?Service?CRUD?封裝?IService?接口,進一步封裝?CRUD?采用?get?查詢、remove?刪除?、list?查詢集合、page?分頁的前綴命名方式區(qū)分?Mapper?層避免混淆,這篇文章主要介紹了Mybatis-Plus?CRUD的相關知識,需要的朋友可以參考下

Mybatis-Plus CRUD

通用 Service CRUD 封裝 IService 接口,進一步封裝 CRUD 采用 get 查詢、remove 刪除 、list 查詢集合、page 分頁的前綴命名方式區(qū)分 Mapper 層避免混淆
泛型 T 為任意實體對象
如果自定義通用 Service 方法,可以創(chuàng)建自己的 IBaseService 繼承 Mybatis-Plus 提供的基類IService
對象 Wrapper 為 條件構造器

Service CRUD 接口

Save

類型參數(shù)名描述
Tentity實體對象
CollectionentityList實體對象集合
intbatchSize插入批次數(shù)量
// 插入一條記錄(選擇字段,策略插入)
boolean save(T entity);
// 插入(批量)
boolean saveBatch(Collection<T> entityList);
// 插入(批量)
boolean saveBatch(Collection<T> entityList, int batchSize);

SaveOrUpdate

類型參數(shù)名描述
Tentity實體對象
WrapperupdateWrapper實體對象封裝操作類 UpdateWrapper
CollectionentityList實體對象集合
intbatchSize插入批次數(shù)量
// TableId 注解存在更新記錄,是否插入一條記錄
boolean saveOrUpdate(T entity);
// 根據(jù)updateWrapper嘗試更新,是否繼續(xù)執(zhí)行saveOrUpdate(T)方法
boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper);
// 批量修改插入
boolean saveOrUpdateBatch(Collection<T> entityList);
// 批量修改插入
boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize);

Remove

類型參數(shù)名描述
WrapperqueryWrapper實體包裝類 QueryWrapper
Serializableid主鍵 ID
Map<String, Object>columnMap表字段 map 對象
Collection<? extends Serializable>idList主鍵 ID 列表
// 根據(jù) UpdateWrapper 條件,更新記錄 需要設置sqlset
boolean update(Wrapper<T> updateWrapper);
// 根據(jù) whereWrapper 條件,更新記錄
boolean update(T updateEntity, Wrapper<T> whereWrapper);
// 根據(jù) ID 選擇修改
boolean updateById(T entity);
// 根據(jù)ID 批量更新
boolean updateBatchById(Collection<T> entityList);
// 根據(jù)ID 批量更新
boolean updateBatchById(Collection<T> entityList, int batchSize);

Update

類型參數(shù)名描述
WrapperupdateWrapper實體對象封裝操作類 UpdateWrapper
Tentity實體對象
CollectionentityList實體對象集合
intbatchSize更新批次數(shù)量
// 根據(jù) UpdateWrapper 條件,更新記錄 需要設置sqlset
boolean update(Wrapper<T> updateWrapper);
// 根據(jù) whereWrapper 條件,更新記錄
boolean update(T updateEntity, Wrapper<T> whereWrapper);
// 根據(jù) ID 選擇修改
boolean updateById(T entity);
// 根據(jù)ID 批量更新
boolean updateBatchById(Collection<T> entityList);
// 根據(jù)ID 批量更新
boolean updateBatchById(Collection<T> entityList, int batchSize);

Get

類型參數(shù)名描述
Serializableid主鍵 ID
WrapperqueryWrapper實體對象封裝操作類 QueryWrapper
booleanthrowEx有多個 result 是否拋出異常
Tentity實體對象
Function<? super Object, V>mapper轉換函數(shù)
// 根據(jù) ID 查詢
T getById(Serializable id);
// 根據(jù) Wrapper,查詢一條記錄。結果集,如果是多個會拋出異常,隨機取一條加上限制條件 wrapper.last("LIMIT 1")
T getOne(Wrapper<T> queryWrapper);
// 根據(jù) Wrapper,查詢一條記錄
T getOne(Wrapper<T> queryWrapper, boolean throwEx);
// 根據(jù) Wrapper,查詢一條記錄
Map<String, Object> getMap(Wrapper<T> queryWrapper);
// 根據(jù) Wrapper,查詢一條記錄
<V> V getObj(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);

List

類型參數(shù)名描述
WrapperqueryWrapper實體對象封裝操作類 QueryWrapper
Collection<? extends Serializable>idList主鍵 ID 列表
Map<String, Object>columnMap表字段 map 對象
Function<? super Object, V>mapper轉換函數(shù)
// 查詢所有
List<T> list();
// 查詢列表
List<T> list(Wrapper<T> queryWrapper);
// 查詢(根據(jù)ID 批量查詢)
Collection<T> listByIds(Collection<? extends Serializable> idList);
// 查詢(根據(jù) columnMap 條件)
Collection<T> listByMap(Map<String, Object> columnMap);
// 查詢所有列表
List<Map<String, Object>> listMaps();
// 查詢列表
List<Map<String, Object>> listMaps(Wrapper<T> queryWrapper);
// 查詢全部記錄
List<Object> listObjs();
// 查詢全部記錄
<V> List<V> listObjs(Function<? super Object, V> mapper);
// 根據(jù) Wrapper 條件,查詢全部記錄
List<Object> listObjs(Wrapper<T> queryWrapper);
// 根據(jù) Wrapper 條件,查詢全部記錄
<V> List<V> listObjs(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);

Page

IPagepage翻頁對象
WrapperqueryWrapper實體對象封裝操作類 QueryWrapper
// 無條件分頁查詢
IPage<T> page(IPage<T> page);
// 條件分頁查詢
IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper);
// 無條件分頁查詢
IPage<Map<String, Object>> pageMaps(IPage<T> page);
// 條件分頁查詢
IPage<Map<String, Object>> pageMaps(IPage<T> page, Wrapper<T> queryWrapper);

Count

類型參數(shù)名描述
WrapperqueryWrapper實體對象封裝操作類 QueryWrapper
// 查詢總記錄數(shù)
int count();
// 根據(jù) Wrapper 條件,查詢總記錄數(shù)
int count(Wrapper<T> queryWrapper);

Chain

query

// 鏈式查詢 普通
QueryChainWrapper<T> query();
// 鏈式查詢 lambda 式。注意:不支持 Kotlin
LambdaQueryChainWrapper<T> lambdaQuery();
// 示例:
query().eq("column", value).one();
lambdaQuery().eq(Entity::getId, value).list();

update

// 鏈式更改 普通
UpdateChainWrapper<T> update();
// 鏈式更改 lambda 式。注意:不支持 Kotlin
LambdaUpdateChainWrapper<T> lambdaUpdate();

// 示例:
update().eq("column", value).remove();
lambdaUpdate().eq(Entity::getId, value).update(entity);

Mapper CRUD 接口

通用 CRUD 封裝 BaseMapper 接口,為 Mybatis-Plus 啟動時自動解析實體表關系映射轉換為 Mybatis 內部對象注入容器

泛型 T 為任意實體對象

參數(shù) Serializable 為任意類型主鍵 Mybatis-Plus 不推薦使用復合主鍵,約定每一張表,都有自己的唯一 id 主鍵

對象 Wrapper 為 條件構造器

Insert

類型參數(shù)名描述
Tentity實體對象
// 插入一條記錄
int insert(T entity);

Delete

類型參數(shù)名描述
Wrapperwrapper實體對象封裝操作類(可以為 null)
Collection<? extends Serializable>idList主鍵 ID 列表(不能為 null 以及 empty)
Serializableid主鍵 ID
Map<String, Object>columnMap表字段 map 對象
// 根據(jù) entity 條件,刪除記錄
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
// 刪除(根據(jù)ID 批量刪除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根據(jù) ID 刪除
int deleteById(Serializable id);
// 根據(jù) columnMap 條件,刪除記錄
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);

Update

類型參數(shù)名描述
Tentity實體對象 (set 條件值,可為 null)
WrapperupdateWrapper實體對象封裝操作類(可以為 null,里面的 entity 用于生成 where 語句)

調用updateById方法前,需要在T entity(對應的實體類)中的主鍵屬性上加上@TableId注解

// 根據(jù) whereWrapper 條件,更新記錄
int update(@Param(Constants.ENTITY) T updateEntity, @Param(Constants.WRAPPER) Wrapper<T> whereWrapper);
// 根據(jù) ID 修改
int updateById(@Param(Constants.ENTITY) T entity);

Select

類型參數(shù)名描述
Serializableid主鍵 ID
WrapperqueryWrapper實體對象封裝操作類(可以為 null)
Collection<? extends Serializable>idList主鍵 ID 列表(不能為 null 以及 empty)
Map<String, Object>columnMap表字段 map 對象
IPagepage分頁查詢條件(可以為 RowBounds.DEFAULT)
// 根據(jù) ID 查詢
T selectById(Serializable id);
// 根據(jù) entity 條件,查詢一條記錄
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 查詢(根據(jù)ID 批量查詢)
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根據(jù) entity 條件,查詢全部記錄
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 查詢(根據(jù) columnMap 條件)
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
// 根據(jù) Wrapper 條件,查詢全部記錄
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根據(jù) Wrapper 條件,查詢全部記錄。注意: 只返回第一個字段的值
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 根據(jù) entity 條件,查詢全部記錄(并翻頁)
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根據(jù) Wrapper 條件,查詢全部記錄(并翻頁)
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根據(jù) Wrapper 條件,查詢總記錄數(shù)
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

到此這篇關于Mybatis-Plus CRUD的文章就介紹到這了,更多相關Mybatis-Plus CRUD內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java中四種線程池的使用示例詳解

    Java中四種線程池的使用示例詳解

    這篇文章主要給大家介紹了關于Java中四種線程池的使用方法,四種線程池分別包括FixedThreadPool、CachedThreadPool、ScheduledThreadPool以及SingleThreadExecutor,文中給出了詳細的示例代碼供大家參考,需要的朋友們下面來一起看看吧。
    2017-08-08
  • JDK集合源碼之解析TreeMap(一)

    JDK集合源碼之解析TreeMap(一)

    下面小編就為大家?guī)硪黄獪\談java中的TreeMap 排序與TreeSet 排序。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-07-07
  • idea 安裝 Mybatis 開發(fā)幫助插件 MyBatisCodeHelper-Pro 插件破解版的方法

    idea 安裝 Mybatis 開發(fā)幫助插件 MyBatisCodeHelper-Pro 插件破解版的方法

    MyBatisCodeHelper-Pro 插件可以幫助我們快速的開發(fā) mybatis,這篇文章給大家介紹idea 安裝 Mybatis 開發(fā)幫助插件 MyBatisCodeHelper-Pro 插件破解版的相關知識,感興趣的朋友跟隨小編一起看看吧
    2020-09-09
  • Java開發(fā)人員需知的十大戒律

    Java開發(fā)人員需知的十大戒律

    這篇文章主要介紹了Java開發(fā)人員需知的十大戒律,較為詳細的總結分析了Java開發(fā)中常見的注意事項與編程技巧,需要的朋友可以參考下
    2015-10-10
  • Java使用EasyExcel實現(xiàn)對excel文件的讀寫方式

    Java使用EasyExcel實現(xiàn)對excel文件的讀寫方式

    這篇文章主要介紹了Java使用EasyExcel實現(xiàn)對excel文件的讀寫方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java正則匹配中文的方法實例分析

    Java正則匹配中文的方法實例分析

    這篇文章主要介紹了Java正則匹配中文的方法,結合實例形式分析了Java針對中文、標點及引號等匹配操作相關技巧,需要的朋友可以參考下
    2017-03-03
  • 使用 Java 將 byte[] 轉換為 File 對象并上傳到外部服務器的方法(最新推薦)

    使用 Java 將 byte[] 轉換為 File 對象并上

    本文展示了如何通過 Java 和 Spring 來處理圖像文件的獲取、保存和上傳,通過 RestTemplate 獲取字節(jié)數(shù)組并將其轉換為 File 對象,可以輕松實現(xiàn)從遠程 URL 獲取文件并將其上傳到外部服務器,感興趣的朋友一起看看吧
    2025-03-03
  • Java自定義長度可變數(shù)組的操作

    Java自定義長度可變數(shù)組的操作

    這篇文章主要介紹了Java自定義長度可變數(shù)組的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • java 結合jQuery實現(xiàn)跨域名獲取數(shù)據(jù)的方法

    java 結合jQuery實現(xiàn)跨域名獲取數(shù)據(jù)的方法

    下面小編就為大家?guī)硪黄猨ava 結合jQuery實現(xiàn)跨域名獲取數(shù)據(jù)的方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • 如何解決Java多線程死鎖問題

    如何解決Java多線程死鎖問題

    死鎖是一個很嚴重的、必須要引起重視的問題,本文主要介紹了死鎖的定義,解決方法和面試會遇到的問題,感興趣的可以了解一下
    2021-05-05

最新評論