java springboot整合MyBatis做数据库查询操作

news/2024/9/23 4:33:09/

首先 我们还是要搞清楚 MyBatis 工作中都需要那些东西

首先是基础配置 你要连哪里的数据 连什么类型的数据库 以什么权限去连
然后 以 注解还是xml方式去映射sql

好 我们直接上代码
我们先创建一个文件夹
在这里插入图片描述
然后打开idea 新建一个项目
在这里插入图片描述
然后 按我下图的操作配置一下 然后点下一步
在这里插入图片描述
这里 版本不要选太高 2.几就够了
在这里插入图片描述

下一步就是选依赖了
首先 肯定是 sql下找到MyBatis
在这里插入图片描述
然后 下面我们再勾一个 Mysql的驱动
在这里插入图片描述
我们这里 先不用spring Web
我们直接点 确定
我们的项目就起来了
在这里插入图片描述
打开项目目录 我们先找到 resources 下的 application.properties
在这里插入图片描述
然后 我们不要properties我们将他改成yml
在这里插入图片描述
然后名字后缀改一下
在这里插入图片描述
然后还是打开配置文件来看
在这里插入图片描述
可以看到 这就是我们 mybatis与springboot 整合的一个坐标
在这里插入图片描述
注意这里有两个规范
1 所以的 springboot 自带的都是 spring-boot-starter-某某
在这里插入图片描述
2 整合第三方技术 都是 第三方技术-spring-boot-starter
在这里插入图片描述
然后 很明显 这里就是数据库的一个JAR
在这里插入图片描述
这里很明显没有版本信息 因为版本由上面这里提供
在这里插入图片描述

好啦 然后我们要写一下基本配置 首先 告诉它我们要连的数据库

这里 我要连的是 本地 MYSQL 下的 test 数据库
在这里插入图片描述
我们回到刚才的 application.yml
java中操作数据库 有一个专门的对象
我们只需要在上面打出 datasou
后面对应的提示就都出来了
然后 我们选第一个 name即可
在这里插入图片描述
值这里 我们只要打个c 提示就都出来了 我们选择 com.mysql.jdbc.Driver
在这里插入图片描述
然后 第二个 url 它不知道
我们可以这样

url: jdbc:mysql://localhost:3306/数据库名称

这里一定要注意数据库的端口号不要写错了
在这里插入图片描述
然后 username 用户名 和 password 密码
因为我没有特殊设置 都是 root
在这里插入图片描述
我们的 application.yml 大体就是这样 大家可以参考一下

spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/testusername: rootpassword: root

然后 我们就还是 需要原本的操作数据库结构

然后 我们找到启动类的所在目录
在这里插入图片描述
我们在同目录下创建一个文件夹 叫 domain
在这里插入图片描述
下面创建一个类 叫 staff
然后 看到我们的 staff表
在这里插入图片描述

一个字符串 四个数字类型的字段
我们按这个来写staff类
参考代码如下

package com.example.textm.domain;public class staff {private int id;private String name;private int age;private int status;private int departmentid;@Overridepublic 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层
还是在这个目录下 创建一个 dao文件夹
在这里插入图片描述
下面创建一个接口 叫 staffDao
参考代码如下

package com.example.testarticle.dao;import com.example.testarticle.domain.staff;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;@Mapper
public interface staffDao {@Select("select * from staff where id = #{id)")staff getById(Integer id);
}

这里 我们定义了一个抽象方法 根据id查询一个staff对象
这里 直接利用注解 可以直接在这里 就将 sql写了非常的方便

也不需要写实现类了 这就写完了 我们直接可以测试它了
我们直接打开测试类所在目录
在这里插入图片描述
编写代码如下

package com.example.textm;import com.example.textm.dao.staffDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
class TextMApplicationTests {@Autowiredprivate staffDao staffDao;@Testvoid contextLoads() {System.out.println(staffDao.getById(1));}
}

这里 我们引入了 接口staffDao调用了我们自己写的getById
传1 查询id为1的一条数据

然后 我们运行代码
在这里插入图片描述
可以看到 我们的数据就被整合出来了


http://www.ppmy.cn/news/348020.html

相关文章

PD QC诱骗取电应用IC《乐得瑞LDR6328S》广泛应用于各大小家电

随着现在智能家居的应用越来越广泛,带电池的产品一天比一天多,今天这篇文章就来讲一下那些支持快速充电(PD QC)的产品应用电路是怎么实现的 USB PD受电端取电芯片(乐得瑞取电受电)LDR6328S 支持多协议快充取电! 1、概述 LDR6328S…

C++教程(07)——变量作用域

一般来说有三个地方可以定义变量: 在函数或一个代码块内部声明的变量,称为局部变量。 在函数参数的定义中声明的变量,称为形式参数。 在所有函数外部声明的变量,称为全局变量。 作用域是程序的一个区域,变量的作用…

C++17新语法及标准库

1. New language features 1.1. New auto rules for direct-list-initialization 在C 17中,引入了一个新的auto规则来改进直接列表初始化(direct-list-initialization)的行为。在此前,使用auto声明变量并对其进行直接列表初始化…

【数据分享】2000-2021年全国1km分辨率的逐月PM2.5栅格数据(免费获取)

PM2.5作为最主要的空气质量指标,在我们日常研究中非常常用!之前我们分享了2000-2021年全国范围1km分辨率的逐日的PM2.5栅格数据(可查看之前的文章获悉详情),数据来自于Zendo平台! 我们发现在Zendo平台上还…

显卡内存和计算机内存,电脑内存和显卡,吃鸡应该先升哪个?

原标题:电脑内存和显卡,吃鸡应该先升哪个? 说到显卡和内存哪个对游戏性能更重要,大多数人第一时间想到的都是显卡,但是显卡的发挥要建立在电脑内存足够的前提下,否则面临的问题就是闪退,再好的显…

e480换高分屏_ThinkPadE480笔记本(i5-8250u 8G内存 256G固态 高分屏0QCD 14英寸) 京东5799元...

ThinkPadE480是一款升级英特尔 酷睿i7 8代系列处理器的全新产品,轻薄纤巧的造型美入人心,这款产品最大的亮点就是它所搭载的Intel 酷睿i7 8550U 四核心/八线程处理器,拥有高达4GHz的最大睿频以及8MB三级缓存,理论性能强大到能够媲…

腾讯云4核8g服务器可支持多少人同时在线?4核8G并发量计算

腾讯云4核8G服务器可容纳多少人同时在线?4核8G服务器并发用户数多少?腾讯云4核8G服务器并发数计算需要考虑到服务器带宽、后端程序性能及CVM实例规格,4核8G服务器网来详细说下腾讯云服务器并发用户数计算: 腾讯云4核8G服务器并发…

浏览器上写代码,4核8G微软服务器免费用,Codespaces真香

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 一图胜千言 先上图,下面是欣宸在自己的iPad Pro上用浏览器写代码的实拍,右下方可见SpringBoot应用启动成功的日志 您可能会觉得平板配…