BaseMapperX
package cn.iocoder.yudao.framework.mybatis.core.mapper; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.baomidou.mybatisplus.extension.toolkit.Db; import org.apache.ibatis.annotations.Param; import java.util.Collection; import java.util.List; /** * 在 MyBatis Plus 的 BaseMapper 的基础上拓展,提供更多的能力 */ public interface BaseMapperX<T> extends BaseMapper<T> { default PageResult<T> selectPage(PageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) { // MyBatis Plus 查询 IPage<T> mpPage = MyBatisUtils.buildPage(pageParam); selectPage(mpPage, queryWrapper); // 转换返回 return new PageResult<>(mpPage.getRecords(), mpPage.getTotal()); } default T selectOne(String field, Object value) { return selectOne(new QueryWrapper<T>().eq(field, value)); } default T selectOne(SFunction<T, ?> field, Object value) { return selectOne(new LambdaQueryWrapper<T>().eq(field, value)); } default T selectOne(String field1, Object value1, String field2, Object value2) { return selectOne(new QueryWrapper<T>().eq(field1, value1).eq(field2, value2)); } default T selectOne(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2) { return selectOne(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2)); } default Long selectCount() { return selectCount(new QueryWrapper<T>()); } default Long selectCount(String field, Object value) { return selectCount(new QueryWrapper<T>().eq(field, value)); } default Long selectCount(SFunction<T, ?> field, Object value) { return selectCount(new LambdaQueryWrapper<T>().eq(field, value)); } default List<T> selectList() { return selectList(new QueryWrapper<>()); } default List<T> selectList(String field, Object value) { return selectList(new QueryWrapper<T>().eq(field, value)); } default List<T> selectList(SFunction<T, ?> field, Object value) { return selectList(new LambdaQueryWrapper<T>().eq(field, value)); } default List<T> selectList(String field, Collection<?> values) { return selectList(new QueryWrapper<T>().in(field, values)); } default List<T> selectList(SFunction<T, ?> field, Collection<?> values) { return selectList(new LambdaQueryWrapper<T>().in(field, values)); } default List<T> selectList(SFunction<T, ?> leField, SFunction<T, ?> geField, Object value) { return selectList(new LambdaQueryWrapper<T>().le(leField, value).ge(geField, value)); } /** * 批量插入,适合大量数据插入 * * @param entities 实体们 */ default void insertBatch(Collection<T> entities) { Db.saveBatch(entities); } /** * 批量插入,适合大量数据插入 * * @param entities 实体们 * @param size 插入数量 Db.saveBatch 默认为 1000 */ default void insertBatch(Collection<T> entities, int size) { Db.saveBatch(entities, size); } default void updateBatch(T update) { update(update, new QueryWrapper<>()); } default void updateBatch(Collection<T> entities, int size) { Db.updateBatchById(entities, size); } }
posted on 2023-02-20 08:33 JavaCoderPan 阅读(801) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南