Angular数据库更新教程:轻松实现数据更新功能 (angular 更新数据库)

Angular 是一个流行的前端 JavaScript 框架,它具有可扩展、模块化和可重用性等优点,使得它成为开发多种类型 Web 应用程序的不二选择。在进行 Web 应用程序开发时,与数据库交互是一个必不可少的部分,其中 CRUD 操作是最常用的。本文将介绍如何使用 Angular 轻松实现数据库更新功能。

需要安装并配置 Angular。在此过程中,需要安装 Node.js 和 Angular 脚手架。Node.js 是一个可在服务器端运行 JavaScript 代码的平台,而 Angular 脚手架是一个工具,它能生成一个 Angular 应用程序模板。安装过程请参考官方文档。

接下来,需要建立一个数据库表并填充数据。假设有一个学生信息表,其中有 ID、姓名、班级和成绩四个字段。可以使用 MySQL 或者其它数据库管理系统来创建和管理表。

使用 Angular 发送 HTTP 请求来更新数据库的记录,需要在 Angular 服务中实现。下面的代码片段显示了如何在 Angular 服务中编写更新函数。其中,updateScore() 是一个异步函数,它会接收一个参数为学生 ID,然后使用这个 ID 更新数据表中对应的学生信息。

“`typescript

import { Injectable } from ‘@angular/core’;

import { HttpClient } from ‘@angular/common/http’;

import { Observable } from ‘rxjs’;

import { Student } from ‘../models/student.model’;

@Injectable({

providedIn: ‘root’

})

export class StudentService {

private baseUrl = ‘http://localhost:3000/api/student’;

constructor(private http: HttpClient) { }

updateScore(id: number, score: number): Observable {

const url = `${this.baseUrl}/update/${id}`;

return this.http.put(url, { score });

}

}

“`

在上述代码中,StudentService 是一个名为学生服务的 Angular 服务,它依赖于 HttpClient,使用 HTTP 协议与远程数据库进行通信。updateScore() 方法中的 url 变量指向了更新数据的 API,使用的是 PUT 请求方式,请求携带了学生 ID 和新的成绩数据。

在 Angular 应用程序的组件中,可以注入上述服务,并在需要更新数据的地方调用它。下面的代码片段展示了在 Angular 组件中如何调用学生服务中的更新函数来更新学生信息。

“`typescript

import { Component } from ‘@angular/core’;

import { StudentService } from ‘../services/student.service’;

@Component({

selector: ‘app-student-list’,

templateUrl: ‘./student-list.component.html’,

styleUrls: [‘./student-list.component.scss’]

})

export class StudentListComponent {

students: Student[];

constructor(private studentService: StudentService) {

this.loadStudents();

}

loadStudents(): void {

this.studentService.getStudents().subscribe((students) => {

this.students = students;

});

}

updateStudent(score: number, id: number): void {

this.studentService.updateScore(id, score).subscribe(() => {

this.loadStudents();

});

}

}

“`

在上述代码中,StudentListComponent 是一个 Angular 组件,它依赖于学生服务。在 loadStudents() 方法中,它使用学生服务来获取学生信息列表。在 updateStudent() 方法中,它使用学生服务来更新学生信息。在执行更新操作后,loadStudents() 方法会重新加载学生列表,展示更新后的成绩。

需要在 Angular 应用程序的 HTML 模板中展示更新界面。下面的代码片段展示了如何在 Angular 组件的 HTML 模板中使用一个表单来更新学生信息。

“`html

ID 姓名 班级 成绩 操作
{{student.id}} {{student.name}} {{student.class}}

“`

在上述代码中,使用 ngFor 指令遍历学生列表,展示每个学生的 ID、姓名、班级和成绩。使用 ngModel 指令双向绑定了学生成绩的输入框。在表单的 submit 事件中,调用了 updateStudent() 方法来更新数据库中的成绩数据。

相关问题拓展阅读:

MongoDB与MySQL:如何选择

MongoDB和MySQL分别是领先的开源NoSQL和关系数据库。哪个最适合您的应用程序?

在1990年代的互联网泡沫时期,用于Web应用程序的一种通用软件堆栈是LAMP,它最初代表Linux(OS),Apache(Web服务器),MySQL(关系数据库)和PHP(服务器编程语言)。MySQL是首选的数据库,主要是因为它是免费的开源代码,并且具有良好的读取性能,非常适合从数据库动态生成网站的“ Web 2.0”应用程序。

之后,代表MongoDB(文档数据库),Express(Web服务器),Angular(前端框架)和Node.js(后端JavaScript运行时)的MEAN堆栈开始流行。除其他原因外,MEAN堆栈很有吸引力,因为您需要了解的唯一语言是JavaScript。与等效的LAMP堆栈相比,它还需要更少的RAM。

MySQL AB的Monty Widenius和David Axmark最初于1994年开始开发MySQL。产品名称中的“ My”是指Widenius的女儿,而不是英语单词“ my”。MySQL旨在与mSQL(又名Mini)兼容。 SQL),并添加了SQL查询层和开放源代码许可(实际上是专有和GPL双重许可)。MySQL的公共发行版于1996年底开始,并且每年或每两年持续发行一次。MySQL是当前更受欢迎的关系数据库。

Sun Microsystems于2023年以10亿美元的价格收购了MySQL AB,Oracle于2023年收购了Sun。在Oracle收购MySQL的广泛关注中,Widenius在收购Oracle之前就将MySQL 5.5合并到了MariaDB中。MariaDB努力维护与Oracle MySQL版本的兼容性。

