1. 程式人生 > 其它 >mybatis 批量修改_MyBatis 簡化開發框架 fastmybatis

mybatis 批量修改_MyBatis 簡化開發框架 fastmybatis

技術標籤:mybatis 批量修改mybatis 批量刪除mybatis 批量更新mybatis 批量新增mybatis將欄位改為nullmybatis批量修改

fastmybatis是一個mybatis開發框架,目的為簡化mybatis的開發,讓開發更高效。

dccc912b6cafa677aa34b0a9c7ba5f49.png
  • 零配置快速上手
  • 無需編寫xml檔案即可完成CRUD操作
  • 支援mysql,sqlserver,oracle,postgresql,sqlite
  • 支援自定義sql,sql語句可以寫在配置檔案中,同樣支援mybatis標籤
  • 支援與spring-boot整合
  • 輕量級,無侵入性,可與傳統mybatis用法共存

fastmybatis與MyBatis generator對比

快速開始(springboot)

  • 新建一個springboot專案
  • pom.xml新增fastmybatis-spring-boot-starter
net.oschina.durcframework fastmybatis-spring-boot-starter 1.0.2
  • 假設資料庫有張t_user表,新增對應的實體類TUser.java和MapperTUserMapper.java
  • 在application.propertis中配置資料庫連線
  • 編寫測試用例
@AutowiredTUserMapper mapper; // 根據主鍵查詢@Testpublic void testGetById() { TUser user = mapper.getById(3); System.out.println(user);}

Mapper方法列表

/** * 根據物件查詢,可以傳主鍵值,也可以傳整個物件 *  * @param id * @return 返回實體物件,沒有返回null */Entity getById(ID id);/** * 根據條件查詢單條記錄 * @param query 查詢條件 * @return 返回實體物件,沒有返回null */Entity getByQuery(@Param("query")Query query);/** * 根據欄位查詢一條記錄 * @param column 資料庫欄位名 * @param value 欄位值 * @return 返回實體物件,沒有返回null */Entity getByColumn(@Param("column")String column,@Param("value")Object value);/** * 查詢總記錄數 *  * @param query 查詢條件 * @return 返回總記錄數 */long getCount(@Param("query")Query query); /** * 根據欄位查詢集合 * @param column 資料庫欄位名 * @param value 欄位值 * @return 返回實體物件集合,沒有返回空集合 */List listByColumn(@Param("column")String column,@Param("value")Object value);/** * 條件查詢 *  * @param query 查詢條件 * @return 返回實體物件集合,沒有返回空集合 */List list(@Param("query")Query query);/** * 查詢指定欄位結果 * @param columns 返回的欄位 * @param query 查詢條件 * @return 返回結果集 */List> listMap(@Param("columns")List columns, @Param("query")Query query);/** * 新增,新增所有欄位 *  * @param entity * @return 受影響行數 */int save(Entity entity);/** * 新增(忽略null資料) * @param entity * @return 受影響行數 */int saveIgnoreNull(Entity entity);/** * 批量新增,只支援mysql,sqlserver2008及以上資料庫.
* 若要相容其它版本資料庫,請使用saveMulti()方法 * @param entitys * @return */int saveBatch(@Param("entitys")List entitys);/** * 批量新增,相容更多的資料庫版本.
* 此方式採用union all的方式批量insert,如果是mysql或sqlserver2008及以上推薦saveBatch()方法. * @param entitys * @return */int saveMulti(@Param("entitys")List entitys);/** * 修改,修改所有欄位 * * @param entity * @return 受影響行數 */int update(Entity entity);/** * 根據主鍵更新不為null的欄位 * * @param entity * @return 受影響行數 */int updateIgnoreNull(Entity entity);/** * 根據條件批量更新 * * @param entity 待更新的資料,可以是實體類,也可以是Map{@literal} * @param query 更新條件 * @return 受影響行數 */int updateByQuery(@Param("entity") Object entity, @Param("query") Query query);/** * 刪除 * * @param entity * @return 受影響行數 */int delete(Entity entity);/** * 根據id刪除 * * @param id 主鍵id * @return 受影響行數 */int deleteById(ID id);/** * 根據條件刪除 * * @param query * @return 受影響行數 */int deleteByQuery(@Param("query")Query query);

Query查詢物件

查詢姓名為張三,並且年齡為22歲的使用者:Query query = new Query().eq("username