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执行入库操作.