SpringBoot快速集成MyBatis-plus---(第一篇)

SpringBoot整合Mybatis-plus

git项目地址 完整版

1.创建项目

首先我们需要创建一个SpringBoot创建,我使用的是maven构建SpringBoot项目.在这里我们就不贴图了

2.导入SpringBoot以及其他的依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.1</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.22</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.16</version>
        </dependency>
    </dependencies>

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

        </plugins>
        <!--生产xml-->
        <!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                    <include>**/*.html</include>
                    <include>**/*.css</include>
                    <include>**/*.js</include>
                    <include>**/*.*</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

​ 注:我用得mysql为 5.7版本的你们可根据自身版本挑选依赖

2.1创建SpringBoot启动类

public static void main(String[] args) throws Exception{
        Long s1 = System.currentTimeMillis();
        ConfigurableApplicationContext application = SpringApplication.run(MybatisApplication.class, args);
        Long s2 = System.currentTimeMillis();

        Environment env = application.getEnvironment();
        String ip = InetAddress.getLocalHost().getHostAddress();
        String port = env.getProperty("server.port");
        String path = env.getProperty("server.servlet.context-path");

        System.out.println("=======================================>");
        System.out.println("启动耗时=======>"+(s2-s1));
        System.out.println("Local:http://localhost:" + port + path);
        System.out.println("serve start-up success");
        System.out.println("=======================================>");
    }

2.2创建yml文件

#配置端口号
server:
  port: 8085


#配置数据库连接
spring:
  datasource:
#配置的数据源为druid
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/gxhserve?UseSSL=true&characterEncoding=UTF-8&UseUnicode=true
    username: root
    password: 123456



#配置MybatisPlus
mybatis-plus:
  global-config:
    #关闭启动MybatisPlus自带的banner图
    banner: false
  #配置扫描xml资源路径
  mapper-locations: classpath*:com/gxh/modules/**/xml/*Mapper.xml
  #自动驼峰映射
  configuration:
    map-underscore-to-camel-case: true

2.3 MybatisPlusConfig

/***
 * @author gxh
 * @date 2021-8-21
 */

@Configuration
@MapperScan(value = {"com.gxh.modules.**.mapper*"})
public class MybatisPlusConfig {

    /**
     *  分页插件  MybatisPlus提供的分页
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        // 设置sql的limit为无限制,默认是500
        return new PaginationInterceptor().setLimit(-1);
    }

}

贴出我的目录结构

在这里插入图片描述

测试运行

1.创建一张表
idusernamepassword
1admin123456
2.创建实体
package com.gxh.modules.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Objects;

@TableName("sys_user")//mybatisPlus 注解:映射表名
@Data// lombok代码简化注解,包装Get/Set/构造器
public class SysUser implements Serializable {

    private Integer id;

    private String username;

    private String password;


    /**
     * 重写父类Object 提供的 toString方法,方便测试
     * @return
     */
    @Override
    public String toString() {
        return "SysUser{" +
                "id='" + id + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        SysUser sysUser = (SysUser) o;
        return Objects.equals(id, sysUser.id) &&
                Objects.equals(username, sysUser.username) &&
                Objects.equals(password, sysUser.password);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, username, password);
    }
}
3.创建Dao(Mapper)层接口---------------映射xml文件
package com.gxh.modules.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gxh.modules.entity.SysUser;

//                                              BaseMapper 是MyBatisPlus提供
public interface SysUserMapper extends BaseMapper<SysUser> {
}

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--引用指向的mapper接口-->
<mapper namespace="com.gxh.modules.mapper.SysUserMapper">

</mapper>
4创建业务层及其实现类
package com.gxh.modules.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxh.modules.entity.SysUser;

public interface ISysUserService extends IService<SysUser> {
}
package com.gxh.modules.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxh.modules.entity.SysUser;
import com.gxh.modules.mapper.SysUserMapper;
import com.gxh.modules.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service
//lombok 提供的注解简化,  简化了多个 @Autowired / @Resource
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class SysUserServiceImpl
        extends ServiceImpl<SysUserMapper, SysUser>
        implements ISysUserService {

    //切记使用lombok 注入方式,必须private final 修饰,否则引起注入空指针
    private final SysUserMapper sysUserMapper;
}
5创建控制器并测试执行
package com.gxh.modules.controller;
import com.gxh.modules.entity.SysUser;
import com.gxh.modules.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.websocket.server.PathParam;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/sys/user")
//lombok 提供的注解简化,  简化了多个 @Autowired / @Resource
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class SysUserController {

    //切记使用lombok 注入方式,必须private final 修饰,否则引起注入空指针
    private final ISysUserService sysUserService;


    @GetMapping("/{id}")
    public Map<String,Object> queryUserById(@PathVariable("id") Integer id){
        Map<String,Object> infoMap = new HashMap<>();
        SysUser sysUser = this.sysUserService.getById(id);
        infoMap.put("user",sysUser);
        return infoMap;
    }

    @GetMapping("/list")
    public Map<String,Object> userList(){
        Map<String,Object> infoMap = new HashMap<>();
        List<SysUser> users = this.sysUserService.list();
        infoMap.put("userList",users);
        return infoMap;
    }
}

测试图示

在这里插入图片描述
在这里插入图片描述

最终工程结构

在这里插入图片描述

到此结束,以上就是SpringBoot和mybatis-plus的整合过程,关于其中的一些实战开发中的用法下期在讲解
SpringBoot快速集成MyBatis-plus—(第二篇)

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白的小,小白的白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值