开发基础
开发基础笔记
mybatis-plus通用的service方法
通过jenkins配置前后端自动打包及发布
mybatis-plus实现分页的方式
Java极客技术公众号PDF
狂神说SpringBoot
Hashids java 版使用
SpringBoot
1、Web快速开发
2、结果集的封装
3、集成MyBatis实现数据库操作
4、Springboot @Validated参数校验
5、SpringBoot全局异常处理
6、拦截器HandlerInterceptor
7、集成Swagger实现API自动生成
8、集成knife4j实现API自动生成
9、Springboot集成MyBatis-Plus快速入门
10、springboot自定义注解及AOP切面使用
11、使用Shiro实现登陆和权限认证,基于MyBatis
12、集成SpringSecurity实现授权认证
13、SpringBoot集成EasyExcel实现数据导入与导出
14、Spring Task定时任务的实现
15、Quartz快速上手与实践
16、如何用代码实现Spring IOC
17、SpringBoot集成JWT,实现接口的鉴权交互
SpringCloud
Nacos作为服务注册中心
seata1.6.1 结合springcloud实现分布锁的技术笔记
一些技术博客推荐
前端面试相关
看这一篇就够了
java.util包常用的类和接口
CountDownLatch介绍与使用
Common-lang3使用入门
Hutool简单使用入门
lombok 介绍及基本使用方法
git项目统计成员代码行数和提交的次数
mysql 逗号分隔的数据 like查询
使用sonar进行代码质量检查
线上使用jmeter进行压测的时候,使用Arthas诊断工具排查响应慢的接口
php结合phpstudy8、vscode开启xdebug进行代码调试
node-red使用入门
本文档使用 MrDoc 发布
-
+
首页
mybatis-plus通用的service方法
## 核心方法介绍 ### 一、Save 新增方法 ~~~java // 插入一条记录(选择字段,策略插入) boolean save(T entity); // 插入(批量) boolean saveBatch(Collection<T> entityList); // 插入(批量) boolean saveBatch(Collection<T> entityList, int batchSize); ~~~ ### 实例演示: ~~~java @Test public void testSave() { User user= new User(); user.setAge(10); user.setEmail("text@test.com"); user.setUsername("test"); long startTime = System.currentTimeMillis(); iUserService.save(user); long endTime = System.currentTimeMillis(); System.out.println("共计时:"+(endTime-startTime)+"毫秒"); } /** * 批量新增 */ @Test public void testSaveBatch() { List<User> list = new ArrayList<>(); for (Integer i = 0; i < 10; i++) { User user = new User(); user.setAge((int) (18+i)); user.setId(6+i); user.setUsername("test"+i); user.setEmail("test"+i+"@qq.com"); list.add(user); } long stratTime = System.currentTimeMillis(); iUserService.saveBatch(list); long endTime = System.currentTimeMillis(); System.out.println("共计消耗:"+(endTime-stratTime)+"毫秒"); } ~~~ ### 二、SaveOrUpdate 新增或修改方法 ~~~java // TableId 注解存在更新记录,否插入一条记录 boolean saveOrUpdate(T entity); // 根据updateWrapper尝试更新,否继续执行saveOrUpdate(T)方法 boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper); // 批量修改插入 boolean saveOrUpdateBatch(Collection<T> entityList); // 批量修改插入 boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize); ~~~ ### 实例演示 1、根据ID去更新 ~~~java @Test public void testSaveOrUpdate(){ User user= new User(); user.setAge(66); user.setEmail("666@x.com"); user.setId(6); user.setUsername("666"); long startTime = System.currentTimeMillis(); iUserService.saveOrUpdate(user); long endTime = System.currentTimeMillis(); System.out.println("共计时:"+(endTime-startTime)+"毫秒"); } ~~~ 2、根据updateWrapper 去更新 ~~~java @Test public void testSaveOrUpdate2(){ User user= new User(); user.setAge(500); user.setEmail("500@test.com"); user.setUsername("500"); UpdateWrapper<User> updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("username","test5"); long startTime = System.currentTimeMillis(); iUserService.saveOrUpdate(user,updateWrapper); long endTime = System.currentTimeMillis(); System.out.println("共计时:"+(endTime-startTime)+"毫秒"); } ~~~ 3、批量更新 ~~~java @Test public void testSaveOrUpdateBatch() { List<User> list = new ArrayList<>(); for (Integer i = 0; i < 10; i++) { User user = new User(); user.setAge((int) (18 + i)); user.setId(6 + i); user.setUsername("test" + i); user.setEmail("test"); list.add(user); } long startTime = System.currentTimeMillis(); iUserService.saveOrUpdateBatch(list); long endTime = System.currentTimeMillis(); System.out.println("共计时:" + (endTime - startTime) + "毫秒"); } ~~~ ### 三、Remove删除方法 ~~~java // 根据 entity 条件,删除记录 boolean remove(Wrapper<T> queryWrapper); // 根据 ID 删除 boolean removeById(Serializable id); // 根据 columnMap 条件,删除记录 boolean removeByMap(Map<String, Object> columnMap); // 删除(根据ID 批量删除) boolean removeByIds(Collection<? extends Serializable> idList); ~~~ ### 实例演示 1、删除username=test5的用户 ~~~java @Test public void removeTest(){ QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("username","test5"); long startTime = System.currentTimeMillis(); iUserService.remove(queryWrapper); long endTime = System.currentTimeMillis(); System.out.println("共计时:"+(endTime-startTime)+"毫秒"); } ~~~ 2 删除id=6的用户 ~~~java @Test public void removeById() { long startTime = System.currentTimeMillis(); iUserService.removeById(6); long endTime = System.currentTimeMillis(); System.out.println("共计时:" + (endTime - startTime) + "毫秒"); } ~~~ 3 根据map删除 ~~~java @Test public void removeByMap(){ Map<String,Object> map = new HashMap<>(); map.put("username","test5"); map.put("age",18); long startTime = System.currentTimeMillis(); iUserService.removeByMap(map); long endTime = System.currentTimeMillis(); System.out.println("共计时:"+(endTime-startTime)+"毫秒"); } ~~~ 4 根据id 的list 批量删除 ~~~java @Test public void removeByIds() { List<Integer> list = new ArrayList<>(); list.add(7); list.add(8); list.add(9); list.add(10); long startTime = System.currentTimeMillis(); iUserService.removeByIds(list); long endTime = System.currentTimeMillis(); System.out.println("共计时:" + (endTime - startTime) + "毫秒"); } ~~~ ### 四、Update修改方法 ~~~java // 根据 UpdateWrapper 条件,更新记录 需要设置sqlset boolean update(Wrapper<T> updateWrapper); // 根据 whereWrapper 条件,更新记录 boolean update(T updateEntity, Wrapper<T> whereWrapper); // 根据 ID 选择修改 boolean updateById(T entity); // 根据ID 批量更新 boolean updateBatchById(Collection<T> entityList); // 根据ID 批量更新 boolean updateBatchById(Collection<T> entityList, int batchSize); ~~~ ### 实例演示 批量将所有用户的年龄全部改成了100 ~~~java @Test public void update3Test() { User user = new User(); user.setAge(100); long startTime = System.currentTimeMillis(); iUserService.update(user,null); long endTime = System.currentTimeMillis(); System.out.println("共计时:" + (endTime - startTime) + "毫秒"); } ~~~~ ### 五、查询操作 ~~~java /** * 查询数据库的数据条数 SELECT COUNT( * ) FROM user */ @Test public void testCount() { long count = iUserService.count(); System.out.println(count); } /** * 查询数据库的所有数据 SELECT * FROM user */ @Test public void testQueryList() { List<User> list = iUserService.list(); list.forEach(System.out::println); } /** * 按条件查询所有数据 SELECT * FROM user WHERE username = ? AND age = ? */ @Test public void testQueryList3() { QueryWrapper queryWrapper = new QueryWrapper<User>(); Map<String, Object> map = new HashMap<>(); map.put("username", "test5"); map.put("age", 100); queryWrapper.allEq(map); List<User> listObjs = iUserService.listObjs(queryWrapper); listObjs.forEach(System.out::println); } /** * 查询分页数据 */ @Test public void testSelectPage() { //创建条件构造器 QueryWrapper<User> queryWrapper = new QueryWrapper<User>(); queryWrapper.ge("age",15);// 大于等于15岁的 //创建分页对象 Page<User> page = new Page<User>(2,5); //分页查询 IPage<User> iPage = iUserService.page(page,queryWrapper); System.out.println("当前页码:" + iPage.getCurrent()); System.out.println("每页显示数量:" + iPage.getSize()); System.out.println("总记录数:" + iPage.getTotal()); System.out.println("总页数:" + iPage.getPages()); List<User> usersList = iPage.getRecords();//员工数据集合 usersList.forEach(System.out::println); } ~~~
superadmin
2023年4月6日 19:03
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码