赞
踩
这一章记录一下springboot集成mybatisPlus的buho步骤以及其中遇到的问题
1、首先介绍一下,mybatisPlus
根据官方文档的介绍,MybatisPlus(简称mp)是对mybatis的增强而不做改变,只为ti提高效率简化开发,具体参见http://mp.baomidou.com/#/?id=%e7%ae%80%e4%bb%8b
2、开始集成mybatis-plus
- <!--spring boot mybatis plus依赖-->
- <!--该依赖已经包含mybatis及mybatis-spring依赖,勿重复加入以免引起冲突-->
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-boot-starter</artifactId>
- <version>3.0-RC1</version>
- </dependency>
该包的结构图如下:
- #mybatis-plus配置
- mybatis-plus:
- mapper-locations: classpath:/mapper/*Mapper.xml
- #实体扫描,多个package用逗号或者分号分隔
- typeAliasesPackage: com.wuhaijun.entity
- global-config:
- # 数据库相关配置
- db-config:
- #主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
- id-type: AUTO
- #字段策略 IGNORED:"忽略判断",NOT_NULL:"非 NULL 判断"),NOT_EMPTY:"非空判断"
- field-strategy: not_empty
- #驼峰下划线转换
- column-underline: true
- #数据库大写下划线转换
- #capital-mode: true
- #逻辑删除配置
- logic-delete-value: 0
- logic-not-delete-value: 1
- db-type: mysql
- #刷新mapper 调试神器
- refresh: true
- # 原生配置
- configuration:
- map-underscore-to-camel-case: true
- cache-enabled: false
- logging:
- level: warn
- @TableName("t_user")
- public class User {
-
- @TableId
- private Long id;
-
- private String name;
-
- private int age;
-
- private int sex;
-
- private String address;
-
- // 省略get/set方法
-
- }
- @Configuration
- @MapperScan("com.springboot.mybatisPlus.mapper*")
- public class MybatisPlusConfig {
-
- @Bean
- public PaginationInterceptor paginationInterceptor() {
- return new PaginationInterceptor();
- }
-
- }
这样就完成了mybatisPlus所有的准备工作了。下面就来介绍一下具体使用了,直接贴上代码:
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.wuhaijun.entity.User;
- import com.wuhaijun.mapper.UserMapper;
- import com.wuhaijun.service.UserService;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.List;
-
- @Service
- public class UserServiceImpl implements UserService {
-
- private Logger logger = LoggerFactory.getLogger(getClass());
-
- @Resource
- private RedisTemplate<String,User> redisTemplate;
-
- @Autowired
- private UserMapper mapper;
-
- @Override
- public void insert(User user) {
- Integer count = mapper.insert(user);
- if(count > 0){
- logger.info("插入成功");
- }else{
- logger.info("插入失败");
- }
- }
-
- @Override
- public void delete(User user) {
- mapper.deleteById(user.getId());
- }
-
- @Override
- public void update(User user) {
- //mapper.updateById(user);
- /**
- * update(@Param("et") T var1, @Param("ew") Wrapper<T> var2);
- * 第一个参数是要更新的对象,第二个参数是更新格式
- * 对于setSql()方法,这里指定的属性值会覆盖更新对象中对应的属性值,没有指定的属性值继续按照更新对象中的值更新数据库
- * 同时对于字符串类型必须要使用单引号,否则会报错;eg:setSql("name='谢逊'")
- */
- mapper.update(user,new UpdateWrapper<User>().setSql("name = '" + user.getName() + "'").eq("id",1L));
- }
-
- @Override
- public List<User> selectListBySQL(){
- /**
- * 这是自定义查询方法,这里跟原生的MyBatis写法一样,可以使用注解,也可以读取xml中的sql
- * 使用MyBatisPlus集成之后的方法,都不需要配置xml
- */
- List<User> users = mapper.selectListBySQL();
- return users;
- }
-
- @Override
- public List<User> selectListByConditon(User user) {
- /**
- * 这里使用QueryWrapper来添加查询的约束
- */
- QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("name",user.getName());
- List<User> users = mapper.selectList(wrapper);
- return users;
- }
-
- @Override
- public List<User> selectListByConditonForPage(User user,int currentPage,int pageSize) {
- /**
- * 添加约束条件,同时分页
- */
- IPage<User> page = new Page<User>(currentPage,pageSize);
- QueryWrapper<User> wrapper = new QueryWrapper<User>().like("name",user.getName());
- IPage<User> userIPage = mapper.selectPage(page, wrapper);
- return userIPage.getRecords();
- }
-
- @Override
- public User findUserById(int id) {
- /**
- * 原生Mybatis写法
- */
- return mapper.findUserById(id);
- }
-
- }
以上使用MP完常用的CRUD以及分页操作
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。