Mybatis-Plus入门复习整理

Mybatis-plus入门复习整理

概念:

mybatis-plus是mybatis的增强,只做增强,不做改变–只能用作单表操作

spring整合mybatis-plus:

只需要将pom文件中的mybatis依赖换成mybatis-plus的依赖即可

java
 <!-- mp 依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>2.3</version>
        </dependency>

创建mybatisplus-config.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>

在主启动类中添加@Mapperscan注解

@SpringBootApplication
@MapperScan("com.mybatis.mapper")//将指定mapper交给spring管理
public class SpringBootRun {
	public static void main(String[] args) {
		SpringApplication.run(SpringBootRun.class, args);
	}
}

在poj类中添加@TableName注解,用以指定表名

@Data//自动生成get set方法
@TableName("user")//指定表名
public class user {
    @TableId(value = "id",type = IdType.AUTO)//指定id为主键且自增
    private Integer id;
    private String name;
    private Integer age;
}

##生成Mapper接口
Mapper接口需要实现MaseMapper, 规定泛型为接收数据的pojo类

public interface UserMapper extends BaseMapper<user> {
}

创建UserService接口

public interface UserService {
    List<user> selectAll();
}

创建UserService的实现类

测试基本crud操作

@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper userMapper;
    user user = new user();


    //查询所有数据
    @Override
    public List<user> selectAll() {
        List<user> users = userMapper.selectList(null);

        return users;
    }

    //根据id查询
    @Override
    public user selectById(){
        user user = userMapper.selectById(2);
        return user;
    }


    //添加数据
    @Override
    public void insert() {
        user.setId(null);
        user.setName("misi");
        user.setAge(24);
        userMapper.insert(user);

    }

    //更新
    public List<user> update(){
        user.setId(2);
        user.setName("yomi");
        userMapper.updateById(user);
        return selectAll();
    }

    //根据id删除数据
    @Override
    public List<user> delete() {
       userMapper.deleteById(1);
       return selectAll();
    }


}

分页查询

1.配置类中配置分页插件`

/**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

测试类中测试

@Test
   public void selectpage(){
       //1.创建page对象
       //传入两个参数:当前页 和 每页显示记录数
       Page<User> page = new Page<>(1,3);
       //调用mp分页查询的方法
       //调用mp分页查询过程中,底层会把分页所有数据封装到page对象里
       userMapper.selectPage(page, null);

       //通过page对象获取分页数据
       System.out.println(page.getCurrent());//获取当前页
       System.out.println(page.getRecords());//每页显示的list集合
       System.out.println(page.getSize());//每页最多显示的记录数
       System.out.println(page.getTotal());//总记录数
       System.out.println(page.getPages());//总页数
       
       System.out.println(page.hasNext());//是否有下一页
       System.out.println(page.hasPrevious());//是否有上一页
   }

删除数据

物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除数据

逻辑删除:假删除,将对应数据中代表是否被删除字段状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录

逻辑删除业务实现
1.在表中添加deleted字段
在这里插入图片描述
2.在实体类中添加属性,并在属性上添加@TableLogic注解

@TableLogic
    private Integer deleted;

2.配置类中添加逻辑删除的删除的插件

	/**
     * 逻辑删除插件
     */
    @Bean
    public ISqlInjector sqlInjector() {
        return new LogicSqlInjector();
    }

测试前
在这里插入图片描述
测试后,数据还在,但是mybatisplus查询不到,deleted改为1,若想查询已被逻辑删除的数据,则可以用原始的sql语句查询
在这里插入图片描述
注意:被删除数据的deleted 字段的值必须是 0,才能被选取出来执行逻辑删除的操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值