SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作

这篇具有很好参考价值的文章主要介绍了SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上文 SSMP整合案例(2) Spring Boot整合Lombok简化实体类开发我们已经开发完了实体类
我们就可以做数据层了
目前来讲 数据层技术 使用了最大的自然是 MyBatis 但其实MyBatis-Plus在国内很多中小企业还是使用的挺多的

这次 我们主要是通过MyBatis-Plus和Druid来做这件事情
这两个工具的坐标呢 我们之前是已经导进去了
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
然后 找到项目配置文件 application.yml
添加如下数据库配置代码

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/test
      username: root
      password: root
mybatis-plus:
  global-config:
    db-config:
      id-type: auto

SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作

这里这个不要直接复制 首先 前面的没什么 但 URL 我只想的是本地 3306端口 如果你没设置过 一般都是一样的 然后 指定后面的 下面的test数据库
类型 我们设置的 MySql
然后 下面 用户名和密码 因为我一直没动过 所以都是默认的 root
下面的配置 则是在告诉他 我们的id使用数据自增的特性

然后 做数据层接口
在启动类同目录下 创建 dao包
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
下面创建一个接口 叫 bookDao
参考代码如下

package com.example.bookconfig.dao;

import com.example.bookconfig.domain.book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface bookDao {
    @Select("select * from book where id = #{id}")
    book getById(Integer id);
}

我们想用 @Mapper 声明MyBatis
然后 写了一个函数 用Select挂了sql上去 函数接收一个 参数id 数字类型 sql的意思大体就是通过id寻找对应的一条数据

但是 现在我们数据库的book显然没有数据啊 那么 我们就来给他加一条 还是打开MySql管理工具
进入查询 输入并运行sql

INSERT INTO `book`(`type`,`name`,`description`)
VALUES(1,"小猫猫","超级可爱");

SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
这就是个添加语句 因为 id是一个主键自动增长的字段 我们不用管 所以 type 1 name 小猫猫 description 超级可爱
运行成功后 我们再次查看book表
可以看到 这条数据就加进去了
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
然后 我们来到测试类
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作

编写代码如下

package com.example.bookconfig;

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

@SpringBootTest
class BookConfigApplicationTests {

    @Autowired
    private bookDao bookDao;

    @Test
    void contextLoads() {
        System.out.println(bookDao.getById(1));
    }
}

这里 调用了 我们刚刚写的bookDao接口中的getById方法查询了id等于1的数据
我们右键运行测试类
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
运行结果如下
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
也是成功帮我找到了这条数据

当然 我们这里只是试一下能不能跑起来 Mp不会这么开发 他让我自己这样写sql太麻烦了 很多东西它都帮你封装好了
我们直接将bookDao接口 的代码修改如下

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

@Mapper
public interface bookDao extends BaseMapper<book> {

}

我们自己通过继承BaseMapper接口 来使用其中的函数 然后 泛型为 操作book实体类 你不指定实体类 你肯定要告诉他你要操作哪个表 哪个类对吧
他就会通过你给他的类 去寻找同名的表

这里 我们按住Ctrl 鼠标点进去看一下
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
这个接口中就自带这么多操作
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
我们测试类直接将getById 改成 selectById就好了
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
运行结果如下
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
很明显 根据id查询就OK了 然后 我们来测试一下其他几个方法
先是添加
我们在测试类编写如下代码

package com.example.bookconfig;

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

@SpringBootTest
class BookConfigApplicationTests {

    @Autowired
    private bookDao bookDao;

    @Test
    void contextLoads() {
        book book = new book();
        book.setType(0);
        book.setName("母猪的产后护理");
        book.setDescription("深度研究母猪产后护理的高级哲学以及母猪的历史价值");
        bookDao.insert(book);
    }
}

简单说 我们定义了一个book对象 通过set方法 将他的几个值都给了内容
还是那句话 id不需要管 因为是有自增属性的
然后 通过BaseMapper提供的insert方法将对象的内容插入到数据库中去 我们运行完代码查看数据库

这条数据就成功进来了
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
然后 我们在测试类中编写如下代码

book book = new book();
book.setId(1);
book.setType(0);
book.setName("java从入门到放弃");
book.setDescription("讲述当代打工人从入学被坑到弃坑投奔其他行业的悲惨经历");
bookDao.updateById(book);

BaseMapper更改数据的方式叫updateById
因为他要根据id做更改 所以 我们还是要用set将id赋值 告诉他改第几条
然后 我们记好数据库中 id为1数据的内容
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
我们运行代码 再去数据库中查看book表 数据如下 很明显已经修改成功了
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
然后 我们编写代码如下

bookDao.deleteById(2);

没错 根据id删除的方法叫 deleteById
我们将id为2 就是我们刚加进去的数据给他干掉
运行代码然后 去数据库刷新 book表
很明显 第二条数据就被干掉了
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
不过这样 不太方便我们看查询全部数据的效果 我们重新执行一次添加的代码将数据加回来
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
这样就会好一点

然后 我们在测试类中编写代码如下

System.out.println(bookDao.selectList(null));

