JavaWeb开发9

ResponseBody

  • 类型:方法注解、类注解

  • 位置:Controller方法上/类上

  • 作用:将方法返回值直接响应,如果返回值类型是实体对象/集合,将会转换为JSON格式响应

  • 说明:@RestController=@Controller+@ResponseBody;

统一响应结果

三层架构

  • controller:控制层,接收前端发送的请求,对请求进行处理,并响应数据

  • service:业务逻辑层,处理具体的业务逻辑

  • dao(Data Access Object)(持久层):数据访问层,负责数据访问操作,包括数据增删改查

分层解耦

  • 内聚:软件中各个功能模块内部的功能联系

  • 耦合:衡量软件中各个层/模块之间的依赖、关联的程度

  • 软件设计原则:高内聚低耦合

  • 控制反转:IOC 对象的创建控制权由程序自身转移到外部(容器)

  • 依赖注入:DI 容器为应用程序提供运行时,所依赖的资源

  • Bean对象:IOC容器中创建、管理的对象

Bean的声明

注意事项:

  • 声明Bean时,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写

  • 使用以上四个注解都可以声明bean,但是在springboot集成web开发中,声明控制器bean只能用@Controller

Bean组件扫描

  • 前面声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponeentScan扫描

  • @ComponeentScan注解虽然没有显式配置,但实际上已经包含在了启动类声明注解@SpringBootApplication中,默认扫描范围是启动类所在包及其子包

Bean注入

  • @ Autowired注解,默认是按照类型进行,如果存在多个相同类型的bean,将会报错

  • 通过以下方法解决

    • @Primary

    • @Qualifier

    • @Resource

数据库

存储和管理数据的仓库

  • 数据库管理系统DBMS:操纵和管理数据库的大型软件

  • SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准

MySQL数据模型

  • 关系型数据库:建立在关系模型基础上,由多张互相连接的二维表组成的数据库

SQL通用语法

  • SQL语句可以单行或多行书写,以分号结尾

  • SQL语句可以使用空格/缩进来增强语句的可读性

  • MySQL数据库的SQL语句不区分大小写

  • 注释

    • 单行注释:--注释内容或#注释内容(MySQL特有)

    • 多行注释:/* 注释内容 */

DDL(数据库操作)

  • 查询

    • 查询所有:show databases;

    • 查询当前:select database();

  • 创建

    • 创建数据库:create database [if not exist] 数据库名;

  • 使用

    • 使用数据库:use 数据库名;

  • 删除

    • 删除数据库:drop database [if exists] 数据库名;

上述语法中的database,可以替换成schema

  • 数据类型

DDL(表操作)

  • 查询当前数据库所有表:show tables;

  • 查询表结构:desc 表名;

  • 查询建表语句:show create table 表名;

  • 删除表:drop table [if exists] 表名;

DML

  • 修改数据:update 表名 set 字段名1=值1...[where 条件];

修改条件可以有,也可以没有,如果没有条件,则会修改整张表所有数据

  • 删除数据:delete from 表名 [where 条件];

DELETE语句条件可以没有,如果没有,则会删除整张表数据

DELETE语句不能删除某一字段的值(如果要操作,可以使用UPDATE,将该字段值置为NULL)

DQL

  • 条件查询:select 字段列表 from 表名 where 条件列表;

NULL值不参与所有聚合函数运算

统计数量可以使用:count(*)[推荐使用] count(字段) count(常量)

  • 分组查询:select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

  • where 和 having的区别

    • 执行时机不同:where是分组之前进行过滤,不满足则不参与分组;having是分组之后对结果进行过滤

    • 判断条件不同:where不能对聚合函数进行判断,having可以

  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

  • 执行顺序:where>聚合函数>having

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

直播美颜SDK开发指南:实时美颜技术的架构与优化策略

时下,为了满足市场需求,许多企业开始开发自己的美颜SDK,通过集成到直播或视频应用中,实现实时美颜效果。接下来,笔者将从美颜SDK的架构设计和优化策略出发,深入探讨如何打造一个智能化的视频美颜平台。 一…

Leecode热题100-104.二叉树中的最大路径和

二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root &#xff0c…

第六十三周周报 GCN-CNNGA

文章目录 week 63 GCN-CNNGA摘要Abstract1. 题目2. Abstract3. 文献解读3.1 Introduction3.2 创新点 4. 网络结构4.1 数据分析4.2 混合深度学习框架的发展4.3 Mul4.4 CNN block4.5 GCN block4.6 GRU block4.7 注意力机制4.8 模型评估标准 5. 实验结果5.1 不同邻接矩阵的性能评价…

学习笔记——MathType公式编号:右编号和随章节变化

1.如何在word文档中插入带有编号的公式? 步骤:(前提是已经安装mathtype) 2.MathType公式编号怎么随章节变化? 想要编号级数也随标题级数进行自动变化,则需要插入或修改文档的“分隔符” 步骤:

