
MybatisPlus
文章平均质量分 51
MybatisPlus的一些理解和使用案例
天元白手
专精于企业数据分析、设计及实施商业智能业务解决方案、软件开发及数据管理和治理。
展开
-
mybatisPlus的new QueryWrapper<>()和new LambdaQueryWrapper<>()的用法
举个例子:现在数据库有一张user的表:我现在需要使用QueryWrapper去查询名称为zhangsan的用户信息:@SpringBootTestclass MybatisplusShiroApplicationTests { @Autowired private UserMapper userMapper; @Test void contextLoads() { QueryWrapper<User> wrapper =原创 2021-07-10 15:07:43 · 17297 阅读 · 0 评论 -
MybatisPlus主键生成策略
MybatisPlus自带主键生成策略"雪花算法",如果不做配置,默认也是使用这个算法生成id。snowflake(雪花)是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。具体实现的代码可以参看https://github.com/twitter/snowflak原创 2021-06-16 16:08:06 · 557 阅读 · 0 评论 -
MybatisPlus如何进行CRUD接口操作?
MybatisPlus如何进行CRUD接口操作?在进行mybatisplus的CRUD基本操作之前,我们需要先把代码生成好,如果你的代码没有自动生成好请点击跳转,先做好基础配置,比如引入架包的依赖和生成好Entity、Controller、mapper、Service等等mybatisplus自动生成的service接口和mapper接口都已封装好了CRUD的代码,我们可以直接使用,同时也可以自定义service接口方法,mybatisplus同样支持下面进行代码的测试我将要做些什么?原创 2021-06-12 15:49:28 · 1026 阅读 · 0 评论 -
MybatisPlus的一些原理
*MyBatis-Plus简介(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。原创 2021-06-11 18:14:47 · 6963 阅读 · 1 评论 -
如何使用MybatisPlus的代码生成器?
我在这里将做些什么?在这里我将展示MybatisPlus自动生成实体类、控制层、服务层、mapper等代码,这些基础的代码全部不需要我们手动创建,由MybatisPlus自动帮我们完成,我们只需要告诉MybatisPlus怎么生成这些代码就可以了,也就是编辑策略配置文件。当然了在此之前我们需要配置好测试的环境,配置好测试的数据库和表数据。搭建测试的数据库和表数据的SQL/* Navicat Premium Data Transfer Source Server : MySQL8原创 2021-06-11 18:07:00 · 806 阅读 · 1 评论 -
MybatisPlus实现复杂查询
mp实现复杂查询,使用queryWrapper构建条件,创建QueryWrapper构建条件,使用方法实现各种条件查询:1、ge大于等于、gt大于、le小于等于、lt小于、isNull、isNotNull //mp实现复杂查询 @Test public void testSelectQuery(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); // 查询age >= 30记录原创 2021-04-11 21:24:16 · 1519 阅读 · 0 评论 -
MybatisPlus性能分析插件
性能分析插件:(1)参数说明:参数:maxTime:Sql执行最长时长,超过自动停止运行,有助于发现问题。参数:format:SQL是否格式化,默认false(2)在MybatisPlusConfig中配置在这里需要注意的是新版的mp不支持这个插件,需要把mp降级到3.0.5/** * sql执行性能分析插件 * 开发环境使用,线上不推荐,maxTime是sql最大执行时长 * @return */ @Bean @Profile({"dev","test"}) /原创 2021-04-11 20:43:59 · 625 阅读 · 0 评论 -
MybatisPlus的逻辑删除
逻辑删除和物理删除的区别是:逻辑删除是假的删除,物理删除是真的删除。 //删除操作 物理删除 @Test public void testDeleteById(){ int i = userMapper.deleteById(1L); System.out.println(i); } //批量删除 @Test public void testDeleteBatchIds(){ int i = userMapper.deleteBatchIds(Ar原创 2021-04-11 18:16:22 · 742 阅读 · 0 评论 -
MybatisPlus实现分页查询
首先预热:1、list集合//多个id批量查询 @Test void testSelect1(){ //这里的selectBatchIds方法 需要传入一个id的集合参数 List<User> users = userMapper.selectBatchIds(Arrays.asList(1L, 2L, 3L)); users.forEach(System.out::println); }2、map的方法 @Test void testSele原创 2021-04-11 17:25:20 · 3427 阅读 · 0 评论 -
MybatisPlus的乐观锁(笔记分享)
乐观锁主要解决的问题是:丢失更新。多个人同时修改同一条数据,最后提交的把之前提交的数据覆盖这是一个问题。解决方案:悲观锁:“串行”,有人已修改数据就上锁,只有前面的人修改了之后,才能下一个人再修改乐观锁:主要适用场景:当更新一条数据的时候,希望这条记录没有被别人更新,也就是说实现线程安全的数据更新乐观锁实现方式:取出记录时,获取当前version更新时,带上这个version执行更新时,set version=newVersion where version=oldVersion如果v原创 2021-04-11 16:54:47 · 405 阅读 · 0 评论 -
MybatisPlus的自动填充创建时间和修改时间案例(笔记分享)
创建时间和修改时间的字段填充,第一步,在实体类里面进行自动填充数据添加注解//创建时间 @TableField(fill = FieldFill.INSERT) private Date createTime;//修改时间 @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime;第二步,创建自定义实现类 MyMetaObjectHandler,并且实现接口里面的方法/** @author thunder原创 2021-04-11 16:15:49 · 660 阅读 · 0 评论 -
MybatisPlus快速入门案例
MybatisPlus的入门案很简单的,但是MybatisPlus却是不简单,任何技术学精通都需要一定的时间去学习,去实践,再进行总结,现在是科技快速发展的时代,以前程序员需要手写的代码,现在通过插件都可以自动生成了,而我们也需要跟上时代的步伐。1、首先需要创建好数据库和准备好表格:DROP TABLE IF EXISTS user;CREATE TABLE user( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL D原创 2021-04-11 14:56:29 · 176 阅读 · 0 评论