新聞中心
Angular 是一個(gè)流行的前端 JavaScript 框架,它具有可擴(kuò)展、模塊化和可重用性等優(yōu)點(diǎn),使得它成為開(kāi)發(fā)多種類型 Web 應(yīng)用程序的不二選擇。在進(jìn)行 Web 應(yīng)用程序開(kāi)發(fā)時(shí),與數(shù)據(jù)庫(kù)交互是一個(gè)必不可少的部分,其中 CRUD 操作是最常用的。本文將介紹如何使用 Angular 輕松實(shí)現(xiàn)數(shù)據(jù)庫(kù)更新功能。

創(chuàng)新互聯(lián)建站自2013年起,先為東阿等服務(wù)建站,東阿等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為東阿企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
需要安裝并配置 Angular。在此過(guò)程中,需要安裝 Node.js 和 Angular 腳手架。Node.js 是一個(gè)可在服務(wù)器端運(yùn)行 JavaScript 代碼的平臺(tái),而 Angular 腳手架是一個(gè)工具,它能生成一個(gè) Angular 應(yīng)用程序模板。安裝過(guò)程請(qǐng)參考官方文檔。
接下來(lái),需要建立一個(gè)數(shù)據(jù)庫(kù)表并填充數(shù)據(jù)。假設(shè)有一個(gè)學(xué)生信息表,其中有 ID、姓名、班級(jí)和成績(jī)四個(gè)字段??梢允褂?MySQL 或者其它數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)創(chuàng)建和管理表。
使用 Angular 發(fā)送 HTTP 請(qǐng)求來(lái)更新數(shù)據(jù)庫(kù)的記錄,需要在 Angular 服務(wù)中實(shí)現(xiàn)。下面的代碼片段顯示了如何在 Angular 服務(wù)中編寫(xiě)更新函數(shù)。其中,updateScore() 是一個(gè)異步函數(shù),它會(huì)接收一個(gè)參數(shù)為學(xué)生 ID,然后使用這個(gè) ID 更新數(shù)據(jù)表中對(duì)應(yīng)的學(xué)生信息。
“`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 是一個(gè)名為學(xué)生服務(wù)的 Angular 服務(wù),它依賴于 HttpClient,使用 HTTP 協(xié)議與遠(yuǎn)程數(shù)據(jù)庫(kù)進(jìn)行通信。updateScore() 方法中的 url 變量指向了更新數(shù)據(jù)的 API,使用的是 PUT 請(qǐng)求方式,請(qǐng)求攜帶了學(xué)生 ID 和新的成績(jī)數(shù)據(jù)。
在 Angular 應(yīng)用程序的組件中,可以注入上述服務(wù),并在需要更新數(shù)據(jù)的地方調(diào)用它。下面的代碼片段展示了在 Angular 組件中如何調(diào)用學(xué)生服務(wù)中的更新函數(shù)來(lái)更新學(xué)生信息。
“`typescript
import { Component } from ‘@angular/core’;
import { StudentService } from ‘../services/student.service’;
@Component({
selector: ‘a(chǎn)pp-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 是一個(gè) Angular 組件,它依賴于學(xué)生服務(wù)。在 loadStudents() 方法中,它使用學(xué)生服務(wù)來(lái)獲取學(xué)生信息列表。在 updateStudent() 方法中,它使用學(xué)生服務(wù)來(lái)更新學(xué)生信息。在執(zhí)行更新操作后,loadStudents() 方法會(huì)重新加載學(xué)生列表,展示更新后的成績(jī)。
需要在 Angular 應(yīng)用程序的 HTML 模板中展示更新界面。下面的代碼片段展示了如何在 Angular 組件的 HTML 模板中使用一個(gè)表單來(lái)更新學(xué)生信息。
“`html
| ID | 姓名 | 班級(jí) | 成績(jī) | 操作 |
|---|---|---|---|---|
| {{student.id}} | {{student.name}} | {{student.class}} | 更新 |
刪除 |
“`
在上述代碼中,使用 ngFor 指令遍歷學(xué)生列表,展示每個(gè)學(xué)生的 ID、姓名、班級(jí)和成績(jī)。使用 ngModel 指令雙向綁定了學(xué)生成績(jī)的輸入框。在表單的 submit 事件中,調(diào)用了 updateStudent() 方法來(lái)更新數(shù)據(jù)庫(kù)中的成績(jī)數(shù)據(jù)。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220MongoDB與MySQL:如何選擇
MongoDB和MySQL分別是領(lǐng)先的開(kāi)源NoSQL和關(guān)系數(shù)據(jù)庫(kù)。哪個(gè)最適合您的應(yīng)用程序?
在1990年代的互聯(lián)網(wǎng)泡沫時(shí)期,用于Web應(yīng)用程序的一種通用軟件堆棧是LAMP,它最初代表Linux(OS),Apache(Web服務(wù)器),MySQL(關(guān)系數(shù)據(jù)庫(kù))和PHP(服務(wù)器編程語(yǔ)言)。MySQL是首選的數(shù)據(jù)庫(kù),主要是因?yàn)樗敲赓M(fèi)的開(kāi)源代碼,并且具有良好的讀取性能,非常適合從數(shù)據(jù)庫(kù)動(dòng)態(tài)生成網(wǎng)站的“ Web 2.0”應(yīng)用程序。
之后,代表MongoDB(文檔數(shù)據(jù)庫(kù)),Express(Web服務(wù)器),Angular(前端框架)和Node.js(后端JavaScript運(yùn)行時(shí))的MEAN堆棧開(kāi)始流行。除其他原因外,MEAN堆棧很有吸引力,因?yàn)槟枰私獾奈ㄒ徽Z(yǔ)言是JavaScript。與等效的LAMP堆棧相比,它還需要更少的RAM。
MySQL AB的Monty Widenius和David Axmark最初于1994年開(kāi)始開(kāi)發(fā)MySQL。產(chǎn)品名稱中的“ My”是指Widenius的女兒,而不是英語(yǔ)單詞“ my”。MySQL旨在與mSQL(又名Mini)兼容。 SQL),并添加了SQL查詢層和開(kāi)放源代碼許可(實(shí)際上是專有和GPL雙重許可)。MySQL的公共發(fā)行版于1996年底開(kāi)始,并且每年或每?jī)赡瓿掷m(xù)發(fā)行一次。MySQL是當(dāng)前更受歡迎的關(guān)系數(shù)據(jù)庫(kù)。
Sun Microsystems于2023年以10億美元的價(jià)格收購(gòu)了MySQL AB,Oracle于2023年收購(gòu)了Sun。在Oracle收購(gòu)MySQL的廣泛關(guān)注中,Widenius在收購(gòu)Oracle之前就將MySQL 5.5合并到了MariaDB中。MariaDB努力維護(hù)與Oracle MySQL版本的兼容性。
與功能更強(qiáng)大的商業(yè)關(guān)系數(shù)據(jù)庫(kù)(例如Oracle數(shù)據(jù)庫(kù),IBM DB / 2和Microsoft SQL Server)相比,MySQL最初是一個(gè)相當(dāng)?shù)投说年P(guān)系數(shù)據(jù)庫(kù),盡管它足以成為動(dòng)態(tài)網(wǎng)站的后備存儲(chǔ)。多年來(lái),它增加了您希望從關(guān)系數(shù)據(jù)庫(kù)獲得的大多數(shù)功能,包括事務(wù),參照完整性約束,存儲(chǔ)過(guò)程,游標(biāo),全文索引和搜索,地理索引和搜索以及群集。
盡管MySQL現(xiàn)在支持“大數(shù)據(jù)庫(kù)”功能,例如主從部署,與Memcached一起使用以及水平分片,但它仍通常用于中小型部署。將MySQL擴(kuò)展到多個(gè)從屬服務(wù)器可以提高讀取性能,但是只有主服務(wù)器才能接受寫(xiě)請(qǐng)求。
AWS提供了兩種形式的MySQL即服務(wù),即Amazon RDS和Amazon Aurora。后者具有更高的性能,可以處理TB級(jí)的數(shù)據(jù),更新副本的延遲時(shí)間更短,并且可以直接與Oracle數(shù)據(jù)庫(kù)和SQL Server競(jìng)爭(zhēng)。
MongoDB是高度可伸縮的操作文檔數(shù)據(jù)庫(kù),可在開(kāi)源版本和商業(yè)企業(yè)版本中使用,它可以在本地運(yùn)行或作為托管云服務(wù)運(yùn)行。托管云服務(wù)稱為MongoDB Atlas。
MongoDB無(wú)疑是NoSQL數(shù)據(jù)庫(kù)中更受歡迎的數(shù)據(jù)庫(kù)。它的文檔數(shù)據(jù)模型為開(kāi)發(fā)人員提供了極大的靈活性,而其分布式體系結(jié)構(gòu)則提供了很好的可伸縮性。因此,通常選擇MongoDB用于必須管理大量數(shù)據(jù),得益于水平可伸縮性并處理不適合關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)的應(yīng)用程序。
MongoDB是一個(gè)基于文檔的存儲(chǔ),在其之上還具有一個(gè)基于圖形的存儲(chǔ)。MongoDB實(shí)際上并不存儲(chǔ)ON:它存儲(chǔ)BSON(二進(jìn)制ON),該擴(kuò)展了ON表示(字符串)以包括其他類型,例如int,long,date,浮點(diǎn),decimal128和地理空間坐標(biāo)。
MongoDB可以使用數(shù)據(jù)的類型生成正確的索引類型,從而在數(shù)據(jù)的單個(gè)副本上生成多模式圖形,地理空間,B樹(shù)和全文本索引。MongoDB使您可以在任何文檔字段上創(chuàng)建索引。MongoDB 4具有多文檔事務(wù),這意味著即使必須標(biāo)準(zhǔn)化數(shù)據(jù)設(shè)計(jì),您仍然可以獲得ACID屬性。
默認(rèn)情況下,MongoDB使用動(dòng)態(tài)模式,有時(shí)稱為無(wú)模式。單個(gè)中的文檔不需要具有相同的字段集,并且字段的數(shù)據(jù)類型可以在中的不同文檔之間有所不同。您可以隨時(shí)使用動(dòng)態(tài)模式更改文檔結(jié)構(gòu)。
但是,可以使用架構(gòu)治理。從MongoDB 3.6開(kāi)始,MongoDB支持ON模式驗(yàn)證,您可以在驗(yàn)證器表達(dá)式中將其打開(kāi)。
在LAMP和MEAN堆棧上存在很多變化。例如,您可以在Windows(WAMP)或MacOS(MAMP)上運(yùn)行而不是Linux OS。您可以運(yùn)行IIS(WIMP),而不是Windows上的Apache Web服務(wù)器。
您可以運(yùn)行PostgreSQL或SQL Server,而不是LAMP堆棧中的MySQL關(guān)系數(shù)據(jù)庫(kù)。如果您需要全球分布,則可以運(yùn)行CockroachDB或Google Cloud Spanner??梢允褂肞erl或Python代替PHP語(yǔ)言。如果要使用Java或C#進(jìn)行編碼,則需要考慮單獨(dú)的堆棧系列。
您可以運(yùn)行Couchbase或Azure Coos DB以獲得更好的全局分布,而不是MEAN堆棧中的MongoDB文檔數(shù)據(jù)庫(kù)。可以使用十二個(gè)Node.js Web服務(wù)器框架中的任何一個(gè)來(lái)代替Express 。除了Angular前端框架,您還可以運(yùn)行Angular 2或React。
選擇數(shù)據(jù)庫(kù)時(shí)要問(wèn)的最重要的問(wèn)題是:
這些問(wèn)題中的幾個(gè)會(huì)趨于縮小數(shù)據(jù)庫(kù)的選擇范圍,但是與制定LAMP堆棧時(shí)相比,我們有更多選擇。如果您要構(gòu)建一個(gè)應(yīng)用程序,并且該應(yīng)用程序必須在99.999%的時(shí)間內(nèi)對(duì)全世界的用戶都具有高度的一致性,那么只有少數(shù)幾個(gè)數(shù)據(jù)庫(kù)適合您。如果您的應(yīng)用程序?qū)⒃诠ぷ魅盏纳衔?點(diǎn)至下午6點(diǎn)在一個(gè)國(guó)家/地區(qū)使用,并且可以容忍最終的一致性,那么幾乎所有數(shù)據(jù)庫(kù)都可以使用,盡管某些數(shù)據(jù)庫(kù)對(duì)于開(kāi)發(fā)人員和操作員而言更容易,而某些數(shù)據(jù)庫(kù)則可以為您的主要使用場(chǎng)景提供更好的性能。
雖然LAMP和MEAN堆棧一次是Web應(yīng)用程序的良好解決方案,但現(xiàn)在都不是更佳選擇。而不是盲目采用任何一種,您應(yīng)該仔細(xì)考慮用例,并找到一種可在可預(yù)見(jiàn)的將來(lái)為您的應(yīng)用程序服務(wù)的體系結(jié)構(gòu)。
您什么時(shí)候需要關(guān)系數(shù)據(jù)庫(kù)(例如MySQL)用于新應(yīng)用程序?除了對(duì)標(biāo)準(zhǔn)SQL的明顯支持外,關(guān)系數(shù)據(jù)庫(kù)本身將數(shù)據(jù)強(qiáng)制為具有一致的強(qiáng)類型字段的表格模式,并且只要您利用規(guī)范化就可以幫助您避免數(shù)據(jù)重復(fù)。
另一方面,如果您還需要偶爾的自由格式文檔,則MySQL和許多其他關(guān)系數(shù)據(jù)庫(kù)也支持RFC 7159定義的ON數(shù)據(jù)。如果您還想使用XML文檔和XPath或XSLT,則大多數(shù)關(guān)系數(shù)據(jù)庫(kù)都可以提供這種能力。
您何時(shí)需要像MongoDB這樣的文檔數(shù)據(jù)庫(kù)?如果您的主要用例需要允許使用自由格式的數(shù)據(jù),在文檔之間更改類型的字段,隨時(shí)間變化的架構(gòu)或嵌套的文檔,則NoSQL數(shù)據(jù)庫(kù)將滿足要求。另外,如果您的應(yīng)用程序是用JavaScript編寫(xiě)的,那么文檔數(shù)據(jù)庫(kù)的ON格式將很自然。
作者: Martin Heller是InfoWorld的特約編輯和審稿人。他曾擔(dān)任Web和Windows編程顧問(wèn),從1986年至2023年開(kāi)發(fā)數(shù)據(jù)庫(kù),??軟件和網(wǎng)站。最近,他擔(dān)任Alpha Software技術(shù)和教育副總裁以及Tubifi董事長(zhǎng)兼首席執(zhí)行官。
angular 更新數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于angular 更新數(shù)據(jù)庫(kù),Angular數(shù)據(jù)庫(kù)更新教程:輕松實(shí)現(xiàn)數(shù)據(jù)更新功能,MongoDB與MySQL:如何選擇的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技公司主營(yíng):網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、小程序制作、成都軟件開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫(huà)冊(cè)、網(wǎng)頁(yè)、VI設(shè)計(jì),網(wǎng)站、軟件、微信、小程序開(kāi)發(fā)于一體。
文章題目:Angular數(shù)據(jù)庫(kù)更新教程:輕松實(shí)現(xiàn)數(shù)據(jù)更新功能(angular更新數(shù)據(jù)庫(kù))
標(biāo)題來(lái)源:http://m.5511xx.com/article/cocejsd.html


咨詢
建站咨詢
