springboot整合mybatis-plus(数据层Dao/Mapper测试)

news2024/11/14 18:40:53

 第一部分:创建springboot文件

 第一步:打开软件,点击file,点击new 然后选择module,在右侧选择springboot

第二步:选择配置和JDK以及java版本

①选择maven类型

②选择JDK1.8版本

③选择java8版本

④选择jar包类型

如果没有找到8版本:点击http://t.csdnimg.cn/NFUIF

第三步:选择加载配置,选择mysql driver

之后我们稍等一会,让他建立项目!~

在pom文件里面添加依赖:

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

我们一定要确定右侧的这四个包被正确的加载:

如果报错,也就是没有正确的加载,看我的博客:

http://t.csdnimg.cn/7R1od

第四步:核心配置-数据库连接相关信息

(1)导入数据库

数据库的导入方法如下:http://t.csdnimg.cn/I6ioO

示例数据库:见文末

(2)开始在springboot里面配置数据库信息

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/你的数据库名称
    username: 你的sql用户名
    password: 对应你自己设置的密码

第五步:创建实体和对象

(1)新建一个Fuel的实体类

package com.example.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("燃煤_热电数据")
public class Fuel {
    @TableField("id")
    private Long id;
    @TableField("fossilEnergyType")
    private String fossilEnergyType;
    @TableField("CAD")
    private Double CAD;
    @TableField("CD")
    private Double CD;
    @TableField("NAVar")
    private Double NAVar;
    @TableField("FC")
    private Double FC;
    @TableField("FCbj")
    private Double FCbj;
    @TableField("NCVbj")
    private Double NCVbj;

    public Fuel(Long id, String fossilEnergyType, Double CAD, Double CD, Double NAVar, Double FC, Double FCbj, Double NCVbj) {
        this.id = id;
        this.fossilEnergyType = fossilEnergyType;
        this.CAD = CAD;
        this.CD = CD;
        this.NAVar = NAVar;
        this.FC = FC;
        this.FCbj = FCbj;
        this.NCVbj = NCVbj;
    }
    public Fuel() {

    }

    @Override
    public String toString() {
        return "Fuel{" +
                "id=" + id +
                ", fossilEnergyType='" + fossilEnergyType + '\'' +
                ", CAD=" + CAD +
                ", CD=" + CD +
                ", NAVar=" + NAVar +
                ", FC=" + FC +
                ", FCbj=" + FCbj +
                ", NCVbj=" + NCVbj +
                '}';
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getFossilEnergyType() {
        return fossilEnergyType;
    }

    public void setFossilEnergyType(String fossilEnergyType) {
        this.fossilEnergyType = fossilEnergyType;
    }

    public Double getCAD() {
        return CAD;
    }

    public void setCAD(Double CAD) {
        this.CAD = CAD;
    }

    public Double getCD() {
        return CD;
    }

    public void setCD(Double CD) {
        this.CD = CD;
    }

    public Double getNAVar() {
        return NAVar;
    }

    public void setNAVar(Double NAVar) {
        this.NAVar = NAVar;
    }

    public Double getFC() {
        return FC;
    }

    public void setFC(Double FC) {
        this.FC = FC;
    }

    public Double getFCbj() {
        return FCbj;
    }

    public void setFCbj(Double FCbj) {
        this.FCbj = FCbj;
    }

    public Double getNCVbj() {
        return NCVbj;
    }

    public void setNCVbj(Double NCVbj) {
        this.NCVbj = NCVbj;
    }
}

(2)新建一个Dao层的FuelDao接口

package com.example.dao;

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

@Mapper
public interface FuelDao extends BaseMapper<Fuel> {
    //不需要再在这里写sql语句
}

第六步:执行test测试

测试部分代码:

package com.example.demo4;

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

@SpringBootTest
class Demo3ApplicationTests {
    @Autowired
    private FuelDao fuelDao;
    @Test
    void contextLoads() {
        System.out.println(fuelDao.selectById(1));
    }

}

易错汇总:


①出现查找表对应错误,明明我们想要查的是“燃煤热电数据库”里面的“燃煤热电”表,而不是fuel表,那么我们就可以在Fuel类或者是FuelDao接口前面加上:

@TableName("燃煤热电数据")

告诉编译器我们要查的Fuel实体类对应的表的名字叫“燃煤热电”而不是“fuel”

②出现大写字母被识别成为“小写字母和下划线_”的问题

而在表中明明是:

解决方法:

在对应实体类前面加上:

  @TableField("fossilEnergyType")

这样在查找属性名字的时候就能按照这个里面的去查了。

③查找数据库中含有_导致出现查不到的情况:

数据库中的是:

解决方法:

在application.yml文件中添加:

#设置mybatis-plus的相关配置
mybatis-plus:
  global-config:
    db-config:
      table-prefix: 燃煤_

最终运行结果为:

增删查改代码汇总:

(1)使用id查找

   void contextLoads() {
        //查询操作-根据id查询
        System.out.println(fuelDao.selectById(2));
    }

(2)查找全部


