侧边栏壁纸
博主头像
AI码师博主等级

专注编程领域分享,聊程序人生,代写程序

  • 累计撰写 23 篇文章
  • 累计创建 9 个标签
  • 累计收到 0 条评论

SpringBoot整合 mybatisPlus-入门篇

AI码师
2021-12-25 / 0 评论 / 0 点赞 / 15 阅读 / 4,722 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-12-25,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

引言

最近在准备一期SpringBoot整合大全系列文章,同时也会有视频放出(视频还在酝酿中),如果大家觉得有帮助,记得点赞加收藏哦。
话不多说,咱们直接进入正题。

代码已经上传到码云:https://gitee.com/lezaiclub/springboot-hyper-integration.git,欢迎白嫖

开整

引入需要的依赖

前面创建springboot项目就不说了

   <dependencies>
        <!--        springboot相关包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--        springboot相关包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--        数据源链接池 不是此部分必备包-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!--        springboot相关包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--        json序列化相关包 不是本部分关键包-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.70</version>
        </dependency>
        <!--        mybatis相关包 必备包-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>
        <!--        mysql数据库驱动 必备包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
        </dependency>
        <!--        lombok 不用写写get和set,不是本部分必备包-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.18</version>
        </dependency>
    </dependencies>

扫描mapper包路径

在springboot启动类上添加注解

@SpringBootApplication
// 扫描指定包路径
@MapperScan("com.aims.mybatisplus.dao")
public class SpringbootMybatisPlusApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootMybatisPlusApplication.class, args);
    }
}

创建表语句

CREATE TABLE `member` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `create_by` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `member_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '会员名称',
  `member_type` tinyint(3) DEFAULT NULL COMMENT '会员类型',
  `member_phone` varchar(20) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '手机号',
  `member_level` tinyint(3) DEFAULT NULL COMMENT '会员等级',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='会员表';

创建实体

package com.aims.mybatisplus.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @description member
 * @author AI码师
 * @date 2021-11-07
 */
@Data
// 如果表名和实体名称一样 则不需要使用这个注解
@TableName("member")
public class Member implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    /**
    * 主键
    */
    private Long id;

    /**
    * 创建人
    */
    private String createBy;

    /**
    * 创建时间
    */
    private Date createTime;

    /**
    * 更新人
    */
    private String updateBy;

    /**
    * 更新时间
    */
    private Date updateTime;

    /**
    * 会员名称
    */
    private String memberName;

    /**
    * 会员类型
    */
    private int memberType;

    /**
    * 手机号
    */
    private String memberPhone;

    /**
    * 会员等级
    */
    private int memberLevel;

    public Member() {}
}

创建操作数据库的mapper层

你会发现mapper里面啥都不用写,开心的起飞,只要继承BaseMapper就好了

package com.aims.mybatisplus.dao;

import com.aims.mybatisplus.model.entity.Member;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

/**
 * @author AI码师
 * @description memberMapper
 * @date 2021-11-07
 */
@Mapper
public interface MemberMapper extends BaseMapper<Member> {
// 用上

}

配置数据库链接

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/springboot-integration?useUnicode=true&characterEncoding=utf-8
    username: aims
    password: aims
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
// 下面这个是开启sql打印的,不是必须要配置的
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

到此 集成mybatisPlus已经完成了,我们现在写几个简单的接口来演示下mapper相关的api

添加相关接口

查询接口

通过lambada表达式轻松可以实现相关sql操作

   @GetMapping
    public String get(@RequestParam("name") String name) {
        
        LambdaQueryWrapper<Member> lambda = new QueryWrapper<Member>().lambda();
        lambda.eq(Member::getMemberName, name);
        Member member = memberMapper.selectOne(lambda);
        return Objects.isNull(member) ? "没找到信息" : JSON.toJSONString(member);
    }

新增接口

添加操作更是简单到无语,后续会出一篇文章讲解这方面的常规操作语法,敬请期待!

    @PostMapping
    public int post(@RequestBody Member member) {
        int effectNum = memberMapper.insert(member);
        return effectNum;
    }

福利大放送

关注微信公众号“AI码师”,领取面试资料和最新全套微服务教程
在这里插入图片描述

0

评论区