【JavaEE进阶】图书管理系统 - 贰

目录

🌲前言

🎄设计数据库

🍃引⼊MyBatis和MySQL驱动依赖

🌳Model创建

🎍约定前后端交互接口

🍀服务器代码

🚩控制层

🚩业务层

🚩数据层

🌴前端代码

🎄测试页面


🌲前言

前面我们基本实现了前后端交互与相应简单的逻辑,后面经过一系列的学习,我们需要对我们的代码进行优化。

我们先对我们的登录界面进行优化。

🎄设计数据库

数据库表是应⽤程序开发中的⼀个重要环节,数据库表的设计往往会决定我们的应⽤需求是否能顺利实现,甚⾄决定我们的实现⽅式.如何设计表以及这些表有哪些字段,这些表存在哪些关系也是⾮常重要的

对于数据库表的设计,我认为有两种表,一个是实体表(从需求中查看),一个是关系表(实体直接的关系,一对一,一对多,多对一)

那么当前的图书管理系统的实体表有几个张呢,分为用户表和图书表

我们的⽤⼾表有⽤⼾名和密码即可

创建如下:

🍃引⼊MyBatis和MySQL驱动依赖

pom.xml依赖:

配置数据库与日志,yml文件如下:

🌳Model创建

创建一个model类的文件夹,创建一个UserInfo类如下:

🎍约定前后端交互接口

[请求]
/user/login
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
[参数]
name=zhangsan&password=123456
[响应]
响应失败:用户名或者密码错误;响应成功:返回空

浏览器给服务器发送 /user/login 这样的HTTP请求,服务器给浏览器返回了⼀个Boolean类型的数据,返回true,表⽰账号密码验证正确

🍀服务器代码

查看之前的登录接口代码:

之前由于没有学习数据库的操作,通过硬编码,采用mock的方式来验证账号密码;此时我们就通过从数据库获取用户名和密码来进行验证

该代码我们使用应用分层的思想进行分层书写

🚩控制层

该层我们首先需要对传入数据进行判断合法

合法后,更具名称查询用户,如果可以查到,并且密码一致,就认为登录成功,并存入session

查询相关逻辑实现我们交给业务层实现

创建UserController书写代码如下

🚩业务层

该层代码简单。

具体查询我们交给数据层查询,我们只需要进行接收返回即可

UserService代码如下:  

🚩数据层

创建UserMapper,使用注解方式进行查询,代码如下:  

🌴前端代码

        

🎄测试页面

错误登录:

输入正确用户名与密码正确跳转:  
  

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

cline通过硅基流动平台接入DeepSeek-R1模型接入指南

为帮助您更高效、安全地通过硅基流动平台接入DeepSeek-R1模型,以下为优化后的接入方案: DeepSeek-R1硅基流动平台接入指南 📌 核心优势 成本低廉:注册即送2000万Tokens(价值约14元)高可用性:规…

Maven——Maven开发经验总结(1)

摘要 本文总结了 Maven 开发中的多个关键经验,包括如何根据版本号决定推送到 releases 或 snapshots 仓库,如何在构建过程中跳过测试,父项目如何控制子项目依赖版本,父项目依赖是否能传递到子项目,如何跳过 Maven dep…

【微服务优化】ELK日志聚合与查询性能提升实战指南

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…

Windows 中的启动项如何打开?管理电脑启动程序的三种方法

在日常使用电脑时,我们经常会发现一些应用程序在开机时自动启动,这不仅会拖慢系统的启动速度,还可能占用不必要的系统资源。幸运的是,通过几个简单的步骤,你可以轻松管理这些开机自启的应用程序。接下来,我…

【Linux网络】认识协议(TCP/UDP)、Mac/IP地址和端口号、网络字节序、socket套接字

⭐️个人主页:小羊 ⭐️所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 1、初识协议2、UDP、TCP3、Mac、IP地址4、端口号5、网络字节序6、socket 1、初识协议 协议就是一种约定。如何让不同厂商生产的计…

【架构思维基础:如何科学定义问题】

架构思维基础:如何科学定义问题 一、问题本质认知 1.1 问题矛盾 根据毛泽东《矛盾论》,问题本质是系统内部要素间既对立又统一的关系。例如: 电商系统矛盾演变: 90年代:商品供给不足 vs 消费需求增长00年代&#x…

jetbrains IDEA集成大语言模型