selectList是用来查询全部的方法 但是 这个要写条件 但我们就想查全部 那就直接 传个null给他
运行结果如下
SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作
可以看到 他是查询到了全部的数据文章来源地址https://www.toymoban.com/news/detail-493797.html

到了这里,关于SSMP整合案例(3) 创建数据层并在测试类中运行数据库增删查改操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SSMP整合综合案例【SpringBoot的基本增删改查】

    实体类开发————使用Lombok快速制作实体类 Dao开发————整合MyBatisPlus,制作数据层测试 Service开发————基于MyBatisPlus进行增量开发,制作业务层测试类 Controller开发————基于Restful开发,使用PostMan测试接口功能 Controller开发————前后端开发协议制作 页面开发

    2024年02月09日
    浏览(29)
  • SSMP整合案例(14) 将界面查询改为分页查询

    前面几篇文章过后 我们的项目基本环境就算搭好了 但是 我们下面的分页显然就是个摆设 这里 我们就先将查询的方法改成分页的 我们 java项目之前做了这个分页的函数 那么 我们vue项目 直接在 src下的 api 下的bookApi.js中加上对应的函数 因为 我们的分页方法上面单独挂了 @Ge

    2024年02月13日
    浏览(19)
  • SpringBoot实现SSMP整合

    1、Spring 整合 JUnit 核心注解有两个: @RunWith(SpringJUnit4ClassRunner.class) 是设置Spring专用于测试的类运行器(Spring程序执行程序有自己的一套独立的运行程序的方式,不能使用JUnit提供的类运行方式) @ContextConfiguration(classes = SpringConfig.class) 是用来设置Spring核心配置文件或配置类的

    2024年02月07日
    浏览(42)
  • SpringBoot整合SSMP小demo

    spring web,mybatis,mysql勾选 加入mp和druid,依赖见SpringBoot基础认识_阳光明媚UPUP的博客-CSDN博客 写个数据表,写个domain包实体类。  写个mappr包接口@Mapper生成实现类,继承mp  新增报错 //mybatis-plus默认生成的id的方式为自己自订的雪花算法 //而数据库提供的id自增的方法  yml中配

    2024年02月14日
    浏览(24)
  • [SpringBoot系列]SpringBoot如何整合SSMP

    SpringBoot之所以好用,就是它能方便快捷的整合其他技术,这里我们先介绍四种技术的整合: 整合JUnit 整合MyBatis 整合MyBatis-Plus 整合Druid ​ SpringBoot技术的定位用于简化开发,再具体点是简化Spring程序的开发。所以在整合任意技术的时候,如果你想直观感触到简化的效果,你必

    2023年04月23日
    浏览(25)
  • 【PyTorch】使用PyTorch创建卷积神经网络并在CIFAR-10数据集上进行分类

    在深度学习的世界中,图像分类任务是一个经典的问题,它涉及到识别给定图像中的对象类别。CIFAR-10数据集是一个常用的基准数据集,包含了10个类别的60000张32x32彩色图像。在本博客中,我们将探讨如何使用PyTorch框架创建一个简单的卷积神经网络(CNN)来对CIFAR-10数据集中

    2024年01月24日
    浏览(35)
  • Anaconda创建虚拟环境,并在Pycharm中应用

    一、Anaconda创建虚拟环境 1、Anaconda安装可参考Windows10 安装Anaconda_dede_de_的博客-CSDN博客 2、虚拟环境的创建 ●双击打开Anaconda Prompt ●输入命令\\\"   conda create -n 环境名 python==版本号   \\\" 进行创建  (例如我创建一个名为zzw的虚拟环境且python版本为3.7) 注意: 有时上述命令创建

    2024年02月04日
    浏览(38)
  • 【案例实战】SpringBoot整合Redis实现缓存分页数据查询

    正式观看本文之前,设想一个问题,高并发情况下,首页列表数据怎么做? 类似淘宝首页,这些商品是从数据库中查出来的吗?答案肯定不是,在高并发的情况下,数据库是扛不住的,那么我们要怎么去扛住C端大并发量呢,这块我们可以借助Redis,我们知道Redis是一个基于内

    2024年02月09日
    浏览(43)
  • SpringBoot整合mysql、postgres、sqlserver实现多数据源配置案例

            分享一下近期处理的一个小demo,关于配置多数据源实现不同服务之间的数据推送和数据治理。第一次接触到pg库和sqlserver一头雾水,选择了JDBC+mybatis-plus的方式去链接。 1、首先要引入以下依赖 2、demo的项目结构如下 3、yml配置文件 4、配置类 5、controller、dao、service以

    2024年02月06日
    浏览(33)
  • JAVA深化篇_29—— 线程使用之线程联合以及Thread类中的其他常用方法【附有详细说明及代码案例】

    线程联合 当前线程邀请调用方法的线程优先执行,在调用方法的线程执行结束之前,当前线程不能再次执行。线程A在运行期间,可以调用线程B的join()方法,让线程B和线程A联合。这样,线程A就必须等待线程B执行完毕后,才能继续执行。 join方法的使用 join()方法就是指调用该

    2024年02月05日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包