MyBatis-Plus 通用IService使用介绍
IService使用
service层需要继承IService,当然实现层也要继承对应的实现类。
/** * <p> * 用户 服务类 * </p> * * @author IT贱男 * @since 2019-06-14 */ public interface UserService extends IService<User> { }
/** * <p> * 用户 服务实现类 * </p> * * @author IT贱男 * @since 2019-06-14 */ @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { }
这里小编基本的增删改查就不一一演示了,演示几个特殊一点的方法。
getOne(),这个是方法返回结果不止一条则会抛出异常,如果想默认取第一条结果,可以给这方法传第二个参数为false。
@Test public void getOne() { User one = userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getAge, 31),false); System.out.println(one); }
saveOrUpdateBatch(),批量新增或者修改方法,判断ID是否存在,如果ID不存在执行新增,如果ID存在先执行查询语句,查询结果为空新增,否则修改。
@Test public void saveOrUpdateBatch() { User user1 = new User(); user1.setName("兔子"); user1.setAge(18); User user2 = new User(); user2.setId(1088250446457389060L); user2.setName("乌龟"); user2.setAge(18); List<User> users = Arrays.asList(user1, user2); boolean b = userService.saveOrUpdateBatch(users); System.out.println(b); }
接下来说一下基于lambda的相关操作
/** * lombda查询 */ @Test public void lambdaQuery(){ List<User> list = userService.lambdaQuery().eq(User::getAge, 18).list(); list.forEach(System.out::println); } /** * lombda修改 */ @Test public void lambdaUpdate(){ boolean update = userService.lambdaUpdate().eq(User::getAge, 18).set(User::getAge, 31).update(); System.out.println(update); } /** * lombda删除 */ @Test public void lambdaRemoce(){ boolean remove = userService.lambdaUpdate().eq(User::getAge, 18).remove(); System.out.println(remove); }
更多操作
更多操作请移至官网查看:https://mp.baomidou.com/guide/crud-interface.html#service-crud-接口
分类:
java
标签:
mybatis
, mybatis-plus
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)