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一样,自定义一些特殊的方法。