springboot集成mybatisPlus

这一章记录一下springboot集成mybatisPlus的buho步骤以及其中遇到的问题

1、首先介绍一下,mybatisPlus

根据官方文档的介绍,MybatisPlus(简称mp)是对mybatis的增强而不做改变,只为ti提高效率简化开发,具体参见http://mp.baomidou.com/#/?id=%e7%ae%80%e4%bb%8b

2、开始集成mybatis-plus

  •       引入依赖的jar包
    <!--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
  • 开始使用mybatisPlus(下面说的是跟mybatis相比需要更改的地方)
  1. 在实体类上必须要指定主键字段,使用注解@TableId。如果没有使用该注解指定主键,在启动的时候会扫描不到mapper,启动失败。(这个问题查了好久,一开始没有使用该注解一直启动失败,最后看了源码发现在实体类上使用该注解,最后加上该注解,启动成功。不知道我的理解是否正确,或者跟配置文件里面的配置有什么关系,这个以后慢慢研究)如果创建的表跟实体名不一致,可以使用注解@TableName来明确指定表名
    @TableName("t_user")
    public class User {
    
        @TableId
        private Long id;
    
        private String name;
    
        private int age;
    
        private int sex;
    
        private String address;
    
       // 省略get/set方法
    
    }

     

  2. 对于mapper,要继承BaseMapper类,在该类中已经集成了最常用的CRUD方法而不再需要我们配置xml文件
  3. 添加java配置,mybatisPlus提供的分页需要手动配置 
@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以及分页操作

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在SpringBoot集成MybatisPlus需要完成以下步骤: 1. 添加依赖:在项目的pom.xml文件中添加MybatisPlus和Mybatis的依赖。 2. 配置数据源:在application.properties或application.yml文件中配置数据库连接信息和MybatisPlus的相关配置信息,比如Mapper映射文件的路径等。 3. 创建Mapper接口:定义一个Mapper接口,继承MybatisPlus提供的BaseMapper接口,并添加相应的注解。 4. 创建实体类:创建与数据库表对应的实体类,并使用注解来映射实体类属性和数据库表字段。 5. 编写业务代码:在Service层中编写相应的业务代码,包括调用Mapper接口中的方法来完成对数据库的操作。 6. 测试:编写测试代码来测试上述功能是否正常运行。 以上就是SpringBoot集成MybatisPlus的基本步骤,希望能对您有所帮助。 ### 回答2: Spring Boot集成MyBatis Plus是一种常见的组合方式,可以快速、简单地进行Java开发。下面我会简单介绍一下集成的步骤和优势。 首先,为了集成Spring Boot和MyBatis Plus,我们需要在pom.xml中添加相关依赖。这些依赖将负责将 MyBatis Plus 和 Spring Boot 连接起来。然后,我们需要在配置文件中配置数据库连接信息和MyBatis Plus的一些参数。 接下来,我们可以开始编写我们的实体类和Mapper接口。MyBatis Plus提供了很多方便的注解和接口,可以省去我们编写大量的CRUD操作代码。例如,使用@TableName注解来指定表名,使用@Mapper注解来标识Mapper接口等。 然后,我们可以在Service类中使用MyBatis Plus提供的方法来进行数据操作。例如,使用getById()方法来根据主键查询数据,使用insert()方法来插入数据等。MyBatis Plus还提供了更多的方法和条件查询的支持,可以根据具体的业务需求选择合适的方法来使用。 最后,可以使用Spring Boot提供的Web框架来暴露我们的接口,并进行测试和使用。可以使用Postman等工具来发送HTTP请求,验证我们的接口是否正常工作。 通过集成Spring Boot和MyBatis Plus,我们可以大大提高开发效率和代码质量。MyBatis Plus提供了许多便捷的功能,可以简化我们的开发过程,减少编码工作量。而Spring Boot则提供了一种快速、简单的开发框架,可以帮助我们更好地构建和管理我们的项目。 总结一下,Spring Boot集成MyBatis Plus是一种常用且优秀的开发方式。它可以帮助我们快速搭建项目、简化开发流程,同时提供了很多便捷的功能和工具,可以提高我们的开发效率和代码质量。希望这些信息对你有所帮助! ### 回答3: Spring Boot为我们提供了很多便利,可以简化我们的开发工作。MyBatis Plus是一个优秀的ORM框架,能够帮助我们更加轻松地操作数据库。 要在Spring Boot项目中集成MyBatis Plus,首先需要在pom.xml文件中添加相关的依赖。可以使用Maven或Gradle管理项目依赖,建议使用Maven。添加MyBatis Plus的依赖后,可以在项目中使用MyBatis Plus提供的各种功能,如分页查询、条件查询、条件更新等。 在Spring Boot中配置MyBatis Plus也非常简单。只需要在application.properties或application.yml文件中添加相应的配置项即可。配置项包括数据源信息、MyBatis Plus的配置信息等。在配置数据源信息时,可以使用Spring Boot提供的自动配置功能,根据配置文件中的相关配置自动创建数据源并注入到项目中。在配置MyBatis Plus信息时,可以自定义表名前缀、表名生成策略等。 在编写代码时,可以直接使用MyBatis Plus提供的各种查询方法,也可以使用自定义的SQL语句进行操作。MyBatis Plus还提供了实体类生成器工具,可以根据数据库表结构自动生成实体类,减少手动编写实体类的工作量。 总的来说,Spring Boot集成MyBatis Plus非常简单且方便。通过集成MyBatis Plus,我们可以更加轻松地操作数据库,提高开发效率。同时,MyBatis Plus在性能优化上也做了很多工作,对于大型系统的开发也有很好的支持。希望以上回答能够对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值