Mybatis-Puls

1.Puls介绍:

MyBatis-Plus (opens new window)(简称MP)是一个MyBatis (opens new window)的增强工具,

*"在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生*。

说明:使用MP将不会影响mybatis的使用。

2.MP特性:
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作
强大的CRUD操作:内置通用Mapper、通用Service,仅仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求
支持Lambda形式调用:通过Lambda表达式,方便的编写各类查询条件,无需再担心字段写错
支持主键自动生成:支持多达4种主键策略(内含分布式唯一ID生成器-Sequence),可自由配置,完美解决主键问题


3.Mybatis特点:

1 . Mxbaits是一个半自动化的ORM映射框架

      1.结果集可以实现自动化的映射.自动

       2.Sal语句需要自己手动完成.        手动
2.如果设计到单表的操作,如果每次都手写,则特别的啰嗦.所以想办法优化.


过程:


1.导入jar包:


说明: MP内部添加了mybatis的包,所以添加MP的包之后,应该删除原来的mybatis的包.

    <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>

2. 编辑POJO对象

@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
@TableName("demo_user")
        //对象与表一一对应 如果对象名和表名一致则表名可以省略
public class User implements Serializable {
    @TableId(type = IdType.AUTO)  //主键自增
    private Integer id;
    //@TableField(value = "name") //如果名称与属性一致则注解可以省略
    private String name;
    private Integer age;
    private String sex;
}


3.继承BaseMapper


//注意事项: 继承时必须添加泛型

public interface UserMapper extends BaseMapper<User> {
 
    List<User> findAll();
 
}


4.修改YML配置文件:

MP入门案例测试

 /**
     *  MP新增操作测试
     *  思想: 全自动的ORM  映射是自动的, sql自动生成的
     */
    @Test
    public void insertUser(){
        User user = new User(null,"猴子",18, "男");
        userMapper.insert(user);
        System.out.println("新增入库成功!!!!");
    }


 
 

4.工作原理:

实质: MP动态生成Sql语句.
铺垫:
1. insert into 表名(字段名…) value (属性值…)

过程:

1.用户执行userMapper.insert(user);操作

2.根据UserMapper的接口找到父级BaseMapper.根据BaseMapper的接口i找泛型对象User.

3.根据User.class获取注解@TableName("demo_user"),获取表名

4.根据User.class 获取所有的属性,根据属性获取指定的注解@TableEield(value = "name")

5.根据属性获取属性的值.之后动态拼接成Sql语句

6.将生成的Sal交给Mybatis执行入库操作.

*MP使用特点:根据其中不为null的属性进行业务操作!!!!**
 

猜你喜欢

转载自blog.csdn.net/m0_60477159/article/details/121247283