MybatisPlus

1.MybatisPlus

1.1简介

MybatisPlus简称MP,是Mybatis一个增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

1.2 特性说明

重点说明:MP适用于单表操作,多表操作需要手写sql

  • 无侵入性
  • 损耗小
  • 强大的CRUD操作

1.3 导入jar包

导入MybatisPlus包,删除Mybatis包

   <!--spring整合mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

1.4 实现对象和表的映射

1.5 继承公共的Mapper接口

public interface DeptMapper extends BaseMapper<Dept> {
}

MP规则:
BaseMapper T MP 要操作的表是谁?T必须引入对象

1.6 修改配置文件

说明:SpringBoot应该由原来的Mybatis操作数据库,现在换成MP的机制,所以应该修改SpringBoot整合的MP的操作。
在这里插入图片描述

1.7 MP入门案例

@SpringBootTest
public class TestSpring {
   @Autowired
    private DeptMapper deptMapper;

   @Test
    public void testInsert(){
       System.out.println(deptMapper.getClass());
       List<Dept> all = deptMapper.findAll();
       System.out.println(all);
   }
   @Test
    public void testFind(){
       List<Dept> depts = deptMapper.selectList(null);
       System.out.println(depts);
   }

1.8 Mybatis及MP的CURD操作练习

1.8.1 编辑测试代码

@SpringBootTest
public class TestSpring {
   @Autowired
    private DeptMapper deptMapper;

   @Test
    public void testInsert(){
       System.out.println(deptMapper.getClass());
       List<Dept> all = deptMapper.findAll();
       System.out.println(all);
   }
   @Test
    public void testFind(){
       List<Dept> depts = deptMapper.selectList(null);
       System.out.println(depts);
   }
   @Test
    public void insert(){
       Dept dept = new Dept();
       dept.setDeptno(60).setDname("学习部").setLoc("银川");
       deptMapper.insert(dept);
   }
   @Test
    public void update(){
      String  newDname = "教学部";
      String oldDname = "学习部";
      deptMapper.updateByDname(oldDname, newDname);
   }

   @Test
    public void delete(){
       String dname = "教学部";
       deptMapper.deleteByDname(dname);

   }
   @Test
    public void updates(){
       Dept dept = new Dept();
       dept.setDeptno(10).setDname("shis").setLoc("上海");
       deptMapper.updateById(dept);
   }
   @Test
    public void deletes(){
       deptMapper.deleteById(60);
   }

1.8.2 编辑Mapper接口

import java.util.List;
//@Mapper
public interface DeptMapper extends BaseMapper<Dept> {
    List<Dept> findAll();
    @Update("update dept set dname = #{newDname} where dname = #{oldDname}")
    void updateByDname(String oldDname,String newDname);
    @Delete("delete from dept where dname =#{dname} ")
    void deleteByDname(String dname);
}

1.9 MP工作原理

  • 通过注解实现对象与表的一一映射
  • 通过属性注解实现对象的属性和表中的字段一一映射
  • 将公共的方法进行抽取,抽取到BaseMapper接口中
  • 将用户操作的方法对象转化为数据库能够识别的sql语句

拼接过程:

  • 通过xxxMapper查找父级接口BaseMapper
  • 根据BaseMapper查找泛型对象
  • 根据泛型对象查找指定的注解@TableName,获取表名
  • 根据泛型对象的属性,动态获取表中的字段@TableField
  • 在获取字段的同时,获取属性的值,最后进行sql拼接
  • MP将拼接好的sql交给Mybatis框架处理执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值