mybatis 批量修改_MyBatis 簡化開發框架 fastmybatis
阿新 • • 發佈:2020-12-10
技術標籤:mybatis 批量修改mybatis 批量刪除mybatis 批量更新mybatis 批量新增mybatis將欄位改為nullmybatis批量修改
fastmybatis是一個mybatis開發框架,目的為簡化mybatis的開發,讓開發更高效。
- 零配置快速上手
- 無需編寫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