与功能更强大的商业关系数据库(例如Oracle数据库,IBM DB / 2和Microsoft SQL Server)相比,MySQL最初是一个相当低端的关系数据库,尽管它足以成为动态网站的后备存储。多年来,它增加了您希望从关系数据库获得的大多数功能,包括事务,参照完整性约束,存储过程,游标,全文索引和搜索,地理索引和搜索以及群集。

尽管MySQL现在支持“大数据库”功能,例如主从部署,与Memcached一起使用以及水平分片,但它仍通常用于中小型部署。将MySQL扩展到多个从属服务器可以提高读取性能,但是只有主服务器才能接受写请求。

AWS提供了两种形式的MySQL即服务,即Amazon RDS和Amazon Aurora。后者具有更高的性能,可以处理TB级的数据,更新副本的延迟时间更短,并且可以直接与Oracle数据库和SQL Server竞争。

MongoDB是高度可伸缩的操作文档数据库,可在开源版本和商业企业版本中使用,它可以在本地运行或作为托管云服务运行。托管云服务称为MongoDB Atlas。

MongoDB无疑是NoSQL数据库中更受欢迎的数据库。它的文档数据模型为开发人员提供了极大的灵活性,而其分布式体系结构则提供了很好的可伸缩性。因此,通常选择MongoDB用于必须管理大量数据,得益于水平可伸缩性并处理不适合关系模型的数据结构的应用程序。

MongoDB是一个基于文档的存储,在其之上还具有一个基于图形的存储。MongoDB实际上并不存储ON:它存储BSON(二进制ON),该扩展了ON表示(字符串)以包括其他类型,例如int,long,date,浮点,decimal128和地理空间坐标。

MongoDB可以使用数据的类型生成正确的索引类型,从而在数据的单个副本上生成多模式图形,地理空间,B树和全文本索引。MongoDB使您可以在任何文档字段上创建索引。MongoDB 4具有多文档事务,这意味着即使必须标准化数据设计,您仍然可以获得ACID属性。

默认情况下,MongoDB使用动态模式,有时称为无模式。单个中的文档不需要具有相同的字段集,并且字段的数据类型可以在中的不同文档之间有所不同。您可以随时使用动态模式更改文档结构。

但是,可以使用架构治理。从MongoDB 3.6开始,MongoDB支持ON模式验证,您可以在验证器表达式中将其打开。

在LAMP和MEAN堆栈上存在很多变化。例如,您可以在Windows(WAMP)或MacOS(MAMP)上运行而不是Linux OS。您可以运行IIS(WIMP),而不是Windows上的Apache Web服务器。

您可以运行PostgreSQL或SQL Server,而不是LAMP堆栈中的MySQL关系数据库。如果您需要全球分布,则可以运行CockroachDB或Google Cloud Spanner。可以使用Perl或Python代替PHP语言。如果要使用Java或C#进行编码,则需要考虑单独的堆栈系列。

您可以运行Couchbase或Azure Coos DB以获得更好的全局分布,而不是MEAN堆栈中的MongoDB文档数据库。可以使用十二个Node.js Web服务器框架中的任何一个来代替Express 。除了Angular前端框架,您还可以运行Angular 2或React。

选择数据库时要问的最重要的问题是:

这些问题中的几个会趋于缩小数据库的选择范围,但是与制定LAMP堆栈时相比,我们有更多选择。如果您要构建一个应用程序,并且该应用程序必须在99.999%的时间内对全世界的用户都具有高度的一致性,那么只有少数几个数据库适合您。如果您的应用程序将在工作日的上午9点至下午6点在一个国家/地区使用,并且可以容忍最终的一致性,那么几乎所有数据库都可以使用,尽管某些数据库对于开发人员和操作员而言更容易,而某些数据库则可以为您的主要使用场景提供更好的性能。

虽然LAMP和MEAN堆栈一次是Web应用程序的良好解决方案,但现在都不是更佳选择。而不是盲目采用任何一种,您应该仔细考虑用例,并找到一种可在可预见的将来为您的应用程序服务的体系结构。

您什么时候需要关系数据库(例如MySQL)用于新应用程序?除了对标准SQL的明显支持外,关系数据库本身将数据强制为具有一致的强类型字段的表格模式,并且只要您利用规范化就可以帮助您避免数据重复。

另一方面,如果您还需要偶尔的自由格式文档,则MySQL和许多其他关系数据库也支持RFC 7159定义的ON数据。如果您还想使用XML文档和XPath或XSLT,则大多数关系数据库都可以提供这种能力。

您何时需要像MongoDB这样的文档数据库?如果您的主要用例需要允许使用自由格式的数据,在文档之间更改类型的字段,随时间变化的架构或嵌套的文档,则NoSQL数据库将满足要求。另外,如果您的应用程序是用JavaScript编写的,那么文档数据库的ON格式将很自然。

作者: Martin Heller是InfoWorld的特约编辑和审稿人。他曾担任Web和Windows编程顾问,从1986年至2023年开发数据库,​​软件和网站。最近,他担任Alpha Software技术和教育副总裁以及Tubifi董事长兼首席执行官。

angular 更新数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于angular 更新数据库,Angular数据库更新教程:轻松实现数据更新功能,MongoDB与MySQL:如何选择的信息别忘了在本站进行查找喔。


数据运维技术 » Angular数据库更新教程:轻松实现数据更新功能 (angular 更新数据库)