mybatis-plus逻辑删除】的更多相关文章

本篇介绍easymybatis如配置乐观锁和逻辑删除. 乐观锁 easymybatis提供的乐观锁使用方式跟JPA一样,使用@Version注解来实现.即:数据库增加一个int或long类型字段version,然后实体类version字段上加上@Version注解即可.实现原理是根据mysql的行锁机制(InnoDB下),同一条记录只能被一条SQL执行,后面的SQL排队等待.这样version改变后,等待中的SQL还是老的version号,因此更新失败. @Version private Lon…
在使用mybatisplus中,可使用逻辑删除.案例中,使用mybatisplus逆向生成model,使用delete_status为识别逻辑删除字段. springboot 中配置启动逻辑删除 mybatis-plus: global-config: db-config: id-type: auto logic-delete-value: logic-not-delete-value: 在生成的model实体类中配置逻辑删除字段注解 @TableLogic public class User…
Spring Boot项目中数据源的配置可以通过两种方式实现: 1.application.yml或者application.properties配置 2.注入DataSource及SqlSessionFactory两个Bean 通过第二种方式配置数据源则按照MybatisPlus官方文档使用分页及逻辑删除插件会无效,解决思路是在初始化SqlSessionFactory将插件设置进去 /** * 逻辑删除插件 */ @Bean public GlobalConfig globalConfig()…
Mybatisplus的AR模式 Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录.ActiveRecord 一直广受动态语言( PHP . Ruby 等)的喜爱,而 Java 作为准静态语言,对于 ActiveRecord 往往只能感叹其优雅,所以 MP 也在 AR 道路上进行了一定的探索,仅仅需要让实体类继承 Model 类且实现主键指定方法,即可开启 AR 之旅.逻辑删除 逻辑删除的本质是修改操作,…
本文为Mybatis Plus系列文章的第8篇,前7篇访问地址如下: 小书MybatisPlus第1篇-整合SpringBoot快速开始增删改查 小书MybatisPlus第2篇-条件构造器的应用及总结 小书MybatisPlus第3篇-自定义SQL 小书MybatisPlus第4篇-表格分页与下拉分页查询 小书MybatisPlus第5篇-Active Record模式精讲 小书MybatisPlus第6篇-主键生成策略精讲 小书MybatisPlus第7篇-代码生成器的原理精讲及使用方法 一…
MP(mybatis plus)已经大大简化了我们好多的开发操作,基本的增删改查都有了,包括代码生成等等,今天想说的是它的逻辑删除功能.我们都在数据库设计时候经常会有is字段,表示是否删除,为了留下员工数据,而只做逻辑删除,不做物理删除,但是MP默认的配置是物理删除,即直接调用的数据库delete操作,但是可以通过配置使调用MP的deleteXXX得方法时底层调用update操作. springboot整合mybatis-plus 依赖 <dependency> <groupId>…
回到目录 关于逻辑删除 对于逻辑删除之前的做法是在实体类中加个字段,一般是status,其中一种状态是删除,当然也有其它做法,如加个bool的字段IsDeleted,这些其实都过于武断,即它在基类里加上后,所以实体类都会有这种特性,而对于现实的数据表,可能不显示这种逻辑删除的特性,如关系表,日志表,可能删除就是物理上的直接delete,而这种删除字段加上去,我们的做也是在业务层手动调用update方法,或者在底层提供一个delete方法的重载,总之,感觉不是很爽! 看了ABP的软删除之后,对大叔…
逻辑删除设备:(数据表中还有这条记录,不显示出来) 思路: 数据表加个字段display,值为Y/N,只显示display为Y的,删除时,把display的值改为N,就不会显示出来 jsp页面如下图,要获取选中的复选框,把选中的id传给SpringMVC的Controller 完整流程如下: 1.sbgl_list.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-…
为了容易记忆,项目里所有表记录的逻辑删除可以用“-1”(或其他值)来表示.…
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) Apache POI读取excel文件数据 1.1 快递员的条件分页查询 --关键 需要将查询条件 和分页条件都绑定到一次请求中 1. 提供工具方法:将表单序列化为json对象 //工具方法:将表单中输入项格式化为json对象 {"input的name":"input的value…
通过mybatis-plus实现分页,也是很简单,插件大法. 一.分页 1.配置分页插件 把分页的插件也配置到统一的配置类里: @Configuration // 配置扫描mapper的路径 @MapperScan("com.pingguo.mpdemo.mapper") public class MpConfig { // 乐观锁插件 @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { re…
自定义填充 设置自定义填充规则 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; ​ import java.util.Date; ​ @Component public class MyBatisMetaObjectHand…
Springboot中mybatis执行逻辑源码分析 在上一篇springboot整合mybatis源码分析已经讲了我们的Mapper接口,userMapper是通过MapperProxy实现的一个动态代理,所有调用userMapper的方法,最终都会代理到MapperProxy的invoke方法上,我们这次就来看看mybatis具体的执行流程.为了简单易懂,本次的示例用的是最简单的查询语句且不包含事务. 本篇文档的源码路径https://github.com/wbo112/blogdemo/t…
Mybatis实现批量删除操作 学习内容: 1. 使用 2. 代码实现 2.1 UserMapper.java 接口 2.2 UserMapper.xml 总结: 学习内容: 1. 使用 这里通过动态 SQL 语句来实现批量删除操作,通过标签foreach collection="" 来实现. 2. 代码实现 2.1 UserMapper.java 接口 // 使用注解的方式传递 Long 数组到 UserMapper.xml 文件 public interface UserMappe…
在Mapper.xml文件中 <!-- 批量删除 --> <delete id="deleteAd" parameterType="java.util.List"> update cnt_advert set is_enable = '0' where id in <foreach item="id" collection="list" open="(" close="…
一.需求介绍 前端是一个列表页面,列表可以进行复选框的选择,后台进行关联表数据的删除. 二.框架介绍 springboot+mybatis 数据库用的postgresql 三.具体代码(前端js) 1.前端涉及到的代码 //判断选中状态var ids =""; $(".checkbox").each(function () { if($(this).is(':checked')) ids +=$(this).val() + ",";});ids…
公司工程用的是Mybatis的example的类,自动生成了对数据库的操作,批量操作的今天用到了,两种方式,一种需要拓展它生成的类,另一种自带的. 批量删除的id是以集合List传递 id以List<Long>的形式传递 Criteria criteria = example.createCriteria(); criteria.andIdIn(id); 再调用deleteByExample(example)这个方法即可. 另外一种方式是在配置文件中添加以数组的删除方式:  …
原文地址:https://blog.csdn.net/javaee_sunny/article/details/52511842 一. 这里主要考虑两种参数类型:数组或者集合. 而这点区别主要体现在EmpMapper.xml文件中标签的collection属性: 当collection=”array“时,表名参数为数组; 当collection=”list“时,表名参数为集合. 二. 注意: 无论Mybatis是与mysql数据库结合,还是与Oracle数据库,都同样适合如下设置与操作. 三.…
接上文->Mybatis快速入门<- 1.在UserMapper.xml配置更新和删除 <!-- 更新操作--> <update id="update" parameterType="com.hao.domain.User"> update user set username=#{username},password=#{password} where id=#{id} </update> <!-- 删除操作--…
1.简单说明. MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO( Plain Old Java Objects,普通的Java 对象)映射成数据库中的记录. 每一个MyBatis项目中都以一个对象sqlSessionFactory为核心,它可以通过sqlSessionFactoryBuilder来获得,它产生了一个个的sqlSession. 2.关于项目中的使用做详尽说明. 什么是Mapper对象?根据Mybatis的官方手册,应用程序除了要初始…
需求描述:将符合某条件的几条记录删除 解决思路:对于多个id,可以使用sql关键词 in ,只要满足数据库的id在你的id集合或者list中,就删除,从而实现批量删除.循环delete方法是在是low到爆,就不再提了. 代码: List<OhSysPriRoleOrg> roList = (List<OhSysPriRoleOrg>)dao.findForList("OhSysPriRoleOrgMapper.getResByRoleIdAndOrgId",pa…
知识点:当传入参数为数组时,XX.xml文件中,标签为collection属性 参考博客:https://blog.csdn.net/javaee_sunny/article/details/52511842 ------------------------------------------------------------------------------------------------------------ 1.当collection="array"时,传入参数为数组…
service层: @Override public void batchDeletes(List list) { creditDao.batchDeletes(list); } 控制层controller: /** * 批量删除 batch */ @RequestMapping(value="/batchDeletes") @ResponseBody public List<Credit> batchDeletes(HttpServletRequest request,H…
pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifac…
UserMapper.java: package com.bjsxt.mapper; import java.util.List; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import com.bjsxt.pojo.User; public interface UserMapper { /** * mysql动态查询语句 * @param id * @para…
在字段上加上这个注解再执行BaseMapper的删除方法时,删除方法会变成修改 例: 实体类:    @TableLogic private Integer del;   service层: 调用BaseMapper的deleteById(id); 执行是效果: 加@TableLogic的情况下 走 Update 表名 set 加注解的列=值 where del=值    不加@TableLogic的情况下 走 delete from 表名 where del=值 @TableLogic注解参数…
实现思路: 1. checkbox全选获取批量删除的id数组 2. ajax以字符串的形式将id数组传给控制器 3. 控制器将字符串分割成List数组作为参数传给mapper 具体代码: 1. 前端代码 <table> <thead> <tr> <th>#</th> <th>id</th> <th>文件名</th> <th>文件类型</th> <th>上传时间&l…
原样式: 看着很不爽 本文 idea 版本为:idea 2020.3.1,以下操作均基于此版本进行 解决办法 1.去除警告 Settings>Editor>Inspections>SQL>No data sources configured 和 SQL dialect detection No data sources configured :没有配置数据源 SQL dialect detection:SQL方言检测 去除警告过后还有默写语句存在背景色 2.去除"注入语言…
(一)小小的一次记载. (二):最近的项目都是使用MyBatis,批量新增自己都会写了,但是一次批量删除可把我给折腾了下,写法网上都有,但是照着做就是不行,最后问公司的人,问网友才得到答案,那就是jdbc中需要在url中指定允许进行进行多条语句同时执行. 自己在写批量更新的时候也把相应的语句打印出来了的,复制出来执行是没问题,但是用junit测试的时候一直报错如下 Error code 1064, SQL state 42000: You have an error in your SQL sy…
Java生鲜电商平台-商城系统库存问题分析以及产品设计对逻辑/物理删除思考 说明:在生鲜电商的库存设计,是后台的重点,也是难点,关乎商品是否存在超卖.商品的库存增加方式倒不难,直接在后台添加即可,而扣减方式就尤为重要,用户在前端提交订单减库存,还是在支付成功后减库存,两种方案各有利弊,对后台库存数据的变化影响也很大. 这里且先不说两种方案的利弊,先看看淘宝是如何做的,淘宝是将两种方案都做了,给卖家选择. 12306是怎么做的呢,小编大胆的猜想,是支付成功后,减的库存,而且一定是. 下面来分析下两…