/** * Copyright (c) 2011-2014, hubin (jobob@qq.com). * <p> * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.baomidou.mybatisplus.test.mysql; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder; import com.baomidou.mybatisplus.entity.GlobalConfiguration; import com.baomidou.mybatisplus.mapper.LogicSqlInjector; import com.baomidou.mybatisplus.test.mysql.entity.User; import com.baomidou.mybatisplus.test.mysql.mapper.UserMapper; import com.baomidou.mybatisplus.toolkit.IdWorker; /** * <p> * 逻辑删除测试 * </p> * * @author hubin * @date 2017-09-09 */ public class LogicDeleteTest { public static void main(String[] args) { // 加载配置文件 InputStream in = UserMapperTest.class.getClassLoader().getResourceAsStream("mysql-config.xml"); MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder(); GlobalConfiguration gc = new GlobalConfiguration(new LogicSqlInjector());// 注入的是逻辑处理器 gc.setLogicDeleteValue("-1");// 逻辑删除值 -1 测试字段 type mf.setGlobalConfig(gc); SqlSessionFactory sessionFactory = mf.build(in); SqlSession session = sessionFactory.openSession(); UserMapper userMapper = session.getMapper(UserMapper.class); System.err.println(" debug run 查询执行 user 表数据变化! "); long id = IdWorker.getId(); int rlt = userMapper.insert(new User(id, "logic-delete-1", 18, 1)); System.err.println("插入成功记录数:" + rlt); rlt = userMapper.deleteById(id); System.err.println("根据 ID 逻辑删除成功记录数:" + rlt); User user = userMapper.selectById(id); System.out.println("逻辑删除展示下结果:" + user.getTestType()); User uu = new User(); uu.setId(user.getId()); uu.setTestType(1); rlt = userMapper.updateById(user); System.err.println("第一次:逻辑删除testType 改为 1 成功记录数:" + rlt); rlt = userMapper.insert(new User(IdWorker.getId(), "logic-delete-2", 28, 2)); System.err.println("再插入一条成功记录数:" + rlt); rlt = userMapper.delete(null); System.err.println("全表逻辑删除成功记录数:" + rlt); List<User> userList = userMapper.selectList(null); for (User u: userList) { System.out.println("全表逻辑删除 ( id= " + u.getId() + " ) 展示结果"+u.getTestType()); } rlt = userMapper.updateById(uu); System.err.println("第二次:逻辑删除testType 改为 1 成功记录数:" + rlt); Map<String, Object> map = new HashMap<>(); map.put("test_id", id); rlt = userMapper.deleteByMap(map); System.err.println("全表逻辑删除 ByMap 成功记录数:" + rlt); userList = userMapper.selectList(null); for (User u: userList) { System.out.println("全表逻辑删除 ( id= " + u.getId() + " ) 展示结果"+u.getTestType()); } } }