
Mybatis Plus
程序猿新手_曹先生
向大佬学习,请多多指教
展开
-
Mapper中的insert()和insertSelect()的选择
首先选择使用通用方法中Mapper.insertSelective(T)实现增加原因如下:方法中但凡带有Selective,会忽略空值比如:brand中name有值, letter有值1)使用insertSelective()方法 Mapper.insertSelective(brand)-->SQL语句:insert into tb_brand(name,letter)values(?,?)其他属性为空,这时就不会出现在SQL语句中,动态拼接2)使用insertSel.原创 2020-07-22 21:30:28 · 2001 阅读 · 0 评论 -
Mybatis-plus之条件构造器(Wrapper)
测试一运行结果为:测试二结果为:测试三:结果为:测试四:结果为:原创 2020-07-19 22:10:40 · 790 阅读 · 0 评论 -
Mybatis-Plus之性能分析插件
我们平时开发过程中,会遇到一些慢的sql,性能分析插件有助于我们了解我们的sql执行时间。作用:性能分析拦截器,用于输出每条sql语句,及其执行时间。MP也提供性能分析插件,如果超过这个时间就停止运行。导入插件注意:我们mybatis_plus插件不要太高,不然它会不识别上面的setMaxTime表示sql语句执行超过1毫秒的话,就会执行错误。测试时就会出现如下错误:如果我们将时间设置为100毫秒的话:测试结果为:这时我们要在properties文件中设置我们的环境为.原创 2020-07-19 22:06:19 · 1943 阅读 · 0 评论 -
Mybatis-Plus之逻辑删除
物理删除:从数据库中直接移除逻辑删除:在数据库中没有被删除,而是通过一个变量来让他失效比如没有删除之前deleteId=0, 删除之后deleteId=1应用场景:管理员可以查看被删除的记录,防止数据丢失,类似于回收站测试一下:1)在数据库表中添加一个deleted字段2)在pojo中添加一个字段3)配置properties文件配置:就是1表示该数据已经被删除,0表示该数据没有被删除4)测试一下:删除id为1的数据:删除之后,deleted字段的值变为1:当我们再次.原创 2020-07-19 22:01:29 · 899 阅读 · 0 评论 -
Mybatis-Plus之分页查询
1.原始的limit进行分页2.pageHelper第三方插件3.MP其实也内置了分页插件如何使用?1)配置拦截器组件即可@EnableTransactionManagement@Configuration@MapperScan("com.baomidou.cloud.service.*.mapper*")public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterc原创 2020-07-19 21:56:33 · 1236 阅读 · 0 评论 -
Mybatis-Plus之查询操作
1.批量查询根据Id进行批量查询:2.条件查询 Map//条件查询之一使用map操作@Testpublic void testMap() { HashMap<String, Object> objectObjectHashMap = new HashMap<>(); objectObjectHashMap.put("name","qkcao"); objectObjectHashMap.put("age",18); List<us原创 2020-07-19 21:54:18 · 356 阅读 · 0 评论 -
Mybatis-Plus之乐观锁处理讲解(看这篇就够了)
目的:当要更新一条记录的时候,希望这条记录没有被别人更新乐观锁实现方式:取出记录时,获取当前version更新时,带上这个version执行更新时,set version = newVersion where version = oldVersion如果version不对,就更新失败乐观锁:–A线程update user set name = “kuangshen”, version = version+1 where id = 2 and version = 1–B 线程抢先完成,.原创 2020-07-19 21:52:36 · 1378 阅读 · 0 评论 -
Mybatis-Plus之自动填充(数据库表中更新,创建时间)
创建时间,修改时间,这些操作一遍都是自动化完成的,我们不希望手动更新。阿里巴巴开发手册:所有的数据库表:gmt_create,gmt_modified几乎所有的表都要配置上,而且需要自动化。方式一:数据库级别:但是最好不要这样做,因为如果我们工作了,最好不要修改数据库每次向表中插入数据时,不需要插入create_time这一列的值,因为它有默认值,它会自动填充的。再次测试插入方法时:为什么只有最后一条语句实现插入时间?因为我们在实体类中没有添加创建和更新时间字段。方式二:.原创 2020-07-19 21:46:00 · 2975 阅读 · 0 评论 -
Mybatis-Plus之更新操作
根据条件自动拼接SQL:发现上面的两条sql语句有所不同,第二条比第一条多了一个age=?,这就是mybatis-plus的强大之处,所有的sql都是自动帮你动态配置的原创 2020-07-19 21:38:34 · 1574 阅读 · 0 评论 -
Mybatis-Plus之ID自动增长的设置
1.在实体类中添加@TableId注解:2.在navicat中设置id自动增长:3.测试一下,当我们再次插入的时候,就会看到id4.对注解中的IdType源码解析:@Getterpublic enum IdType { /** * 数据库ID自增 */ AUTO(0), /** * 该类型为未设置主键类型(将跟随全局) */ NONE(1), /** * 用户输入ID * <p>原创 2020-07-19 21:36:40 · 22731 阅读 · 0 评论 -
Mybatis-plus之测试插入
发现我们并没有导入id,它自动生成了long类型的id见下一篇文章Mybatis plus 主键策略原创 2020-07-19 21:33:29 · 286 阅读 · 0 评论 -
Mybatis-plus之主键策略
运行结果可以看出user中多了一个id:主键策略:(uuid,自增id,雪花算法,redis,zookeeper)uuid: 无排序,太长了自增id:在单个数据库或读写分离或一主多从的情况下,只有一个主库可以生成。有单点故障的危险Twitter的snowflake算法:snowflake是Twitter开源的分布式ID生成算法,结果是一个long类型的ID 。其核心思想:使用41bit作为毫秒数,10bit作为机器的ID(5bit数据中心,5bit的机器ID),12bit作为毫秒内的流水号(意味.原创 2020-07-19 21:32:10 · 1308 阅读 · 0 评论 -
Mybatis_plus之配置日志
我们所有的sql现在是不可见的,我们希望知道它是怎么执行的,所以我们必须看日志原先只有:添加日志之后,配置默认的日志配置就可以了原创 2020-07-19 21:26:34 · 1076 阅读 · 2 评论