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

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中IO和NIO的本質和區(qū)別

    淺談Java中IO和NIO的本質和區(qū)別

    IO的全稱是input output,是java程序跟外部世界交流的橋梁,IO指的是java.io包中的所有類,他們是從java1.0開始就存在的。NIO叫做new IO,是在java1.4中引入的新一代IO。IO的本質是什么呢?它和NIO有什么區(qū)別呢?我們該怎么學習IO和NIO呢?看完這篇文章一切都有答案。
    2021-06-06
  • java如何實現(xiàn)自動生成數(shù)據(jù)庫設計文檔

    java如何實現(xiàn)自動生成數(shù)據(jù)庫設計文檔

    以前我們還需要手寫數(shù)據(jù)庫設計文檔、現(xiàn)在可以通過引入screw核心包來實現(xiàn)Java?數(shù)據(jù)庫文檔一鍵生成。本文將具體介紹一下如何通過java自動生成數(shù)據(jù)庫設計文檔,需要的朋友可以參考下
    2021-11-11
  • SpringMVC加載控制與Postmand的使用和Rest風格的引入及RestFul開發(fā)全面詳解

    SpringMVC加載控制與Postmand的使用和Rest風格的引入及RestFul開發(fā)全面詳解

    SpringMVC是一種基于Java,實現(xiàn)了Web MVC設計模式,請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將Web層進行職責解耦?;谡埱篁寗又傅木褪鞘褂谜埱?響應模型,框架的目的就是幫助我們簡化開發(fā),SpringMVC也是要簡化我們日常Web開發(fā)
    2022-10-10
  • 詳解Spring事件發(fā)布與監(jiān)聽機制

    詳解Spring事件發(fā)布與監(jiān)聽機制

    Spring提供了ApplicationContext事件機制,可以發(fā)布和監(jiān)聽事件,這個特性非常有用。Spring內置了一些事件和監(jiān)聽器,例如在Spring容器啟動前,Spring容器啟動后,應用啟動失敗后等事件發(fā)生后,監(jiān)聽在這些事件上的監(jiān)聽器會做出相應的響應處理
    2021-06-06
  • 如何將SpringBoot項目打成?war?包并部署到Tomcat

    如何將SpringBoot項目打成?war?包并部署到Tomcat

    這篇文章主要介紹了如何將SpringBoot項目?打成?war?包?并?部署到?Tomcat,當前環(huán)境是windows,tomcat版本是8.5采用的springboot版本是2.2.3,本文結合實例代碼給大家詳細講解需要的朋友可以參考下
    2022-11-11
  • JDK20?+?SpringBoot?3.1.0?+?JdbcTemplate?使用案例詳解

    JDK20?+?SpringBoot?3.1.0?+?JdbcTemplate?使用案例詳解

    通過 JdbcTemplate 直接執(zhí)行 SQL 語句,結合源碼動態(tài)編譯即可方便實現(xiàn)動態(tài)修改代碼邏輯的效果,這篇文章主要介紹了JDK20?+?SpringBoot?3.1.0?+?JdbcTemplate?使用,需要的朋友可以參考下
    2023-09-09
  • java多線程編程之從線程返回數(shù)據(jù)的兩種方法

    java多線程編程之從線程返回數(shù)據(jù)的兩種方法

    從線程中返回數(shù)據(jù)和向線程傳遞數(shù)據(jù)類似。也可以通過類成員以及回調函數(shù)來返回數(shù)據(jù)。但類成員在返回數(shù)據(jù)和傳遞數(shù)據(jù)時有一些區(qū)別,下面讓我們來看看它們區(qū)別在哪
    2014-01-01
  • mybatis plus表的創(chuàng)建時間和修改時間的操作方法

    mybatis plus表的創(chuàng)建時間和修改時間的操作方法

    這篇文章主要介紹了mybatis plus表的創(chuàng)建時間和修改時間的實現(xiàn)方法,本文給大家分享兩種方法,每種方法通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • Java實現(xiàn)復原IP地址的方法

    Java實現(xiàn)復原IP地址的方法

    這篇文章主要介紹了Java實現(xiàn)復原IP地址的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 淺談Java內部類與靜態(tài)內部類的區(qū)別

    淺談Java內部類與靜態(tài)內部類的區(qū)別

    本文主要介紹了淺談Java內部類與靜態(tài)內部類的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06

最新評論

淄博市| 高雄县| 福州市| 曲松县| 三台县| 大庆市| 晋江市| 长丰县| 出国| 辉县市| 江油市| 施秉县| 肥东县| 台北市| 措勤县| 东宁县| 杨浦区| 姜堰市| 邳州市| 托克逊县| 麻阳| 和龙市| 鹿邑县| 抚远县| 镇坪县| 衡阳市| 叶城县| 正阳县| 库伦旗| 康马县| 木兰县| 宜阳县| 正阳县| 兴海县| 梨树县| 广饶县| 广昌县| 广南县| 永登县| 英德市| 珠海市|