一、CodeGPT ‌CodeGPT‌是由CSDN打造的一款生成式AI产品,专为开发者量身定制。它能够提供强大的技术支持,帮助开发者在学习新技术或解决实际工作中的各种计算机和开发难题‌1。 idea集成 1.在线安装:直接在线安装 2.离线安装 JetBrains Mar…

华为guass在dbever和springboot配置操作

下面记录华为guass在dbever和springboot配置操作,以备忘。 1、安装dbeaver-ce-23.2.0-x86_64-setup.exe和驱动程序 Download | DBeaver Community 2、配置高斯数据库驱动 3、新建数据库连接 4、操作指引 opengauss官方文档 https://docs-opengauss.osinfra.cn/zh…

web的分离不分离:前后端分离与不分离全面分析

让我们一起走向未来 🎓作者简介:全栈领域优质创作者 🌐个人主页:百锦再新空间代码工作室 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[1504566…

近10年气象分析(深度学习)

这是一个气象数据分析程序,主要用于分析和可视化气象数据。以下是该文件的主要功能: 1. 数据加载 在线数据:尝试从 GitHub 加载气象数据。 示例数据:如果无法加载在线数据,程序会自动生成示例数据。 2. 数据分析 …

GStreamer源码安装1.24版本

从官网下载 1.24的源码包 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/1.24?ref_typeheads#getting-started ,尝试过使用git clone 的方式,但速度贼慢,就选择了下载源码包的方式安装依赖 sudo apt install libssl-dev g me…

Vue面试2

1.跨域问题以及如何解决跨域 跨域问题(Cross-Origin Resource Sharing, CORS)是指在浏览器中,当一个资源试图从一个不同的源请求另一个资源时所遇到的限制。这种限制是浏览器为了保护用户安全而实施的一种同源策略(Same-origin p…

毕业项目推荐:基于yolov8/yolo11的水稻叶片病害检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…

DeepSeek写贪吃蛇手机小游戏

DeepSeek写贪吃蛇手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端贪吃蛇H5文件: 要求 蛇和食物红点要清晰,不超过屏幕外 下方有暂停和重新…

C/C++跳动的爱心

系列文章 序号直达链接1C/C李峋同款跳动的爱心2C/C跳动的爱心3C/C经典爱心4C/C满屏飘字5C/C大雪纷飞6C/C炫酷烟花7C/C黑客帝国同款字母雨8C/C樱花树9C/C奥特曼10C/C精美圣诞树11C/C俄罗斯方块小游戏12C/C贪吃蛇小游戏13C/C孤单又灿烂的神14C/C闪烁的爱心15C/C哆啦A梦16C/C简单…

深入理解 JSP 与 Servlet:原理、交互及实战应用

一、引言 在 Java Web 开发领域,JSP(JavaServer Pages)和 Servlet 是两个至关重要的技术,它们共同构成了动态网页开发的基础。Servlet 作为服务器端的 Java 程序,负责处理客户端请求并生成响应;而 JSP 则是一种简化的 Servlet 开发方式,允许开发者在 HTML 页面中嵌入 J…

百度搜索,能否将DeepSeek变成“内功”?

最近,所有的云平台和主流APP都在努力接入DeepSeek。其中,搜索类APP与搜索引擎更是“战况激烈”。那么问题来了,接入DeepSeek已经变成了标准配置,到底应该如何做出差异化?接入DeepSeek这件事能不能实现11大于2的效果&am…

小智机器人CMakeLists编译文件解析

编译完成后,成功烧录! 这段代码是一个CMake脚本,用于配置和构建一个嵌入式项目,特别是针对ESP32系列芯片的项目。CMake是一个跨平台的构建系统,用于管理项目的编译过程。 set(SOURCES "audio_codecs/audio_code…

保姆级教程 | Office-Word中图目录制作及不显示图注引文的方法

背景 由于毕业论文的格式修改需要(没错,我终于要拿下PhD了。差不多四个月没更新,主要是①根据处理完的数据完成小论文撰写;②找工作...③完成学位论文的撰写。因而对建模和数据处理的需求不高,对有些时隔久远的博文具…

SVN把英文换中文

原文链接:SVN设置成中文版本 都是英文,换中文 Tortoise SVN 安装汉化教程(乌龟SVN) https://pan.quark.cn/s/cb6f2eee3f90 下载中文包