谷粒学苑项目第一天-MybatisPlus基础
1.导入相关依赖
1 <dependencies> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter</artifactId> 5 </dependency> 6 7 <dependency> 8 <groupId>org.springframework.boot</groupId> 9 <artifactId>spring-boot-starter-test</artifactId> 10 <scope>test</scope> 11 <exclusions> 12 <exclusion> 13 <groupId>org.junit.vintage</groupId> 14 <artifactId>junit-vintage-engine</artifactId> 15 </exclusion> 16 </exclusions> 17 </dependency> 18 19 <!--mybatis-plus--> 20 <dependency> 21 <groupId>com.baomidou</groupId> 22 <artifactId>mybatis-plus-boot-starter</artifactId> 23 <version>3.0.5</version> 24 </dependency> 25 26 <!--mysql--> 27 <dependency> 28 <groupId>mysql</groupId> 29 <artifactId>mysql-connector-java</artifactId> 30 </dependency> 31 32 <!--lombok用来简化实体类--> 33 <dependency> 34 <groupId>org.projectlombok</groupId> 35 <artifactId>lombok</artifactId> 36 </dependency> 37 </dependencies>
再到主启动类添加@MapperScan("com.atguigu.mybatisplus.mapper")包扫描,因为mapper接口都没有实现类
2.简单的增删改查
第一步:自动注入相应的Mapper对象
@Autowired private UserMapper userMapper;
第二步:
2.1 插入操作
User user = new User(“猪猪”,“18”);
userMapper.insert(user);
2.2查询操作
2.2.1根据id查询记录
User user = userMapper.selectById(1L);
2.2.2 通过多个id批量查询
3. 简单条件查询
HashMap<String, Object> map = new HashMap<>();
map.put("name", "Helen");
map.put("age", 18);
List<User> users = userMapper.selectByMap(map);
4.分页操作
首先创建配置类MyConfig,再其中加入以下代码
/** * 分页插件 */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); }
测试
@Test public void testSelectPage() { Page<User> page = new Page<>(1,5); userMapper.selectPage(page, null);查询第一页的五个数据 page.getRecords().forEach(System.out::println); System.out.println(page.getCurrent());//当前页码 System.out.println(page.getPages());//总页码 System.out.println(page.getSize());//页码大小 System.out.println(page.getTotal());//查询得到数据总数 System.out.println(page.hasNext());//是否有下一页 System.out.println(page.hasPrevious());//是否有上一页 }
5.删除操作
userMapper.deleteById(8L);//通过ID单个删除
int result = userMapper.deleteBatchIds(Arrays.asList(8, 9, 10));//通过ID多个删除
其中还可以逻辑删除,首先需要再表示数据是否删除的字段加上
@TableField(fill = FieldFill.INSERT)
@TableLogic
再application.properties 加入配置
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
最后再MyConfig文件中加入
@Bean public ISqlInjector sqlInjector() { return new LogicSqlInjector(); }
6.开发环境设置
在application.properties文件中设置
#环境设置:dev、test、prod
spring.profiles.active=dev
然后再到MyConfig配置文件中配置
/** * SQL 执行性能分析插件 * 开发环境使用,线上不推荐。 maxTime 指的是 sql 最大执行时长 */ @Bean @Profile({"dev","test"})// 设置 dev test 环境开启 public PerformanceInterceptor performanceInterceptor() { PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor(); performanceInterceptor.setMaxTime(100);//ms,超过此处设置的ms则sql不执行 performanceInterceptor.setFormat(true); return performanceInterceptor; }
7.条件构造器
@Test // mybatisPlus中复杂的条件查询 public void WrapperTests(){ // 创建QuerryWrapper对象 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); // 通过QueryWrapper设置条件 //1、ge(大于)、gt(大于等于)、le(小于)、lt(小于等于)、 // 1.1查询age大于30的 //queryWrapper.ge("age",30); //2、eq(等于), ne(不等于) //queryWrapper.eq("name","吴俊杰"); //queryWrapper.ne("name","吴俊杰"); //3.between //3.1 年龄在20-30 //queryWrapper.between("age",20,30); //4.like //queryWrapper.like("name","H"); //5.orderByDesc(升序) orderByAsc(降序) //queryWrapper.orderByAsc("id"); //6.last(在后面拼接sql语句) //queryWrapper.last("limit 1"); //7. 指定要查询的列 queryWrapper.select("name","age"); List<User> users = userMapper.selectList(queryWrapper); for (User user : users) { System.out.println(user); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构