mybatis-plus简单使用方法

一,mybatis-plus介绍

  使用springboot配合mybatis-plus能大大提升开发效率,mybatis-plus相比mybatis来说,可以减少mapper.xml的开发,减少service层的编写。

  下面say nothing without codes

二,代码结构

  引包:

1,pom

 1     <dependency>
 2             <groupId>com.baomidou</groupId>
 3             <artifactId>mybatis-plus</artifactId>
 4             <version>3.0.3</version>
 5         </dependency>
 6 
 7         <dependency>
 8             <groupId>mysql</groupId>
 9             <artifactId>mysql-connector-java</artifactId>
10         </dependency>
11 
12         <dependency>
13             <groupId>org.springframework.boot</groupId>
14             <artifactId>spring-boot-starter-jdbc</artifactId>
15         </dependency>
16      <dependency>
17             <groupId>com.baomidou</groupId>
18             <artifactId>mybatis-plus-boot-starter</artifactId>
19             <version>3.1.2</version>
20         </dependency>
21 
22         <dependency>
23             <groupId>com.alibaba</groupId>
24             <artifactId>druid-spring-boot-starter</artifactId>
25             <version>1.1.9</version>
26         </dependency>
27         <dependency>
28             <groupId>com.baomidou</groupId>
29             <artifactId>mybatis-plus-annotation</artifactId>
30             <version>3.1.2</version>
31         </dependency>
32         <dependency>
33             <groupId>com.baomidou</groupId>
34             <artifactId>mybatis-plus-extension</artifactId>
35             <version>3.1.2</version>
36         </dependency>

jar包要全部引入,否则加载过程中会出现不能代理实例化接口,无法加载SQLSessionFactory等错误。

2,controller

@Controller
@RequestMapping("/chong")
public class CommonController {
    @Autowired
    UserService userService;

    @RequestMapping("/userList")
    @ResponseBody
    public List<UserEntity> getUserList(@RequestBody UserEntity userEntity) {
        return userService.selectUsers(userEntity);
    }
}

3,service


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.zs.entity.UserEntity;
import com.zs.mapper.UserMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
@Service
public class UserService {

    @Resource
    private UserMapper userMapper;

    public List<UserEntity> selectUsers(UserEntity userEntity) {

        QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(StringUtils.isNotEmpty(userEntity.getName()), "name", userEntity.getName());

        return userMapper.selectList(queryWrapper);
    }
}

  这里可以看出使用plus的core包里的wrapper,减少了service层的判断或者sql上的if判断

特别注意的是这里的wrapper不要引错了

4,mapper

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zs.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<UserEntity> {
}

  简洁吧,其实基本的增删改查,BaseMapper已经帮我们实现了,我们只需要引入plus的start包,就自动帮我们实现mapper的接口代理对象,所以在service里注入mapper,spring并不会提醒出错,因为有了代理对象。

 

5,然后就可以运用

 

 这里要注意application的层级关系,否则springboot自动扫描application同级别及子级别的类,这是要通过scan指定包来解决扫描问题。

以下是执行结果:

 

 三,总结

mybatis-plus里面还有分页等好用的插件,大大加快开发进程,是个不错的选择,也可以像通常mapper一样,自定义一些特殊的方法。

posted @ 2020-05-04 10:51  superChong  阅读(2641)  评论(0编辑  收藏  举报