1.MybatisPlus与Mybatis的区别?

mybatis 是一个优秀的基于java的持久层(Dao)框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程

可以理解MybatisPlus是Mybatis的增强工具,在Mybatis的基础上只做增强不做改边,为简化开发、提高效率而生

2.如何使用?

在SpringBoot的项目中,添加进mybaits-plus的springboot的场景包

MPJBaseMapper左连接查询 mybatisplus左连接_MybatisPlus

在导入进去之后,连接我们的数据库。连接数据库的配置在yaml或properties中,跟以往的配置一样。

spring:
  datasource:
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    # useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8

当连接数据库完成后,需要建造一个独属于自己的实体类的接口。

/**
 * 在对应的 Mapper 上面实现基本的接口 BaseMapper
 * 继承了BaseMapper,所有的方法都来自父类
 * 当想要添加方法时,也可以编写自己的扩展方法
 */
@Repository
public interface UserMapper extends BaseMapper<User> {
    /**
     * 当继承 BaseMapper后,CRUD已经编写完成
     */
}

在测试类中,回填对应的实体类,使用该类即可。

@Autowired
private UserMapper userMapper;

2.1新增

在测试类中进行测试。

@Test
@DisplayName("测试插入")
public void testInsert(){
    User userOne = new User();
    userOne.setAge(12);
    userOne.setName("王老吉");
    userOne.setEmail("user@example.com");
    int reult = userMapper.insert(userOne);
    System.out.println(reult);
    System.out.println(userOne);
}

插入直接创建一个实体类,然后使用接口的insert方法新增即可。

2.2修改

@Test
@DisplayName("测试更新")
public void testUpdate() {
    User userOne = new User();
    userOne.setId(7);
    userOne.setName("时间自动填充");
    int row = userMapper.updateById(userOne);
    System.out.println(row);
}

修改也是一样,跟新增不同的是,设置实体类时,确定好修改的id,然后调用mapper接口的方法即可。

2.3查询

@Test
void contextLoads() {
    // 参数是一个Wrapper,条件构造器,这里不用就先null
    // 查询所有用户
    List<User> users = userMapper.selectList(null);
    users.forEach(System.out::println);
}

查询有很多的方法,这里直接调用mapper接口的selectList方法传入null值,即可查到对应实体类中在数据库里代表的所有数据

2.4单个查询

@Test
@DisplayName("单个查询")
public void select02(){
    User user = userMapper.selectById(5);
    System.out.println(user);
}

框架中也有对应的方法,直接用mapper接口使用方法即可。参数就是数据的ID

3.总结:

个人而言,MybatisPlus是比Mybatis更加的省事!包括使用mapper接口,它已经在接口中实现了大量的自适应 sql代码,我们使用只需要调用对应的方法就好。其中还有代码生成器这样的简便功能,谁手动创建目录谁就慢了。

MPJBaseMapper左连接查询 mybatisplus左连接_spring boot_02