    @Test
    void contextLoads1() {
        //查询操作-查询全部
        System.out.println(fuelDao.selectList(null));
    }

(3)增加

@Test
    void contextLoads2() {
        //增加操作
        Fuel fuel = new Fuel();
        fuel.setId(6L);
        fuel.setFossilEnergyType("煤炭测试数据");
        fuel.setCAD(12.5);
        fuel.setCD(0.03);
        fuel.setNAVar(100.0);
        fuel.setFC(50.0);
        fuel.setFCbj(25.0);
        fuel.setNCVbj(5000.0);
        fuelDao.insert(fuel);
    }

(4)根据id删除

@Test
    void contextLoads3() {
        //删除
        fuelDao.deleteById(2);
    }

(5)根据id修改

@Test
    void contextLoads4() {
        //修改--先查找id=1的数据,然后修改名称
        Fuel fuel=fuelDao.selectById(1);
        fuel.setFossilEnergyType("测试修改煤");
        fuelDao.updateById(fuel);//需要用这个,不然不生效
        System.out.println(fuel);
    }

(6)条件查询

我们查询fossilEnergyType属性类别数据中含有“煤”的数据条:

@Test
    void contextLoads6() {
        //条件查询-我们查询fossilEnergyType属性类别数据中含有“煤”的数据条
        String SearchName="煤";
        LambdaQueryWrapper<Fuel> wrapper=new LambdaQueryWrapper<>();
        if(SearchName!=null){//避免查询的字段为null名字的字段
            wrapper.like(Fuel::getFossilEnergyType,SearchName);//第一个是属性名字,第二个是我们输入要like的内容
            fuelDao.selectList(wrapper);
        }

    }

文件获取:

①完整文件打包如下:

链接:https://pan.baidu.com/s/1gyevtozE5sDg8AndTudeoQ?pwd=rke0 
提取码:rke0 
--来自百度网盘超级会员V5的分享

②数据库:

链接:https://pan.baidu.com/s/1N0v0lNYQXC0-NM4cPDZF-Q?pwd=pgag 
提取码:pgag 
--来自百度网盘超级会员V5的分享

运行我打包的项目,为了能够正常运行(需要兼容maven以及java版本),具体的调整方法看我博客:http://t.csdnimg.cn/Uovig

好啦,希望能够帮助到大家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1964564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

破解监控难题,局域网电脑监控软件哪家强?

现在的环境&#xff0c;企业要想茁壮成长&#xff0c;员工的高效工作那可是关键中的关键。但不少老板都发现了一个头疼的问题&#xff0c;员工上班老是偷懒&#xff0c;这可怎么行&#xff1f;今天&#xff0c;就来给大家详细说道说道几款出色的局域网电脑监控软件&#xff0c;…

使用Nginx Proxy Manager配置Halo的反向代理和申请 SSL 证书

本文介绍Nginx Proxy Manager配置Halo的反向代理和申请 SSL 证书&#xff0c;如需要了解Halo 2的安装&#xff0c;参考 如何在Linux云服务器上通过Docker Compose部署安装Halo&#xff0c;搭建个人博客网站&#xff1f;。 文章目录 安装Nginx Proxy ManagerNginx Proxy Manager…

人工智能会越来越闭源——对话东北大学副教授王言治 | Open AGI Forum

作者 | Annie Xu 责编、采访 | Echo Tang 出品丨GOSIM 开源创新汇 在读期间研究方向为并不“火”的模式识别与深度学习&#xff0c;毕业却刚好踩上人工智能计算研究的风口……来自美国东北大学的王言治副教授深耕深度学习与大模型&#xff0c;前瞻性地探索大模型的本地化部署…

服务器并发模型

服务器&#xff1a; 单循环服务器&#xff1a;服务器在同一时刻只能响应一个客户端的请求 并发服务器模型&#xff1a;服务器在同一时刻可以响应多个客户端的请求 UDP:无连接 TCP:有连接 1.多进程 资源空间消耗大 效率低 2.多线程 相…

yolo格式数据集之地面道路病害检测4种数据集已划分好|可以直接使用|yolov5|v6|v7|v8|v9|v10通用

yolo格式数据集之地面道路病害检测4种数据集已划分好|可以直接使用|yolov5|v6|v7|v8|v9|v10通用 本数据为地面道路病害检测检测数据集&#xff0c;数据集数量如下&#xff1a; 总共有:8535张 训练集&#xff1a;5981张 验证集&#xff1a;1768张 测试集&#xff1a;786 类别数量…

机器学习之心一区级 | Matlab实现SMA-Transformer-LSTM多变量回归预测(黏菌算法优化)

机器学习之心一区级 | Matlab实现SMA-Transformer-LSTM多变量回归预测&#xff08;黏菌算法优化&#xff09; 目录 机器学习之心一区级 | Matlab实现SMA-Transformer-LSTM多变量回归预测&#xff08;黏菌算法优化&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介…

leetcode 矩阵专题——java实现

73. 矩阵置零 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 关键在于&#xff1a;一次扫描全表…

Java高级Day18-集合

62.集合 之前保存多个数据元素使用数组&#xff0c;但数组有以下缺点&#xff1a; 长度开始必须指定&#xff0c;指定后不可修改 保存的必须为同一类型的元素 使用数组进行增加/删除元素的代码比较麻烦 集合 可以动态的保存任意多个对象 提供了一系列方便操作对象的方法 …

基于IDEA+Mysql+SpringBoot开发的健康运动系统

基于IDEAMysqlSpringBoot开发的健康运动系统 项目介绍&#x1f481;&#x1f3fb; http://localhost:8088/login.html 账号密码 xpf 123 在当前快节奏的社会生活中&#xff0c;随着人们健康意识的不断提升&#xff0c;个人健康管理已成为社会关注的焦点。随着科技的飞速发展&am…

反爬虫限制:有哪些方法可以保护网络爬虫不被限制?

目前&#xff0c;爬虫已经成为互联网数据获取最主流的方式。但为了保证爬虫顺利采集数据&#xff0c;需要防范网站的反爬虫机制&#xff0c;降低IP被限制的风险&#xff0c;这样才能提高爬虫工作的效率。那么&#xff0c;如何防止网络爬虫被限制呢&#xff1f;下面介绍几种有效…

在亚马逊云科技AWS上利用RAG搭建一个向量库云原生AI对话机器人

简介&#xff1a; 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案&#xff0c;帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践&#xff0c;并应用到自己的日常工作里。 本次介绍的是如何利用亚马逊云科技一系列热门A…

昇思25天学习打卡营第16天|Diffusion扩散模型,DCGAN生成漫画头像

Diffusion扩散模型 关于扩散模型&#xff08;Diffusion Models&#xff09;有很多种理解&#xff0c;本文的介绍是基于denoising diffusion probabilistic model &#xff08;DDPM&#xff09;&#xff0c;DDPM已经在&#xff08;无&#xff09;条件图像/音频/视频生成领域取得…

7.30 模拟赛总结 [神奇性质]+[线段树二分]

复盘 7:40 成功开题&#xff0c;艾教场 看 T1&#xff0c;感觉很神奇&#xff0c;但看数据范围没有开到 1 e 9 1e9 1e9 之类的&#xff0c;应该是得怎么搜一下&#xff1b;T2 发现做过原题&#xff0c;秒了&#xff1b;T3 第一眼没看懂题&#xff0c;推样例始终不理解其中的…

使用Leaflet GeoMan结合天地图进行自由标绘实战

目录 前言 一、Leaflet GeoMan是什么 1、关于Leaflet GeoMan 2、关于开源版和企业版 3、相关的方法介绍 二、使用Geoman来进行自由标绘实战 1、相关资源准备 2、新建html网页 3、初始化地图及绑定Geoman控件 三、自由标绘的成果 1、整体效果 2、添加空间对象 3、开…

语音交互、AI问答,等你来体验!

功能背景 在实际大屏应用中&#xff0c;用户向大屏直接下达语音指令显的越来越便捷&#xff0c;其中体现的交互感也比通过动作指令来的更加强烈&#xff0c;给用户带来更高效的服务体验。目前EasyV平台开发的自定义事件交互已经很完善&#xff0c;组件之间可以进行触发联动。 …

python 装饰器及使用场景

1. 装饰器的理解 上面这种用装饰器的效果和下面这种是一样的&#xff0c;两个圈起来的是等价的&#xff0c;只是写法不一样&#xff0c;用装饰器函数 更简洁一些。 总的来说&#xff0c;装饰器的作用是&#xff1a;当定义一个函数的时候&#xff0c;通过在其上面加上装饰器&…

C:关于位操作符:、|、^、~的一些应用

一些用来熟悉位操作符的应用 一、按位异或&#xff1a;^ 异或运算&#xff1a;相同为0&#xff0c;相异为1 应用&#xff1a;在不引入临时变量&#xff08;第三变量&#xff09;的情况下&#xff0c;实现两个整数的交换。 关于两个整数交换&#xff0c;我们有一些方法&…

Docker Compose部署项目+使用

目录结构 - suggestion/- backend/ # 我的后端项目- app.py- other_files/- docker-compose.yml- Dockerfile- requirements.txt获得requirements.txt 命令行输入&#xff1a;pip list --formatfreeze > requirements.txt 因为使用 pip freeze > requirements.txt 导出…

创建了Vue项目,需要导入什么插件以及怎么导入

如果你不知道怎么创建Vue项目,建议可以看一看这篇文章 怎么安装Vue的环境和搭建Vue的项目-CSDN博客 1.在idea中打开目标文件 2.系在一个插件Vue.js 3.下载ELement UI 在Terminal中输入 # 切换到项目根目录 cd vueadmin-vue # 或者直接在idea中执行下面命令 # 安装element-u…