VS+QT开发 找不到宏$(Qt_INCLUDEPATH_) $(Qt_LIBS_)

问题:在VSQT开发环境,项目右键->属性->C/C->常规->附加包含目录->宏(位置在右下角)->右侧新弹出的属性框内搜索Qt_INCLUDEPATH_ 找不到的场景的解决办法。

STl学习-迭代器

1.迭代器种类 这五种迭代器的声明如下: truct output_iterator_tag {};//输出迭代器 truct input_iterator_tag{ };//输入迭代器 truct forward iterator tag : public input iterator tag {};//向前迭代器 truct bidirectional iterator tag :public forward iter…

亲测在Windows系统安装、使用、定制Ollama服务

一、前言 1.1 Ollama介绍 Ollama是一个专为在本地环境中运行和定制大型语言模型而设计的工具。它提供了一个简单而高效的接口,用于创建、运行和管理这些模型,同时还提供了一个丰富的预构建模型库,可以轻松集成到各种应用程序中。Ollama的目标…

aLoNg3x.2 | CrackMe

cm下载链接: https://n0zom1z0.lanzoup.com/iB4Gz2el88cb 密码:38sy crack目标是让register框去掉。不让patch,所以要真算出Code。 第一个难点: DELPHI。。。窗口文字与处理函数的定义在这种地方: 这个cancel处,只要…

STl学习-函数对象

1.含有状态的函数对象类 函数对象类除了 operator()之外也可以包含其他成员。函数对象类通常含有一些数据成员这些成员被用于定制调用运算符中的操作。举个例子,我们将定义一个打印 string 的类。默认情况下,会将内容写入到cout 中,每个stri…

U-Mail邮件网关有效防止企业邮箱系统被垃圾邮件轰炸

在现代社会,互联网企业为了提供更便捷的服务,常常会收集用户数据,构建自己的大数据资源库。然而,这种行为往往导致用户在不经意间泄露个人隐私,进而引发个人信息的非法交易和频繁的骚扰电话,这些问题已经引…

手把手教你搭建OpenScenario交通场景(上)

OpenScenario是一种专为自动驾驶系统仿真测试设计的场景描述语言,它基于XML格式,旨在提供一个标准化、模块化的框架,用于定义和重现复杂的道路交通场景。该语言不仅能够详细描绘车辆、行人、交通信号及其他动态交通参与者的行为模式&#xff…

专业140+总分430+复旦大学875信号与系统考研经验原957电子信息通信考研,真题,大纲,参考书。

专业140,总430,复旦大学875信号与系统(电子信息)原957经验贴分享,希望大家复习有帮助。 专业课(875信号与系统含随机过程-原957) 专业课这方面我是从7月开始,刚好数学第一遍搞好了大…

NVR小程序接入平台EasyNVR多品牌NVR管理工具/设备介绍

随着数字化浪潮的迅猛推进,视频监控技术在维护公共安全、提升管理效能方面发挥着越来越重要的作用。在众多视频监控平台中,NVR小程序接入平台EasyNVR是一款拓展性强、视频能力灵活且部署轻便的安防视频监控平台。它支持多种主流标准协议,并能…

C语言 | Leetcode 题解之第535题TinyURL的加密与解密

题目: 题解: typedef struct {int key;char *val;UT_hash_handle hh; } HashItem;HashItem *dataBase NULL;char* encode(char* longUrl) {srand(time(0));int key;HashItem * pEntry NULL;while (true) {key rand();pEntry NULL;HASH_FIND_INT(dat…

磁盘分区并挂载

https://blog.csdn.net/qq_45664055/article/details/107516419

投机采样的显性化——OpenAI新feature:Predicted Outputs

关于投机采样speculative decoding我就不特别详细解释了 我在这里简单描述一下 小模型生成了接下来的n个标记,然后在大模型上进行n个并行推理,具体为:Prompt,Prompt ST1,Prompt ST1 ST2 … Prompt ST1 ST2 … …

BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测

BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测 目录 BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 …

有趣的Midjourney作品赏析(附提示词)

中文提示词:国风少年 C4D软件,高分辨率,超细节,超现实主义, 英文提示词:National Style Youth Cinema4D,high resolution,hyper detailed,surrealism, --niji 6 --ar 1:1 中文提示词:粘土模型,男性穿着中世纪欧洲蓝色盔甲&#x…

【保姆级教程】实操 Linux 磁盘管理:硬盘选型 分区挂载

最近,Linux 服务器自带的固态硬盘,空间告警,急需加上一块新的硬盘来救急。 今日分享,系统梳理下 Linux 下挂载磁盘的详细步骤和注意事项,方便日后翻阅,也给有类似需求的小伙伴一点帮助。 1. SSD&#xff…

离线安装nvidia docker2插件

由于网络问题,各位下载nvidia docker插件存在各种各样的问题,往往需要换源,或者其他途径外网解决,为了避免这么麻烦,可选择直接将包下载到本地,使用dpkg本地安装。 离线包下载地址,总共需要下载…