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

使用Mybatis-plus清空表數(shù)據(jù)的操作方法

 更新時間:2022年11月29日 10:51:52   作者:Alex_81D  
MyBatis 是一個基于 java 的持久層框架,它內部封裝了 jdbc,極大提高了我們的開發(fā)效率,文中給大家介紹了MybatisPlus常用API-增刪改查功能,感興趣的朋友跟隨小編一起看看吧

方法一:

public interface userInfoMapper extends BaseMapper<UserInfo> {
//清空指定表
    @Update("truncate table user")
    void deleteUserTemp();
}

 方法二:

直接使用自帶的remove接口 ,同時使用QueryWrapper參數(shù)如:

userInfoTempService.remove(new QueryWrapper<>())

引申一下 Mybatis-plus這個好用的框架:

我們知道 MyBatis 是一個基于 java 的持久層框架,它內部封裝了 jdbc,極大提高了我們的開發(fā)效率。
但是使用 Mybatis 開發(fā)也有很多痛點:
每個 Dao 接口都需要自己定義一堆增刪改查方法:

public interface UserDao {
    // 獲取所有用戶信息
    List<User> getUserList();
    
    // 根絕 id 獲取用戶信息
    User getUserById(int id);
    
    // 新增用戶信息
    boolean add(User user);
    
    // 更新用戶信息
    boolean update(User user);
    
    // 刪除用戶信息
    boolean delete(int id);
}

每個 Mapper 文件都需要寫一堆基本的增刪改查語句。

3.如果查詢的列表需要分頁,我們還需要給查詢方法封裝成分頁對象。

你可能會說:Mybatis 還能有痛點?用著多方便!

對于小項目而言,用著確實還行。但是遇到大項目,光 Dao 接口都有幾百個,如果還要手動定義一堆增刪改查方法和 sql 語句,那也很浪費時間。

那有沒有這樣一個框架:

1.封裝了 Mybatis,自帶 CRUD 方法,我們不需要自己定義 CRUD 方法。

2.提供各種查詢方法,不需要在 mapper 文件中寫一些基礎的 sql 語句。

3.封裝了分頁功能,讓分頁查詢無比絲滑。

有的,MybatisPlus 閃亮登場。
依賴:

<!-- mybatis-plus 依賴-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.0</version>
</dependency>

 -----------------------------------------------------------------------------------------------------------

MybatisPlus常用API-增刪改查  

Get

// 根據(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);

Save

// 插入一條記錄(選擇字段,策略插入)
boolean save(T entity);
// 插入(批量)
boolean saveBatch(Collection<T> entityList);
// 插入(批量)
boolean saveBatch(Collection<T> entityList, int batchSize);

SaveOrUpdate

// 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

// 根據(jù) entity 條件,刪除記錄
boolean remove(Wrapper<T> queryWrapper);
// 根據(jù) ID 刪除
boolean removeById(Serializable id);
// 根據(jù) columnMap 條件,刪除記錄
boolean removeByMap(Map<String, Object> columnMap);
// 刪除(根據(jù)ID 批量刪除)
boolean removeByIds(Collection<? extends Serializable> idList);

 Update

// 根據(jù) UpdateWrapper 條件,更新記錄 需要設置
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);

List

// 查詢所有
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

// 無條件分頁查詢
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ù)
int count();
// 根據(jù) Wrapper 條件,查詢總記錄數(shù)
int count(Wrapper<T> queryWrapper);

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);

Delete

// 根據(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);

Select

// 根據(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清空表數(shù)據(jù)的文章就介紹到這了,更多相關Mybatis-plus清空表數(shù)據(jù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java String類功能、原理與應用案例【統(tǒng)計、判斷、轉換等】

    java String類功能、原理與應用案例【統(tǒng)計、判斷、轉換等】

    這篇文章主要介紹了java String類功能、原理與應用案例,結合實例形式詳細分析了java String類的基本功能、構造方法,以及使用String類實現(xiàn)統(tǒng)計、判斷、轉換等功能相關操作技巧,需要的朋友可以參考下
    2019-03-03
  • spring多數(shù)據(jù)源配置實現(xiàn)方法實例分析

    spring多數(shù)據(jù)源配置實現(xiàn)方法實例分析

    這篇文章主要介紹了spring多數(shù)據(jù)源配置實現(xiàn)方法,結合實例形式分析了spring多數(shù)據(jù)源配置相關操作技巧與使用注意事項,需要的朋友可以參考下
    2019-12-12
  • SpringSecurity實現(xiàn)權限認證與授權的使用示例

    SpringSecurity實現(xiàn)權限認證與授權的使用示例

    本文主要介紹了SpringSecurity實現(xiàn)權限認證與授權的使用示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • Java 8 引入lambda表達式的原因解析

    Java 8 引入lambda表達式的原因解析

    這篇文章主要介紹了Java 8 引入lambda表達式的原因解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • 簡單分析Java線程編程中ThreadLocal類的使用

    簡單分析Java線程編程中ThreadLocal類的使用

    這篇文章主要介紹了Java線程編程中ThreadLocal類的使用,包括使用其對共享變量的操作的分析,需要的朋友可以參考下
    2015-12-12
  • java讀取cvs文件并導入數(shù)據(jù)庫

    java讀取cvs文件并導入數(shù)據(jù)庫

    這篇文章主要為大家詳細介紹了java讀取cvs文件并導入數(shù)據(jù)庫,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 詳解Gradle安裝并配置到IDEA的方法

    詳解Gradle安裝并配置到IDEA的方法

    這篇文章主要介紹了Gradle安裝并配置到IDEA的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • java調用通義千問API的詳細完整步驟

    java調用通義千問API的詳細完整步驟

    通義千問是阿里云自主研發(fā)的大語言模型,能夠在用戶自然語言輸入的基礎上,通過自然語言理解和語義分析,理解用戶意圖,在不同領域、任務內為用戶提供服務和幫助,下面這篇文章主要給大家介紹了關于java調用通義千問API的詳細完整步驟,需要的朋友可以參考下
    2024-02-02
  • 微信開發(fā)協(xié)議小結

    微信開發(fā)協(xié)議小結

    通過本教程給大家分享微信開發(fā)協(xié)議小結的相關知識,非常不錯,具有一定的參考借鑒價值,感興趣的朋友一起看看吧
    2016-11-11
  • Java自定義實現(xiàn)鏈隊列詳解

    Java自定義實現(xiàn)鏈隊列詳解

    這篇文章主要為大家詳細介紹了Java自定義實現(xiàn)鏈隊列的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評論

从化市| 泰兴市| 奉化市| 阿坝县| 红原县| 绵阳市| 九寨沟县| 图木舒克市| 毕节市| 三江| 新河县| 疏附县| 夏河县| 嘉禾县| 大悟县| 靖边县| 慈溪市| 贡山| 玉林市| 吉首市| 龙井市| 连城县| 长宁区| 佛教| 拜城县| 邓州市| 从化市| 屏边| 喀什市| 厦门市| 邢台县| 庆云县| 鄂托克旗| 萨嘎县| 许昌市| 平安县| 屯留县| 武汉市| 芒康县| 德清县| 天津市|