首页 > 数据库 >访问数据库-BotBattle项目

访问数据库-BotBattle项目

时间:2024-03-19 16:11:58浏览次数:20  
标签:Dao Java Service -- 数据库 DAO BotBattle 访问

目录

访问数据库流程

flowchart LR 开发人员 --> C(连接数据库 JDBC) C --> D(MyBatis-Plus 映射和执行 SQL) D --> E(数据库被访问) flowchart RL A(数据库)--查询结果--> B(MyBatis-Plus) B--将这些数据转换成 Java 对象--> 开发人员
  • 连接数据库
    JDBC(Java 数据库连接)发送 SQL 语句到数据库。

  • MyBatis-Plus 映射,数据库执行 SQL
    MyBatis-Plus 把数据库的数据映射成 Java 对象,通过简单的 Java 方法调用,代替手写 SQL 代码。

Java框架各层级

通俗的例子 :

Controller 层像是一个服务员,他把客人(前端)点的菜(数据、请求的类型等)进行汇总什么口味、咸淡、量的多少,交给厨师长(Service 层),厨师长则告诉沾板厨师(Dao 1)、汤料房(Dao 2)、配菜厨师(Dao 3)等(统称 Dao 层)我需要什么样的半成品,副厨们(Dao 层)就负责完成厨师长(Service)交代的任务。

4 层

  • pojo (Plain Old Java Object)层:在各层之间传输数据。将数据库中的表对应成 Java 中的 Class。比如封装用户信息。

  • dao(Data Access Object)层(也叫 mapper 层):将 pojo 层的 class 中的操作(CRUD),映射成 sql 语句。与数据库交互,比如获取或更新用户数据。

  • service 层:组合使用 mapper 层 中的操作,实现具体的业务逻辑,如验证登录。

  • controller 层:用户与系统交互的入口。负责请求转发,接受前端页面过来的参数,传给相应 Service 处理,接到返回值,再传给页面。

class 操作 数据库操作
Create insert
Retrieve select

剩下的 2 个操作:Update 对应 update,Delete 对应 delete

对象的调用流程

flowchart TB UI(用户界面) -->|登录请求| Controller[Controller层] Controller -->|调用| Service[Service层] Service -->|查询用户| DAO[DAO/Mapper层] DAO -->|访问| DB[(数据库)] DB -->|返回用户信息| DAO DAO -->|返回对象| Service Service -->|验证密码| Response{响应结果} Response -->|登录成功| UI Response -->|登录失败| UI

耦合性与分层

如果一个厨师既负责跑堂,又负责烹饪。那这个饭店的管理一定非常混乱吧。小工就是 DAO,从食材库里(数据源)取出食材(原始数据),进行简单处理(数据对象化)。厨师就是 Service,找到小工(DAO),获取各种半成品(对象化数据),加工成顾客需要的菜肴(最终数据)。跑堂就是 Controller,负责接单(提交数据)上菜(响应数据),是顾客与后厨间的媒介(提供用户与后台程序的接口)。各司其职(高内聚),轻松协作(低耦合),就是分层思想的目标。

这个通俗易懂的故事从该链接转载:https://blog.csdn.net/qq_41810415/article/details/126545376

标签:Dao,Java,Service,--,数据库,DAO,BotBattle,访问
From: https://www.cnblogs.com/aijisjtu/p/18083204

相关文章

  • 数据库中利用二进制实现多个布尔属性的增删改查
    需求背景业务场景中经常需要一些布尔型的属性来标记数据状态,如果每个属性值都新增一个数据库字段来保存会造成空间上的浪费,在工作中进行建模设计时难免会想到用二进制来节省空间,以整形32位为例,去除最高位的符号位总共可以用来保存31个布尔属性值。实现细节为方便讲解,这里......
  • Python数据库模块(sqlite3,SQLite3)
    一、sqlite命令创建数据库:在控制台sqlite3name.databases查看数据库.tables查看表格名databaseName.dump>dumpName将数据库存在文本文件dumpName中,恢复就用databaseName<dumpName;attachdatabase......
  • windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败(二)
    windows11安装SQLserver数据库报错等待数据库引擎恢复句柄失败(二),昨天在给网友远程的时候发现了一个新的问题。计算机系统同样是Windows11,通过命令查出来的扇区相关结果也都是4096,但是最后的安装还是提示SQLserver数据库报错等待数据库引擎恢复句柄失败扇区修改详情可以......
  • mysql查看数据库锁等待排查笔记
    实验版本:5.7.27 命令如下:mysql>useinformation_schema;  mysql>selectcount(*)fromINNODB_LOCK_WAITS; +----------+ |count(*)| +----------+ |      50| +----------+ 1rowinset,1warning(0.00sec)  SHOWENGINEINNODB......
  • Windows 安装 DB2数据库
    IBMDB2是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBMi(旧称OS/400)、z/OS,以及Windows服务器。 下载 DB2Express-CforWindowsx6410.1 免费版解压后,以管理员身份安装默认端口:5000用户名:db2admin密码:d......
  • sqlserver数据库备份文件还原
    将数据还原到新的测试库,通常涉及数据库备份文件的还原或数据迁移。这里提供一种通用的SQLServer数据库还原到测试库的方法:1.数据库备份文件还原:•如果你有一个数据库备份文件(.bak),你可以通过SQLServerManagementStudio(SSMS)或T-SQL命令将其还原到新的测试库。使用SSMS:•......
  • 数据库查询优化:解析不使用索引的场景及对策
    数据库索引的目的是为了加快查询速度,但在某些情况下,查询可能不会使用索引,即所谓的“不走索引”。以下是一些可能导致数据库查询不使用索引的情况:全表扫描:当查询条件中的字段没有建立索引,或者查询的条件是对整个表进行范围查询(如使用 BETWEEN),数据库可能会选择全表扫描而不是使......
  • 基于SpringBoot的“会员制医疗预约服务管理信息系统”的设计与实现(源码+数据库+文档+P
    基于SpringBoot的“会员制医疗预约服务管理信息系统”的设计与实现(源码+数据库+文档+PPT)开发语言:Java数据库:MySQL技术:SpringBoot工具:IDEA/Ecilpse、Navicat、Maven系统展示系统首页界面图医院信息界面图坐诊信息界面图会员注册界面图个人中心界面图......
  • 基于SpringBoot的“校园交友网站”的设计与实现(源码+数据库+文档+PPT)
    基于SpringBoot的“校园交友网站”的设计与实现(源码+数据库+文档+PPT)开发语言:Java数据库:MySQL技术:SpringBoot工具:IDEA/Ecilpse、Navicat、Maven系统展示网站首页界面图用户注册界面图线下活动界面图交友信息界面图个人中心界面图后台登录界面图管......
  • sqlserver用户数据库迁移至其他盘
    用户数据库迁移至其他盘1.分离数据库:•登录到SQLServerManagementStudio(SSMS)。•右键点击要迁移的用户数据库,选择“任务(Tasks)”->“分离(Detach)”。•在弹出的对话框中,勾选你要迁移的数据库,并确认分离操作。2.物理文件移动:•找到原来数据库的.......