您现在的位置是:首页 >学无止境 >java springboot整合MyBatis-Plus 多用点Plus支持一下国人开发的东西吧网站首页学无止境

java springboot整合MyBatis-Plus 多用点Plus支持一下国人开发的东西吧

-耿瑞- 2024-10-29 00:01:06
简介java springboot整合MyBatis-Plus 多用点Plus支持一下国人开发的东西吧

文章java springboot整合MyBatis做数据库查询操作讲述了boot项目整合MyBatis的操作方法

但现在就还有一个 MyBatis-Plus
Plus是国内整合的一个技术 国内的很多人会喜欢用 特别是一些中小型公司 他们用着会比较舒服

好 然后我们打开idea
创建一个项目
在这里插入图片描述
选择 Spring Initializr 工程
调一下项目路径 选择一下 java和jdk的版本 然后点击 Next
在这里插入图片描述
选择一下spring boot的版本 二点几就够了
在这里插入图片描述
到这啦 大家就会发现一个问题 sql下根本找不到 MyBatis-Plus
在这里插入图片描述
因为他是国人开发的东西 所以 并没有被spring boot官方收录坐标

没有 OK 那我们就先不管 我们先只要这个 MySql的驱动
在这里插入图片描述
然后我们点击 Finish 创建项目
项目就创建好了
在这里插入图片描述
但MyBatis-Plus还没有引入 我们访问地址
https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient/3.1访问Maven主站
进入后搜索 MyBatis-Plus
在这里插入图片描述
在这里 我们就可以看到它对应的坐标
我们点第一个进去
在这里插入图片描述
这里 版本的话 我们就选个 3.4.3
在这里插入图片描述
然后 我们直接点进去
在这里插入图片描述
这东西 反应可能有点慢 老实说 反应挺迟钝的
进入界面后向下拉

如图位置就有他这个坐标了
在这里插入图片描述
我们只需要将这个内容复制一下
我们找到刚刚创建的项目的 pom.xml 文件 将内容粘贴到dependencies标签中
在这里插入图片描述
这里 我们可以看到 他是 mybatis-plus-boot-starter 内容上直接没有spring这个词了
在这里插入图片描述
因为上面已经导入了 所以 我们直接将spring的这个起步依赖给干掉就好了
在这里插入图片描述
如果你的东西和我的一样 在这里报红 就可以这样操作 因为 2019版本的 IDEA 比较特殊
在这里插入图片描述
等右下角读条下载一会儿
在这里插入图片描述
然后 这里就没有任何问题了
在这里插入图片描述
然后 第二件事
和我们上文一样 做配置
我们看到自己本地的数据库

我们这里是个 MySql数据库
要操作 下面的 test数据库
在这里插入图片描述
回到项目 先找到application.properties配置文件 然后右键

在这里插入图片描述
改成 yml
在这里插入图片描述
参考内容如下

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: root

这里 我们声明 用MySql 然后 url 如果你没特殊设置过直接复制就好了 声明本机端口 3306下的 test数据库
然后 用户名密码 因为我没动过 就都是 root

然后还是上文一样 看到我们要操作的 staff表
在这里插入图片描述
这里是四个数字类型 加一个字符串类型

然后 找到我们项目中的启动类 在同目录下创建目录 domain
在这里插入图片描述
在下面创建一个与表同名的 staff 类
参考代码如下

package com.example.mep.domain;

public class staff {
    private int id;
    private String name;
    private int age;
    private int status;
    private int departmentid;

    @Override
    public String toString(){
        return "staff{"+
                "id"+id+
                "namne"+name+
                "age"+age+
                "status"+status+
                "departmentid"+departmentid+
                "}";
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }

    public int getDepartmentid() {
        return departmentid;
    }
    public void setDepartmentid(int departmentid) {
        this.departmentid = departmentid;
    }
}

我们根据表字段 创建了所有的变量
然后 给这些变量都加上对应的 get set函数
然后 用 toString 输出所有变量的值

然后在启动类同目录 创建dao层
在这里插入图片描述
下面创建一个接口 叫
在这里插入图片描述
参考代码如下

package com.example.mep.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.mep.domain.staff;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface staffDao extends BaseMapper<staff> {
}

这里 直接去继承 BaseMapper
规范类型 是我们刚刚创建的属性类 staff
BaseMapper接口中 增删除改的操作就都有了
并用 Mapper 将它交给spring去管理

然后 直接在测试类中去使用就好了
在这里插入图片描述
我们测试类编写代码如下

package com.example.mep;

import com.example.mep.dao.staffDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class MepApplicationTests {

    @Autowired
    private staffDao staffDao;

    @Test
    void contextLoads() {
        System.out.println(staffDao.selectById(1));
    }
}

这里 这个 selectById 根据id查询 是BaseMapper提供的 根据id查询
然后运行代码
可以看到 我们的 sql语句就执行成功了
在这里插入图片描述
这里还有一种情况 如果你的数据库表 名字是 xxx_xxx 存在下划线 那么 这时 他就会有问题 找不到表 因为你类名也没办法加下划线

我们可以在application.yml中编写

mybatis-plus:
  global-config:
    db-config:
      table-prefix: tmp_

这样 他就会将我们内容全部读成 tmp_为前缀
例如 tmp_user表 你用user属性类 泛型 他就找得到了

大家可以多去看看 BaseMapper中的函数 真的还是比较方便的
多用用 plus 吧 支持一下国人开发的东西

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。