当前位置: 首页 > news >正文

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

首先 我们还是要搞清楚 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.lryc.cn/news/93381.html

相关文章:

  • 11 二阶矩方法和Lovasz局部引理
  • 低代码赛道拥挤 生态聚合成为破局关键
  • B+树:高效存储与索引的完美结合
  • 左右排版的PDF,如何转换为单栏排版的word?
  • D349周赛:注意题目提示里,数据范围隐含的算法复杂度提示
  • iOS -- block one
  • 第十二篇:强化学习SARSA算法
  • 电力vr智能巡检模拟实操教学灵活性高成本低
  • vscode右键点击,松开后自动触发鼠标所在位置的按钮(误触发双击效果)
  • 【UE5】分分钟简单使用像素流云服务(Pixel Streaming)
  • 2021 年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题
  • 【算法】【算法杂谈】两个排序数组中找第k小的数
  • ABAP 新语法--Open SQL(草稿)
  • 2023最新常用开发网站汇总
  • ELK 日志采集使用
  • 深入剖析RocketMQ源码:消息传递的奥秘
  • Protocol https not supported or disabled in libcurl
  • 一步步搭建基于 ts + express + prisma + mongodb + zod 后端服务
  • 深入理解深度学习——Transformer:编码器(Encoder)部分
  • 【图像处理】基于收缩系数的粒子群优化和引力搜索算法的多级图像阈值研究【CPSOGSA】(Matlab代码实现)
  • PortSwigger web缓存中毒(Cache Poisoning)
  • msf渗透练习-生成木马控制window系统
  • 【c++】组合类+继承情况下构造顺序
  • 盛元广通生物化学重点实验室化学品信息化安全管理系统
  • 1.知识积累
  • 20230612----重返学习-函数式编程-数据类型检测-网络层优化
  • Java实现删除txt第一行
  • Go语言函数式编程库samber/lo
  • 自定义杰理AC63系列BLE数据发送函数
  • Jenkins结合gitee自动化部署SpringBoot项目