主题:beetlsql如何封装批量删除

LSG90823 2019年07月04日 120

封装自己的BaseMapper如何封装根据主键批量删除

闲大赋 2019年07月05日

不是有SQLManager.updateByIdBatch 方法可以做到,这个很少用,为啥要放到BaseMapper里呢?如果你想用,可以使用接口default方法

interface YourMapper extends BaseMapper{
  default public removeIds(List<User> ids){
        SQLManager sql = getSQLManager();
        sql.updateByIdBatch(ids)
  }
}

闲大赋 2019年07月09日

看错了,没有内置批量删除功能,你只能自己写一个,用

public int[] updateBatch(String sqlId, List<?> list) 

或者使用

public int[] executeBatchUpdate(SQLBatchReady batch) 

但你要自己扩展一个BaseMapper增加一个批量删除,这就麻烦了,只能给你写个提示,你试试能否自己完成

default void removeIds(List<Integer> ids) { 
    Class targets = this.getTargetEntity();
    SQLManager sql = this.getSQLManager();
    String del = "delete form "+sql.getNc.getTable(targets)+" where id=?";

   SQLBatchReady batch = new SQLBatchReady(del,...)
  
    sql.executeBatchUpdate(batch)
}