MyBatis-plus之快速入门

MyBatis-plus简述

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

内置代码生成器、内置分页插件、内置性能分析插件、内置全局拦截插件等。。。

快速应用

  1. 新建一个空的SpringBoot项目

  2. 引入依赖,MyBatis-plus依赖已经包含了MyBatis框架,所以不再引入MyBatis依赖:

    这个依赖适配springboot3.x 版本

    <!-- mysql驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.30</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.20</version>
    </dependency>
    <!--mybatis-plus依赖-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
        <version>3.5.15</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.42</version>
    </dependency>
    <!-- web环境依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    1. 编写springboot配置文件
    spring:
      datasource:
        username: root
        password: root
        url: jdbc:mysql://localhost:3306/spring6?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&useUnicode=true
        driver-class-name: com.mysql.cj.jdbc.Driver
    
  3. 编写Mapper接口

    // 继承BaseMapper,BaseMapper内置了丰富的接口方法,这里就不用编写常用的方法了
    // 而且这里方法对应的映射文件也不用写了
    @Mapper
    public interface UserMapper extends BaseMapper<User> {
    
    }
    
    1. 编写controller、service、impl、domain 代码:

      @RestController
      public class UserController {
      
          @Autowired
          private UserService userService;
      
          @RequestMapping("/selectAll")
          public List<User> getUsers() {
              return userService.selectList();
          }
      }
      
      @Data
      @NoArgsConstructor
      @AllArgsConstructor
      public class User {
          private Long id;
          private String name;
          private Integer age;
          private String email;
      }
      
      public interface UserService {
          List<User> selectList();
      }
      
      @Service("userService")
      public class UserServiceImpl implements UserService {
      
          @Autowired
         private UserMapper userMapper;
      
          @Override
          public List<User> selectList() {
              return userMapper.selectList(null);
          }
      }
      

此时打开对应的url([localhost:8080/selectAll](http://localhost:8080/selectAll)即可进行测试。

开启日志

在application.yml文件中配置如下:

mybatis-plus:
  global-config:
#    去掉mybatis-plus在控制台输出的图标
    banner: false
  configuration:
    # 开启日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

通用Mapper接口介绍

基础的增删改查

@Autowired
private UserMapper userMapper;

@Test
void contextLoads() {
    User user = new User();
    user.setAge(13);
    user.setId(1L);
    user.setName("test");
    // 简单新增方法
    userMapper.insert(user);
    // 简单根据id删除
    userMapper.deleteById(2L);
    user.setAge(22);
    // 简单更新
    userMapper.updateById(user);
    // 简单查询
    User user1 = userMapper.selectById(2L);
}

通用Service接口介绍

MyBatis-plus提供了IService接口和对应的实现类ServiceImpl。该实现类已经实现了一些对应的service方法,我们可以直接使用它提供的额方法来实现功能,不用亲自编写实现方法。

具体实现关系如下:

无标1题

修改后的UserService接口如下:

public interface UserService extends IService<User> {
    List<User> selectList();
}

修改后的UserServiceImpl方法如下:

@Service("userService")
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {

    @Autowired
   private UserMapper userMapper;

    @Override
    public List<User> selectList() {
        return userMapper.selectList(null);
    }
}

此时就可以用Service来插入数据等操作:

void testServiceCRUD(){
    User user = new User();
    user.setAge(13);
    user.setId(1L);
    user.setName("test");
    // 新增
    userService.save(user);
    // 删除
    userService.removeById(2L);
    // 更新
    user.setId(1L);
    user.setName("test2");
    userService.updateById(user);
    // 查询
    List<User> users = userService.selectList();
}

自定义Mapper接口方法

自定义的接口方法和实现与mybatis的实现方式一样。

Mapper接口:

@Mapper
public interface UserMapper extends BaseMapper<User> {
    User selectByName(String name);
}

UserMapper.xml文件:

<mapper namespace="com.ali.mapper.UserMapper">
    <select id="selectByName" resultType="com.ali.domain.User">
        SELECT * FROM user where name = #{name}
    </select>
</mapper>

注意:这里的mapper接口和UserMapper.xml文件必须处于同一个目录下。

posted @ 2026-03-10 12:31  NE_STOP  阅读(12)  评论(0)    收藏  举报