- 博客(389)
- 收藏
- 关注
原创 JavaWeb——MySQL-多表查询(7/7)-案例2(分组聚合与筛选、多表关联查询、子查询运用、多表查询总结与要点回顾)
多表查询语法总结连接查询内连接:隐式内连接在FROM后罗列表并用逗号分隔,在WHERE后指定连接条件;显示内连接用连接表,ON后设连接条件,INNER可省略。外连接:含左外与右外连接。左外连接以左表为基准含左表全部及交集数据,用;右外连接以右表为基准含右表全部及交集数据,用OUTER可省略,项目中常用左外连接,右外连接可通过交换表位置转换为左外连接。子查询:在SELECT语句嵌套SELECT。
2025-02-20 08:00:00
308
原创 JavaWeb——MySQL-多表查询(6/7)-案例1(案例准备与表关系梳理多表查询需求实现:六道实际应用题以及测试数据)
分类表存储菜品与套餐分类,菜品表含菜品详细信息及分类 ID 关联分类表,套餐表有套餐信息及分类 ID 关联分类表,套餐菜品关系表维护套餐与菜品多对多关系,含套餐 ID、菜品 ID 及份数字段。执行查询获套餐及包含菜品信息,套餐下菜品信息完整,无套餐或菜品信息缺失,结果正确,满足查询所有套餐及菜品详细信息需求。用左外连接依次关联套餐表、套餐菜品关系表与菜品表,设连接条件,指定返回字段(套餐名称、菜品名称、价格、数量)。先以别名连接两表,设连接条件,添加价格筛选条件,指定返回字段(菜品名称、价格、分类名称)
2025-02-18 08:00:00
741
原创 JavaWeb——MySQL-多表查询(5/7)-子查询(行、表)(行子查询实践、表子查询应用、子查询总结与深化理解)
子查询类型回顾与特点总结行子查询返回单行多列数据,依业务需求用IN等运算符与外部查询条件匹配,实现基于多列条件的数据筛选,优化时注意合并条件减少子查询执行次数提升性能。表子查询返回多行多列数据,作临时表在FROM子句与其他表关联,实现复杂连接查询,常用于需子查询结果集参与多表关联场景,为数据整合提供强大支持。子查询在多表查询中的价值与应用场景子查询为多表查询关键技术,增强查询逻辑表达力与灵活性,可依不同业务需求与关联条件实现复杂数据检索与分析。
2025-02-16 08:00:00
421
原创 JavaWeb——MySQL-多表查询(4/7)-子查询(标量、列)(子查询定义阐释、类型细分,标量子查询实践、列子查询应用,总结与要点回顾)
子查询功能价值总结子查询为 SQL 查询增添强大灵活性与逻辑表达力,通过嵌套实现复杂条件构建与数据筛选,可依不同业务需求返回不同类型结果(标量、列、行、表),为数据检索提供丰富手段,适应多变业务场景与数据处理需求。查询构建与优化思路解决复杂查询问题时,可将其分解为多个简单子查询分步处理,降低难度、提高可读性与维护性,最后依逻辑关系合并子查询构建完整查询语句,优化数据检索过程,提升查询效率与准确性。运算符与条件匹配注意不同类型子查询适用运算符不同,标量子查询用比较运算符,列子查询常用IN。
2025-02-14 08:00:00
793
原创 JavaWeb——MySQL-多表查询(3/7)-外连接(语法解析、实践应用)
FROM子句指定左表,用连接右表,OUTER可省略,ON子句设连接条件。如SELECT *以左表为基,含左表全部及与右表交集数据,确保左表数据完整性,适用于需保留主表全部记录场景,如查询员工及对应部门信息,保证员工信息完整展示,为数据关联分析提供全面视角。FROM子句指定左表,连接右表,OUTER可省略,ON子句设连接条件。如SELECT *以右表为基,含右表全部及与左表交集数据,突出右表数据完整性,在特定业务场景(如以部门为核心查询员工信息)确保相关数据完整呈现,为数据分析提供全面支持。
2025-02-12 08:00:00
589
原创 JavaWeb——MySQL-多表查询(2/7)-内连接(语法剖析、实战演练)
别名定义与使用为简化查询语句、提升可读性,可给表起别名。如FROM tb_emp e, tb_dept d WHERE e.dept_id = d.id,分别为员工表与部门表起别名e与d。后续查询条件与返回字段用别名代替表名,如SELECT e.name, d.nameFROM tb_emp e, tb_dept dWHERE e.dept_id = d.id;使代码简洁紧凑,尤其适用于表名长或多表连接复杂场景,增强代码可维护性与开发效率。注意事项
2025-02-10 08:00:00
531
原创 JavaWeb——MySQL-多表查询(1/7)-概述(多表查询准备、笛卡尔积现象、消除无效笛卡尔积与多表查询分类)
于图形化工具(如 IDEA)全选复制脚本内容后粘贴执行,于指定数据库创建部门表(dpt)与员工表(emp)及插入测试数据。部门表含基础字段与部门名称字段,员工表含基础字段及关联部门表主键的外键字段dept_id,构建一对多关系模型,为多表查询演练提供数据支撑。
2025-02-08 08:00:00
388
原创 Node.js——构建WEB应用(HTTP模块:response、request ,url 模块 ,path模块)
HTTP模块概念HTTP模块:Node.js的核心模块,用于创建HTTP服务器,实现浏览器与Web 服务器之间的请求与响应。引入方式:const http=require("http");
2025-02-06 08:00:00
1045
原创 Node.js——Buffer和文件系统(Buffer 缓存区、fs 文件操作:异步模式下写入读取文件,Stream 流 )
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP或文件时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。Buffer (缓存区或者缓冲区),是一个类似于Array的对象, 用于表示固定长度的字节序列. 主要处理文件流和二进制数据流Buffer 也可以理解为固定长度的内存空间。
2025-02-04 08:00:00
974
原创 Node.js——异步编程(异步:阻塞与非阻塞、JavaScript执行机制、callBack hell 回调地狱,Promise、Async await)
由于p2返回的是另一个 Promise,导致p2自己的状态无效了,由p1的状态决定p2的状态。另外,Promise.all()方法的参数可以不是数组,但必须具有 Iterator 接口,且返回的每个成员都是 Promise 实例。p1、p2、p3都是 Promise 实例,如果不是,就会先调用Promise.resolve方法,将参数转为 Promise 实例,再进一步处理。表达出来,避免了层层嵌套的回调函数。p1和p2都是 Promise 的实例,但是p2的resolve方法将p1作为参数,即。
2025-02-02 08:00:00
1085
1
原创 Node.js——模块化(模块的基本概念、模块化的规范、包与NPM)
什么是模块?模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立的、可分解,可更换的代码单元。什么是模块化?模块化是一种设计思想,利用模块化可以把一个非常复杂的系统结构细化到具体的功能点,每个功能点看作一个模块,然后通过某种规则把这些小的模块组合到一起,构成模块化系统。Node.js中的包包是包含js文件和其他附加信息的整体,某种意义上来说,包是模块的集合, 也就是我们说的第三方模块模块是按照CommonJS规范写的js文件。
2025-01-30 08:00:00
901
原创 JavaWeb——MySQL-多表设计(5/5):案例-表结构(分类表(category)、菜品表(dish)、套餐表(set_meal)、套餐菜品关系表(set_meal_dish))
多表关系明晰分类 - 菜品一对多关系,菜品表外键连分类表id,实现分类与菜品层级关联,助快速查询分类下菜品及追溯菜品分类源头,优化数据检索与业务逻辑处理效率,提升外卖业务数据管理粒度与精度。分类 - 套餐一对多架构,套餐表外键指向分类表id,精准构建分类套餐映射,确保套餐在分类体系中精准定位与高效管理,支撑按分类筛选套餐等业务操作,强化外卖业务分类导航与套餐组织效能。菜品 - 套餐多对多纽带,套餐菜品关系表凭借与dish_id。
2025-01-28 08:00:00
1006
原创 JavaWeb——MySQL-多表设计(4/5):案例-关系分析(苍穹外卖项目概述、页面原型、表结构设计流程规划)
苍穹外卖为外卖平台,含管理后台(餐厅老板与员工用)与用户端(微信小程序)。管理后台配菜品分类、菜品、套餐数据,用户端依此点餐。本案例聚焦设计。
2025-01-26 08:00:00
248
原创 JavaWeb——MySQL-多表设计(3/5):(一对一关系,多对多关系,小结)
以用户与身份证为例,呈现一对一典型场景。在业务系统中,为优化数据操作效率,常拆分含多种信息的大表。如用户表含基本与身份信息,若基本信息查询频繁、身份信息查询低频,可拆为用户基本信息表(含用户 ID、姓名、性别等)与用户身份信息表(含民族、生日、身份证号等),两表依用户 ID 构建一对一关系,提升查询性能,精准定位数据,减轻数据库 I/O 负担,加速系统响应。于任意一方表设外键关联对方主键,如在用户身份信息表设外键user_id指向用户基本信息表主键。
2025-01-24 08:00:00
557
原创 JavaWeb——MySQL-多表设计(2/5):一对多-外键(语法解析、图形化工具添加外键实操、物理外键局限剖析、逻辑外键优势与选择)
开发中依业务规则编码实现数据一致性维护,如业务逻辑层添加部门删除校验,确保无员工关联方可删除部门,提升系统性能与扩展性,适配复杂业务架构与分布式环境,为大型项目数据管理提供灵活高效方案,增强系统应变能力与维护便利性。部门与员工表结构虽已创建并插入测试数据,但在删除部门表中学工部数据时,员工表中学工部员工记录仍留存,致数据完整性与一致性受损。此方式灵活,可按需为已有表添加外键,增强数据关联管理,如项目拓展或表结构调整时,为新表或现有表建立外键约束,完善数据关系维护机制。删除部门数据测试外键约束功能,
2025-01-22 08:00:00
873
原创 JavaWeb——MySQL-多表设计(1/5):一对多(引言、一对多关系案例、分析表结构设计、一对多关系总结)
关系特点与表结构体现一对多关系中,一个部门对应多个员工,一个员工只归属于一个部门。部门表为 “1” 的一方(父表),员工表为 “多” 的一方(子表)。在数据库表结构层面,通过在子表(员工表)中增加关联父表(部门表)主键的字段(dept_id)来实现这种关系。这样设计便于查询员工所属部门,如查询员工 “张无忌” 所属部门,可通过员工表中dept_id关联部门表id获取部门信息。表格数据values (1, '学工部', now(), now()),(2, '教研部', now(), now()),
2025-01-20 08:00:00
286
原创 JavaWeb——MySQL-DQL(7/7)-案例(员工管理的条件分页查询、员工信息统计、DQL 语句重点回顾、流程控制函数应用)
DQL 语句重点回顾DQL 语句主要包含基本查询、条件查询、分组查询、排序查询和分页查询五个部分。基本查询指定查询表和返回字段,可设置字段别名,多个字段用逗号分隔。条件查询通过WHERE添加条件,使用多种运算符构建条件,多个条件用AND或OR连接,注意空值判断用IS NULL或。分组查询用GROUP BY指定分组字段,HAVING进行分组后条件过滤,查询返回字段通常为分组字段和聚合函数,WHERE在分组前过滤且不能使用聚合函数,HAVING在分组后过滤且可使用聚合函数。排序查询用。
2025-01-18 08:00:00
674
原创 JavaWeb——MySQL-DQL(6/7)-分页查询(语法与背景、分页查询演示、总结)
关键要点回顾核心在于掌握LIMIT关键字及起始索引与每页记录数参数用法。起始索引从 0 起算,决定查询起始位置;每页记录数决定每页数据容量。同时牢记起始索引计算公式 “起始索引 =(页码 - 1)× 每页展示记录数”,此为实现灵活准确分页查询之关键,助开发者依不同页码需求计算正确起始索引,确保数据分页精准性与一致性。实际应用考量实际开发中,前端通常传页码而非起始索引,后端接收页码后依公式换算起始索引以执行查询。如接收页码为 4、每页记录数 10,则起始索引为,查询语句为。
2025-01-16 08:00:00
642
原创 JavaWeb——MySQL-DQL(5/7)-排序查询(语法、演示、总结)
排序查询要点回顾排序查询关键在于正确使用ORDER BY关键字及指定排序字段和方式。掌握升序(ASC)和降序(DESC)的使用方法,以及多字段排序时字段顺序对结果的影响。理解默认排序方式为升序,可根据实际需求灵活选择是否添加ASC关键字。实际应用注意事项在实际项目中,根据业务需求选择合适的排序字段。例如在电商系统中,根据商品价格排序(升序或降序)展示商品列表,方便用户查找低价或高价商品;在订单管理中,根据订单时间排序方便查看订单先后顺序。注意排序字段的数据类型,确保排序结果符合预期。
2025-01-14 08:00:00
921
原创 JavaWeb——MySQL-DQL(4/7)-分组查询(语法、分组查询演示、总结)
分组查询要点回顾分组查询关键在于正确使用GROUP BY和HAVING关键字,明确SELECT返回字段的规则(主要为分组字段和聚合函数)。理解WHERE和HAVING在条件过滤上的区别及执行顺序,这对于编写准确的分组查询语句至关重要。实际应用注意事项在实际项目中,根据业务需求合理选择分组字段和聚合函数。例如在统计不同部门的员工数量、平均工资等场景中,分组字段为部门字段,聚合函数根据具体统计需求选择(如COUNT统计人数、AVG计算平均工资)。注意HAVING。
2025-01-12 08:00:00
1608
原创 JavaWeb——MySQL-DQL(3/7)-聚合函数(分组查询与聚合函数概述,聚合函数演示:COUNT、MAX、MIN、AVG、SUM,总结)
聚合函数要点回顾介绍了 5 个常见聚合函数及其功能,重点掌握COUNT函数不同使用方式的差异及适用场景,以及聚合函数不对空值进行运算这一特性。实际应用注意事项在实际项目中,根据统计需求选择合适的聚合函数。例如统计记录数量用COUNT,求最大值用MAX等。使用COUNT函数统计总数据量时,优先考虑使用COUNT(*),因其性能优化优势。同时,要注意数据中的空值情况,避免因空值影响聚合函数计算结果的准确性。在进行平均值计算(AVG。
2025-01-10 08:00:00
582
原创 JavaWeb——MySQL-DQL(2/7)-条件查询(比较运算符、逻辑运算符,条件查询演示:范围查询、多选一查询、模糊查询)
条件构建要点回顾构建查询条件是条件查询的关键,需熟练掌握各类比较运算符和逻辑运算符的用法。重点关注判断空值(IS NULL)、模糊匹配(LIKE与)的使用场景。在组装多个条件时,正确使用AND(或&&)和OR(或||)连接条件,注意逻辑关系的准确性。实际应用注意事项在实际项目中,根据业务需求准确构建查询条件至关重要。例如在用户登录验证时,通过WHERE条件查询用户名和密码是否匹配;在数据筛选和统计时,合理运用各种运算符筛选出符合特定条件的数据。
2025-01-08 08:00:00
586
原创 JavaWeb——MySQL-DQL(1/7)-基本查询(语句概述、基本语法结构、基本查询语法)
基本查询要点回顾基本查询主要围绕指定查询表和返回字段展开,可查询多个或所有字段,能为字段设置别名(注意别名的特殊情况处理),还可通过DISTINCT去除重复记录。掌握这些基本语法是进行复杂查询的基础,有助于准确获取所需数据。实际应用注意事项在实际项目中,应根据业务需求合理选择查询字段,避免使用SELECT *这种全字段查询方式(除非确实需要所有字段),以提高查询性能。设置别名时要确保别名具有明确意义且符合业务逻辑,方便后续数据处理和展示。使用DISTINCT。
2025-01-06 08:00:00
937
原创 JavaWeb——MySQL-DML(3/3)-删除数据delete(基础语法、语句演示、注意事项、DML 操作总结)
INSERT、UPDATE、DELETE 语法回顾INSERT 语句语法为表名(字段名 1,字段名 2,...)VALUES(值 1 组),(值 2 组),... 或表名 VALUES(值 1 组),(值 2 组),...(为所有字段插入数据时可省略字段列表),操作时需注意字段与值一一对应、字符串和日期类型加引号、数据大小在字段规定范围内。UPDATE 语句语法为UPDATE表名SET字段名 1=值 1,字段名 2=值 2,... [WHERE条件]用于更新表中数据。
2025-01-04 08:00:00
769
原创 JavaWeb——MySQL-DML(2/3)-修改数据update(基础语法、语句演示、总结与注意事项)
语法总结UPDATE 语句语法相对简单,通过指定表名、要更新的字段及值,结合 WHERE 条件可灵活实现对表中数据的更新操作。注意事项WHERE 条件的重要性如果 UPDATE 语句后没有加 WHERE 条件,会更新整张表的所有数据,这可能导致数据意外修改,操作时需特别谨慎。在实际应用中,应根据业务需求准确添加 WHERE 条件,确保只更新符合条件的数据。例如在第一个需求中,通过WHERE id=1精准定位到要更新的员工记录;
2025-01-02 08:00:00
748
原创 JavaWeb——MySQL-DML(1/3)-添加数据insert(DML 操作概述、INSERT 语句插入数据、语句演示、总结)
INSERT 语句重点INSERT 语句用于向数据库表中添加数据,语法形式多样,可根据需求为指定字段或全部字段插入数据,也能进行批量操作。掌握其语法结构及使用场景是操作数据库数据的基础。实际应用要点在实际项目中,使用 INSERT 语句时需严格按照语法规则编写代码,注意字段与值的对应关系、数据类型的正确表示(如字符串和日期类型加引号)以及数据大小的限制。准确使用 INSERT 语句能够确保数据正确插入数据库,为后续数据操作和业务逻辑实现提供保障。END学习自:黑马程序员——JavaWeb课程。
2024-12-30 08:00:00
1007
原创 JavaWeb——MySQL-DDL(6/6)-表结构操作-操作-查询&修改&删除(DDL语句概述、DDL 语句总结)
总结主要包括数据库操作(创建、查询、使用、删除数据库)和表结构操作(创建、查询、修改、删除表结构)两大部分。在实际项目开发中,图形化界面工具已替代了大部分 DDL 语句操作,但学习 DDL 语句有助于理解数据库底层原理。重点关注内容表结构创建语句的详细结构,包括表名、字段定义、约束、注释等。约束:理解主键、非空、唯一、默认等约束的概念、作用及使用场景,如主键用于唯一标识一行数据,非空约束确保字段必填等。数据类型:掌握常见数据类型(如数值类型中的INTTINYINT等,字符串类型中的VARCHAR。
2024-12-28 08:00:00
922
原创 JavaWeb——MySQL-DDL(5/6)-表结构操作-创建-案例(通过图形化工具创建员工表结构、表结构设计、案例中的数据类型与约束选择分析)
设计流程与依据先阅读页面原型及需求文档,对不清楚或有歧义的内容找产品经理确认。依据文档分析表结构包含的字段(包括原型字段和基础字段)、字段类型及约束,最后通过图形化工具创建表结构。重点强调字段创建时间记录数据插入时间,插入数据时设为当前时间;修改时间记录数据最后更新时间,每次更新数据时需更新为当前时间。
2024-12-26 08:00:00
649
原创 JavaWeb——MySQL-DDL(4/6)-表结构操作-数据类型(数值类型、字符串类型、日期时间类型)
在创建表结构时需指定字段数据类型,之前用到了INTVARCHARCHAR等类型,本文详细介绍 MySQL 中常见数据类型,包括数值类型、字符串类型和日期时间类型。掌握常见数据类型(如数值类型中的TINYINTINT等,字符串类型中的CHARVARCHAR,日期时间类型中的DATEDATETIME)及其区别,根据数据特点和业务需求合理选择数据类型,以优化存储空间和提高数据处理效率,要通过案例加强对数据类型的理解和运用。END学习自:黑马程序员——JavaWeb课程。
2024-12-24 08:00:00
696
原创 JavaWeb——MySQL-DDL(3/6)-表结构操作-创建(DDL 语句中表结构操作概述、创建表结构语法、实践、约束介绍、自动增长)
约束概念与作用约束是作用在表中字段上的规则,用于限制存储在表中的数据,保证数据库中数据的正确性、有效性和完整性。MySQL 中的约束类型非空约束(NOT NULL:限制字段不能存储空值。唯一约束(UNIQUE:保证字段的所有数据唯一不重复。主键约束(:是一行数据的唯一标识,要求非空且唯一,通常对应表中的id字段。默认约束(DEFAULT:在保存数据时,若未指定该字段的值,则采用默认约束中指定的默认值。外键约束(
2024-12-22 08:00:00
602
原创 JavaWeb——MySQL-DDL(2/6)-图形化工具(使用图形化工具的原因、DataGrip 工具介绍、在 IDEA 中使用)
工具概述DataGrip 是 JetBrains 公司提供的数据库管理工具,可管理和开发 MySQL、Oracle 等数据库,该公司还提供了 IDEA 开发工具。安装直接傻瓜式安装即可(DataGrip 30 天免费试用)。也可直接使用 IDEA,因为 JetBrains 公司已将 DataGrip 功能集成到 IDEA 中,功能和界面操作风格与独立的 DataGrip 一致。
2024-12-20 08:00:00
1421
原创 JavaWeb——MySQL-DDL(1/6)-数据库操作(项目开发流程、数据库环节,DDL 语句 - 数据库操作操作、分类与指令示例、注意事项)
可选项后,若数据库存在则删除,不存在则不执行操作且不报错,如。当前重点培养数据库设计和操作能力,优化能力在后期加强训练。可选项,若数据库不存在则创建,存在则不执行操作且不报错,如。如数据库优化,包括索引建立、SQL 优化、分库分表等。开发项目前先拿到产品经理提供的。项目上线后若遇性能瓶颈还需进行。概要设计、详细设计、接口设计、数据库设计等。学习自:黑马程序员——JavaWeb课程。,因其表意更明确(意为 “数据库”)。,执行后会提示数据库切换成功。若数据库不存在会报错,加。
2024-12-18 08:00:00
324
原创 JavaWeb——MySQL-概述(2/2)-数据模型&SQL简介(关系型数据库介绍、MySQL 数据存储结构,通用语法、分类)
MySQL 数据库服务器中,数据存储需要先创建数据库,数据库在磁盘中以文件夹形式体现(如在 MySQL 安装目录下的 data 文件夹中)。在数据库下可创建多张表结构来存放数据,表结构中的数据最终也以磁盘文件形式存在,查询表数据时会从磁盘文件加载并以二维表形式呈现。用于创建数据库中的用户以及控制数据库的访问权限。SQL 语句通常分为四大类:DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)和 DCL(数据控制语言)。用于定义数据库对象,包括定义数据库、数据库中的表以及表中的字段。
2024-12-16 08:00:00
431
原创 JavaWeb——MySQL-概述(1/2)-安装配置(MySQL 安装及配置过程(详细),企业开发中的数据库使用方式)
在学习阶段,如果想提前体验企业开发的使用方式但没有服务器,可以使用虚拟机软件(如 Vmware)虚拟出一台计算机作为服务器,在上面安装 MySQL 等开发所需软件。在企业开发中,MySQL 数据库通常安装在一台专门的服务器上,若服务器是公司核心业务服务器,一般托管在专业机房中,以保证服务器在恒温恒湿、无尘且配备完善网络及电力系统的环境中稳定运行。在 MySQL 概述章节,主要了解三个方面:安装并配置 MySQL 数据库、介绍 MySQL 当中的数据模型、介绍 SQL 语句及其分类。可以自行修改成你喜欢的。
2024-12-14 08:00:00
906
原创 JavaWeb——MySQL-介绍(数据库相关概念介绍、主流数据库产品介绍)
排名第一,是 Oracle 公司的大型收费数据库,费用昂贵,一般中小型企业用不起,常用于银行、证券、政府、医院、电信等不差钱的项目。数据的仓库,如京东、淘宝等电商网站,以及企业内部管理系统、银行证券系统、医院政府单位系统和各类 APP 中的数据都是在数据库中存储和管理的。接下来学习的数据库属于关系型数据库,通过 SQL 语句可以操作数据库中的数据,SQL 语句是数据库学习的重点。之前读取的是 XML 文件中的数据,实际项目开发中通常使用专业数据库存储数据,接下来进入数据库学习。
2024-12-12 08:00:00
376
原创 JavaWeb——分层解耦(5/5):IOC&DI-DI详解(核心概念、问题引出、解决方法、总结)
默认按照类型进行自动装配,如果类型下只有一个 Bean 对象可以直接注入成功,若同类型的 Bean 有多个则会报错。通过这种方式可以切换生效的 Bean 实现类,并且重新启动应用后,页面展示的数据会根据注入的不同实现类而变化。注解完成依赖注入操作,它默认按照类型装配,即从 IOC 容器中查找指定类型的 Bean 对象并完成注入。属性指定 Bean 的名字(如果声明 Bean 时未指定名字,默认是类名首字母小写)。它按照名称进行注入。注解指定要注入的 Bean 的名字。属性指定要注入的 Bean 的名字。
2024-12-10 08:00:00
405
原创 JavaWeb——分层解耦(4/5):IOC&DI-IOC详解(核心概念、相关注解、Bean 的名称、组件扫描问题)
推荐的方法是按照 Spring Boot 项目规范,将代码放在启动类所在包及其子包下,这样项目启动时会自动扫描到 Bean 对象。使用以上四个注解都可以声明bean,但是在springboot集成web开发中,声明控制器bean只能用@Controller。如果没有指定,默认 Bean 的名字是类名首字母小写。等注解声明了 Bean,但由于组件扫描问题,程序无法正常运行。可以在应用的控制台查看 Bean 的相关信息,包括其名称。在声明 Bean 时,可以通过注解中的。注解,指定要扫描的包。
2024-12-08 08:00:00
326
原创 JavaWeb——分层解耦(3/5):IOC&DI-入门(入门程序目标,解耦操作步骤,控制反转(IOC)操作、依赖注入(DI)操作,小结与解耦验证)
注解,代表程序运行时 IOC 容器会提供该类型的 Bean 对象并赋值给该变量,此过程称为依赖注入。层对象的实例化代码全部删掉。若仅删除代码,程序运行会报空指针异常,因为相关对象未赋值。在入门程序中,主要完成。学习自:黑马程序员——JavaWeb课程。注入运行时所需要依赖的对象。对象的实例化代码以及。注解,代表将当前类交给。
2024-12-06 08:00:00
311
原创 JavaWeb——分层解耦(2/5):分层解耦(IOC-DI引入)(内聚与耦合概念介绍、分层解耦分析、IOC与 DI概念介绍)
在三层架构程序中,Controller 层调用 Service 层,Service 层又调用 DAO 层,且在 Controller 中实例化 Service 层实现类,在 Service 中实例化 DAO 层实现类,导致 Controller 与 Service 层、Service 与 DAO 层之间存在耦合。创建的对象放入容器,Controller 同样从容器获取对象,这样实现类变化时 Controller 代码无需改动。原来的应用程序自身控制对象创建,现在交给容器管理。资源,容器为其提供的过程就叫。
2024-12-04 08:00:00
357
原创 JavaWeb——分层解耦(1/5):三层架构(架构层次、请求流程,DAO 层、Service 层、Controller 层,总结)
层操作文件(或其他数据源)中的数据并将数据返回给。拿到数据后进行逻辑处理,再将结果返回给。学习自:黑马程序员——JavaWeb课程。处理逻辑前需获取数据,所以会调用。前端发起请求后,先到达。最后响应数据给前端。代码复用性和拓展性差。
2024-12-02 08:00:00
1225
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人