MVC知識點整理匯總

MVC與ASP.NET MVC基礎概念

MVC是Model-View-Controller的縮寫.

MVC將應用程序劃分為3大組件:模型\視圖\控制器.

MVC不是ASP.NET所特有,它只是一種開發理念.java中的struts2也是一種MVC模型.

ASP.NET?MVC從2008年發布1.0版以來,截至2014年ASP.NET?MVC最新版本已經是5.0.

ASP.NET?MVC從1.0版開始,就已經開放源代碼(源碼地址:aspnetwebstack.codeplex.com).

ASP.NET?MVC官網地址:http://www.asp.net/mvc

MVC三大組件的相互關系

在控制器中可以直接調用視圖和模型

在視圖中可以調用模型.

模型不能調用視圖

模型能夠限定視圖中使用的數據,但視圖中使用的模型應由控制器提供

在視圖中可以調用控制器(通過視圖中表單的提交和點擊超鏈接的方式調用)

4418040-416f544c920d14f0.png

ASP.NET?Webform模型和ASP.NET?MVC模型的關系

二者都是基于ASP.NET?Web框架構建的開發模型.所以ASP.NET中的一些功能可以被二者公用.

Webform編程模型是典型的以事件驅動的web模型,而MVC則不是.

Webform的URL地址是基于文件系統的,而MVC則是基于Action.

4418040-d1a294c2a90af406.png

ASP.NET?MVC中的約定

所有的控制器必須放到Controllers文件夾下

所有的控制器類名必須以Controller結尾

所有的模型應該放到Models目錄下

所有的視圖文件都應該放到Views目錄下.

所有的控制器類都應該繼承自Controller類(本質上是要繼承Icontroller接口)

在控制器類中的public方法被成為Action(行為)

如果在相應的視圖目錄中沒有找到視圖文件,那么會尋找Views\Shared目錄下名稱相同的視圖文件

在Action中return?view(),默認會返回和Action名稱一樣的視圖文件.

在Global.asax全局應用程序類中注冊了默認路由(名稱為Default),默認路由指定了Controller默認為Home,Action默認為Index,參數id為可選參數.所以在URL地址中如果不輸入controller默認訪問Home控制器;如果不輸入action默認訪問名稱為Index的action.

http://localhost:54321/解釋:

根據默認路由規則,等價于=>?http://localhost:54321/Home/Index

http://localhost:54321/Home/Index/5解釋:

數值5會自動映射到action中名稱為id的參數中。

Http://localhost:54321/Home/Index/5?name=jack&age=20解釋:

其中參數包括id、name和age三個

其他

在視圖文件中,有一個名稱為Model屬性,它指代的是從Action中傳遞的模型數據.為了使用模型數據,我們還需要在<%@Page??%>指令的Inherits屬性中設置模型數據的類型.

ASP.NET?MVC進階一

控制器相關

在Controller類中方法訪問級別為public的方法,就是行為(Action).

如果不希望Controller類中的方法成為Action(可以在地址欄中被訪問),有兩種實現方式:

將方法的訪問級別設置為private

在方法上添加特性標記[NonAction]

4418040-08b4ebe29d22c533.png

諸如新增\修改等功能模塊,我們往往會創建2個名稱相同的Action:一個action用于加載新增\修改頁面;另一個action用于處理新增\修改頁面提交的表單數據.那么如何區分在何時調用哪個action呢?

我們將加載新增|修改頁面時被調用的action,添加[HttpGet]特性標記;將處理頁面提交的表單數據時調用的action,添加[HttpPost]特性標記.下面的示例代碼演示了如何實現學生的新增(action相關的代碼)

4418040-6657a5fd9e438a04.png

如何在Action中獲取表單提交的數據?

表單中提交的數據,可以通過Action的參數進行映射.

映射的前提條件:Html標記的name屬性值和action中參數的名稱要一致.

下面的示例代碼演示了映射的過程(注意粉色框標記的部分):

4418040-e10b58d607bf36dc.png
4418040-2676c5ef42ed28a7.png

Action中如何映射復雜對象?

對于上面的映射代碼,我們還可以有另外一種等價的寫法,就是將映射的屬性定義到一個實體類中,這樣我們就可以在action中添加該實體類型的參數,參考代碼如下所示:

4418040-57b351d6556a4225.png

如何從一個Action中跳轉至另外一個Action?

新增或修改功能完成后,需要跳轉至數據列表頁面,我們可以通過如下代碼實現:

代碼=>?returnRedirectToAction(“ActionName”,?“ControllerName”).

視圖相關

在ASPX視圖引擎中,可以使用asp服務器控件,但它的作用僅僅局限與生成html代碼,而不推薦開發人員使用asp控件的事件.因此建議開發人員手工編寫Html標記。

但是手寫Html標記比較耗費時間,有沒有更好的解決方案?答案就是使用Html輔助方法。

Html輔助方法

Html輔助方法的作用就是通過調用C#方法的方式,快速的生成相應的html標記.

Html輔助方法分為2大類:弱類型html輔助方法和強類型html輔助方法.

其中以For關鍵字結尾的都是強類型的輔助方法.下面的示例代碼演示了二者的調用方式,以及生成的html源碼。

4418040-4bb582fa809e8c0a.png
4418040-38454063f115e22a.png

注意:Html輔助方法有很多種重載形式,在開發過程中可以根據實際需要自行選擇.比如要實現一個包含class\style\onchange屬性和事件的單行文本框,可以參考如下代碼:

4418040-3c01bc1b626fc56f.png

強調:如何使用HTML輔助方法生成form標記?

生成form標記的兩個Html輔助方法為:Html.BeginForm()和Html.EndForm(),但他們在使用時和其他的Html輔助方法有所不同,下面的示例代碼演示了它們的兩種用法:

4418040-3020174edc9bfc02.png

如何在URL地址中傳遞參數?

場景一:將學生ID值映射到名稱為id參數上

場景二:將學生ID值映射到名稱為stuId參數上

場景三:url地址中包括stuId和name兩個參數

這三種場景的使用代碼如下所示:

4418040-93c97c63e3e30785.png
4418040-c238ae38ef346e93.png

其他

在實際開發過程中,一個小的功能模塊就對應一個控制器.比如學生信息管理就是一個控制器,新增學生\修改學生\查詢學生列表\刪除學生都可以對應控制器中的Action.

常用Html輔助方法匯總

弱類型

強類型

單行文本框

Html.TextBox()

Html.TextBoxFor()

多行文本框

Html.TextArea()

Html.TextAreaFor()

密碼框

Html.Password()

Html.PasswordFor()

復選框

Html.Checkbox()

Html.CheckBoxFor()

單選按鈕

Html.RadioButton()

Html.RadioButtonFor()

下拉列表框

Html.DropdownList()

Html.DropdownListFor()

平鋪列表框

Html.ListBox()

Html.ListBoxFor()

Label

Html.Label()

Html.LabelFor()

Form表單

Html.BeginForm()?????Html.EndForm()

超鏈接

Html.ActionLink()

如何在視圖中使用下拉列表

第一步:在action中構造好下拉列表中需要的數據,數據的類型為IEnumerable。

第二步:將構造好的數據放到Controller中的ViewData(ViewBag|TempData)屬性中。

第三步:在視圖view中使用Html.DropDownList輔助方法來生成下拉列表,而綁定的數據可以使用視圖View中的ViewData來獲取(換句話講就是,Controller中放置到ViewData的數據,可以在視圖View中的ViewData屬性中提取)。

4418040-65b4eace5cc78e16.png

在視圖中使用Html.DropDownList綁定Ienumerable

4418040-8dcafe4101f3d2a9.png

ASP.NET?MVC進階二

數據驗證

數據驗證的步驟

在模型類中添加與驗證相關的特性標記

在客戶端導入與驗證相關的js文件和css文件

使用與驗證相關的Html輔助方法

在服務器端判斷是否通過服務器端驗證

常用的驗證標記

4418040-47462c7fa83843de.png

Required:非空驗證

StringLength:驗證字符串的長度

RegularExpression:正則表達式驗證

Compare:比較兩個字段的值是否相等

Range:范圍驗證

Remote:服務器驗證(需要在controller中編寫返回值為JsonResult的Action)

自定義驗證標記

與驗證相關的js文件

在ASP.NET?MVC中提供了2套驗證框架,分別是微軟驗證框架和jquery驗證框架.默認啟用了jquery驗證框架.

注意:這些js文件的順序不能顛倒;其中Site.css文件中定義了數據驗證使用的樣式.

4418040-145150a6d54fc3ab.png

驗證相關的Html輔助方法

注意:1.必須使用Html.ValidationMessage()和Html.ValidationMessageFor()來顯示驗證失效的提示信息;

2.被驗證的控件(如文本框\下拉列表框等)必須使用Html輔助方法生成才有效.

4418040-06fa4518668cea91.png

在服務器端判斷模型是否通過了驗證(服務器端驗證)

頁面中如果使用了MVC驗證功能,那么在后臺對應的Action中必須通過ModelState.IsValid判斷是否通過了服務器端驗證。只有通過了服務器端驗證,才能執行其他的業務邏輯代碼。

4418040-a919cf83a24c9d08.png

使用要點:

被驗證的標記不能是純html,必須使用相應的html輔助方法

例如:Html.TextBoxFor(model=>model.UserName),則驗證有效;

,則驗證無效;

必須使用相應的html輔助方法顯示驗證消息(Html.ValidationMessage)

被驗證的控件必須放在有html.beginform的輔助方法內部(不能是純標記).

客戶端驗證是不安全的,容易被禁用或欺騙,所以一定要在服務器端判斷ModelState.IsValid是否為true.

Action與View的數據傳遞

在某些情況下,視圖需要顯示多份數據(比如被修改的員工信息\崗位列表\部門列表),但是Action在返回視圖時,View()方法只能傳遞1個object類型的數據,那么其他的數據該如何傳遞?

ASP.NET?MVC為我們提供了3種方案:ViewData\TempData\ViewBag.

重要提示:在Controller和View中都有這三個屬性,在Controller的相應屬性中存放了數據后,就可以在View的相應屬性中提取這些數據。

ViewData

ViewData是一個字典類型.向里面添加數據時要以鍵值對的形式添加.

首先在Action中向ViewData中添加,其次就可以在View中訪問ViewData來提取數據.

4418040-2c11764b5d8ceb01.png
4418040-5e6aa2d285b91924.png

ViewBag

ViewBag是一個動態類型的屬性。在ASP.NET?MVC?3.0中才加入了ViewBag屬性.

動態類型:dynamic,就是可以事先不為其定義屬性,通過直接給屬性賦值的方式就可以隨時為它添加新的屬性.

下面的代碼演示了向ViewBag中存放cls和stu兩個對象,這兩個對象分別放到了屬性ClassInfo和StudentInfo中。

4418040-962ce1c1420a97d5.png
4418040-98d5e939a3a4c7b1.png

TempData

TempData的用法和ViewData很相似,都是字典類型.那他們的區別是什么?

ViewData中存儲的數據僅僅對本次訪問的當前action有效.而TempData中存儲的數據,除了對本次訪問的當前action有效外,還對本次訪問的其他action有效(比如在Action1中向TempData中存放了數據,即使從Action1跳轉至Action2后,仍然可以在Action2中從TempData提取數據。而ViewData和ViewBag都無法做到這一點).因此,TempData中數據的生命周期比ViewData|ViewBag中的生命周期要長.

ActionResult的實現類

在ASP.NET?MVC模型中,Action用于響應用戶的各種請求,比如向客戶端返回html文檔、html片段、json數據、純文本、文件等結果。在ASP.NET?MVC中通過在Action(行為或操作)方法中返回ActionResult類型的對象來實現向客戶端響應上面的各種結果。

ActionResult類是個抽象類(抽象類無法直接被實例化).

ActionResult有很多實現類,不同的實現類用于響應客戶端不同的結果。并且在Controller類中提供了大量的輔助方法,這些輔助方法可以快速的創建各種ActionResult.

在實際開發中,我們更多的是使用Controller類中的輔助方法,而非自己手工創建ActionResult的實現類。

ViewResult類

ViewResult類的作用是向客戶端響應View目錄中一個視圖文件.

Controller類中提供了View()方法,來快速的返回一個ViewResult類對象.

ContentResult類

該類用于向客戶端返回一段文本內容(純文本\HTML...).

在Controller類中的輔助方法為:Controller.Content(string??content);

4418040-83bfb2d9ede96c9a.png

RedirectToRouteResult類

該類的作用是從當前action跳轉至其他action.

在Controller類中的輔助方法為:RedirectToAction(“ActionName”,“ControllerName”)

RedirectResult類

在服務器端從當前Action跳轉到其他URL地址.

在Controller類中的輔助方法為:Controller.Redirect(string??url)

4418040-012f25823da8bf3c.png

JsonResult類

該類用于向客戶端返回一段Json格式的字符串.

在Controller類中的輔助方法為:Controller.Json(object??data);

注意:默認情況下mvc拒絕響應以get方式發送的ajax請求,需要使用JsonRequestBehavior.AllowGet。

4418040-ef19ae636274b791.png

PartialViewResult類

該類的作用是向客戶端響應Views目錄的一個分部視圖文件。分部視圖就是只包含html片段的視圖文件.

在Controller類中的輔助方法為:Controller.PartialView();

4418040-6da32e4329526ed4.png

FilePathResult類

該類用于實現文件下載.

在Controller類中的輔助方法為:Controller.File(string??filePath,??string??contentType,?string??fileName);

4418040-d8db3bf57e134f2f.png

EmptyResult類

該類用于向客戶端響應一個空結果。

HttpStatusCodeResult類

該類用于向客戶端相應指定的狀態碼.

HttpNotFoundResult類就是HttpStatusCodeResult的子類,表示404這一狀態碼。

下面的是一些常用的http狀態碼:

404:資源未找到(表示客戶端請求服務器的資源地址不存在)

500:服務器內部錯誤(以5XX開頭的表示服務器端在處理過程中出現的錯誤)

200:成功(表示客戶端發送的請求被服務器成功的處理和響應)

其他

如何在aspx頁面中導入命名空間?

方式一:在指定的頁面添加<%@?Import?Namespace=”命名空間”%>

4418040-f7a16e8f97c5973a.png

方式二:在項目的web.config配置文件中添加pages---namespaces----add

4418040-e75b6486c709670a.png

通過方式二添加的命名空間可以在所有的aspx頁面中使用;而方式一添加的命名空間只能在當前頁面中使用.

ASP.NET?MVC進階三

ASP.NET?MVC中的AJAX應用

首先,在ASP.NET?MVC中使用自帶的ajax功能,必須要導入2個js文件(順序不能顛倒):

4418040-118936dd0087fa32.png

ASP.NET?MVC提供了2個常用的ajax輔助方法.

Ajax.ActionLink

該輔助方法用于在頁面上生成具有ajax功能的超鏈接.

4418040-984c480ce13316dd.png

在該輔助方法中有一個AjaxOptions類型的參數,它包括如下屬性:

Confirm:在發送ajax請求前,彈出確認對話框,該屬性就是設置對話框中的提示消息

HttpMethod:用于設置請求的類型:Get|Post

UpdateTargetId:用于設置服務器響應的結果更新到頁面中目標元素ID

InsertionMode:用于設置服務器相應的結果如何插入到被更新的元素中,它的值可以包括3種:

InsertionMode.Replace:用新值替換舊值(默認值)

InsertionMode.InsertAfter:將新值插入到目標元素的底部

InsertionMode.InsertBefore:將新值插入到目標元素的頂部

OnBegin:當執行ajax請求前,執行的js函數

OnSuccess:當執行ajax請求成功時,執行的js函數

OnFailure:當ajax請求失敗時,執行的js函數

OnComplate:當ajax請求完成后,執行的js函數(不管請求失敗或成功,都會執行)

LoadingElementId:在ajax請求期間,可以顯示一段友好的提示,該屬性用于設置提示元素的ID

LoadingElementDuration:提示元素在顯示和隱藏時,可以執行一段動畫,該屬性用于設置提示元素的動畫執行時間

4418040-786e056599690e83.png
4418040-f9740ad0ac24623b.png

Ajax.BeginForm

該ajax輔助方法用于以ajax方式提交表單數據.

4418040-03ee8c4fb6fef46c.png

其他

如何在頁面中加載分部視圖?

方式一:調用Html.RenderPartial(“viewName”)

4418040-72fe37fc2003b299.png

方式二:調用Html.RenderAction(“actionName”)

何時使用RenderAction,何時使用RenderPartial?

如果需要向視圖中傳遞數據,而原視圖中又沒有需要傳遞的數據時,就需要調用RenderAction.

注意:Html.RenderPartial有多種重載形式,下面列舉它的2種常用形式:

Html.RenderPartial(“分布視圖的名稱”)

Html.RenderPartial(“分部視圖的名稱”,??object模型數據)

如何從服務器獲取一段json格式的字符串?

服務器的Action方法返回值類型為JsonResult,并且在方法內部可以調用Controller.Json()輔助方法.

ASP.NET?MVC進階四

ASP.NET?MVC中使用母版頁

ASPX視圖引擎的母版頁功能

Aspx視圖引擎中母版頁的用法,在webform模型和Mvc模型中,都是一樣的.

Aspx視圖有2個很重要的標記:

asp:ContentPlaceHolder標記

asp:Content標記

asp:Content用于替換母版頁中的asp:ContentPlaceHolder.

在母版頁中應該根據實際需要,定義多個asp:ContentPlaceHolder,而非默認的2個.

注意:在mvc中添加母版頁時一定要選擇MVC3視圖母版頁,而不能選擇下面的母版頁和嵌套的母版頁.

4418040-9a5cbda36b37e245.png

在MVC中,沒有提供嵌套的母版頁模版文件,需要用戶自行定義:

4418040-a87239c215e422a1.png

Razor視圖引擎

Razor視圖引擎的宗旨:將鍵盤的敲擊次數降到最低

Razor基本語法

定義變量:

4418040-7b089d6e62217c76.png

輸出變量的值:

4418040-42ce2844cf8b86e6.png

如何在頁面中原樣輸出@符號

4418040-3224614cb6b374ce.png

如何在頁面中輸出hisageis5.

4418040-e63523fdcf67ddb5.png

if-else的寫法:

4418040-7b674f9a1b7bef14.png

for|foreach的寫法:

4418040-27f5ef6f3914c233.png

注意:如果在for循環中需要進行條件判斷,不需要在if前加@符號.

4418040-3935806d396c67b3.png

Html輔助方法的使用:

注意:@Html.TextBox()后面不能有分號.

4418040-d3c55a866a10c91b.png

在razor視圖頁面中定義數據模型的類型信息:

4418040-4d9334577451809f.png

在razor視圖頁面中加載分部視圖或加載其他action:

注意:@{}里面的分號不能省略.

4418040-fe4f3704a285679d.png

在Razor視圖中如何生成form標記:

4418040-1567946bfd4654db.png

Razor視圖引擎中母版頁的用法

Razor視圖中母版頁功能稱之為布局頁.

Razor視圖的布局頁文件名必須以下劃線_開頭.

Mvc項目中如何添加Razor布局頁:

4418040-1a1c5ec14f6e0234.png

Razor視圖中布局頁的默認代碼如下:

4418040-88231e75ac664260.png

@RenderBody的作用同aspx視圖中的asp:ContentPlaceHolder相似,用于加載內容頁.

Razor視圖引擎中,如何讓內容頁繼承布局頁?

在內容頁中使用Layout屬性指定要繼承的布局頁.代碼如下:

4418040-0e0991f0395be027.png

其中ViewBag.Title是用于設置布局頁中的頁面title.

如果不需要內容頁繼承布局頁,只需要將Layout屬性的值設置為null.

如果沒有將Layout設置為null,而是將其刪除掉,那么內容頁仍然有可能會繼承一個默認的布局頁.因為在Views目錄中存在一個名稱為:_ViewStart.cshtml的文件,該文件是視圖的默認配置文件,它里面設置了默認的布局頁面,示例代碼如下:

4418040-f2859f992555ad6a.png

嵌套的布局頁,在mvc中也沒有提供默認的模版文件,需要用戶自行添加.

Html.RenderSection()

該輔助方法用于加載html片段.該段Html代碼可以是本頁面中定義的,也可以是內容頁面中定義的.

示例代碼如下:

4418040-1b8afe282b23b51a.png
4418040-76401a8274d9053d.png

Razor視圖中如何自定義輔助方法

使用@helper來定義輔助方法.示例代碼如下:

4418040-538de60d038d54e1.png

在ASP.NET?MVC中如何實現模塊化開發?

對于一個系統而言,往往包含前臺和后臺兩大塊.比如,前后臺都包含用戶登錄功能,它們的控制器都叫Account,對應的登錄方法也都叫Login,那么如何區分哪個是后臺的,哪個是前臺的???

ASP.NET?MVC在2.0中就添加了Area(區域)的功能,用來解決上面的問題.

通過Area功能可以將一個大的軟件項目劃分為N個功能模塊,每個功能模塊中都可以相同名稱的控制器和視圖文件.

首先,右擊項目,在彈出的右鍵菜單中選擇----添加----區域

4418040-4cd0913368b28ded.png

ASP.NET?MVC數據分頁

Aspx視圖引擎和razor視圖引擎中如何實現分頁功能

主要使用了第三方的一個分頁控件MvcPager.dll

分頁功能分三步實現:

第一步是在項目中導入MvcPager.dll,并導入相應的命名空間:Webdiyer.WebControls.Mvc

第二步是在Action中組織要分頁的數據

4418040-5417d6667666ef3d.png

第三步是在頁面中生成頁碼信息

4418040-e8d777a3cda527f8.png

注意:MvcPager.dll包括非ajax和ajax兩種使用模式.ajax模式下需要使用Ajax.Pager輔助方法.

其他

如何在頁面中加載靜態文件(圖片\css\js)?

使用Url.Content(“filePath”)方法.

4418040-0bb5b2f56441775d.png

Aspx視圖引擎

4418040-55969ae2e60ebad3.png

Razor視圖引擎

添加新的Area后,訪問報錯的解決辦法:

4418040-3a3c7dfa5c9b6add.png

修改Global.ashx文件中注冊的默認路由

4418040-0de6ae5b41909b48.png

ASP.NET?MVC進階五

重寫Controller類的虛方法

OnActionExecuting\OnActionExecuted

OnActionExecuting:該方法在執行目標Action之前被調用

OnActionExecuted:該方法在執行目標Action之后被調用

4418040-59bcfbf1f1a71cc3.png

OnResultExecuting\OnResultExecuted

OnResultExecuting:該方法在執行目標視圖之前被調用

OnResultExecuted:該方法在執行目標視圖之后被調用

OnAuthorization

該方法用于驗證用戶的授權信息.因此如果要進行身份的驗證,應該在該方法中進行.

4418040-eb7fc438ad3b6a9f.png

OnException

當訪問Action出現異常時,該方法會自動被調用.

下面的示例代碼演示了如何自動捕獲系統異常,并將異常信息記錄到日志文件中.

4418040-82e7fb8f6875d187.png

ASP.NET?MVC中的過濾器

過濾器是指在用戶發送請求時,MVC框架可以對用戶的請求進行攔截,根據特定的條件對這些請求進行篩選過濾.

ASP.NET?MVC中提供了下面幾種過濾器,他們的作用和上面將的重寫方法功能類似,但是這些過濾器是全局的,默認對所有的Action請求都有效.

IAuthorizationFilter

授權過濾器

4418040-f954521dda81491a.png

IActionFilter

行為過濾器

4418040-2fd84ba36f43a0db.png

IResultFilter

結果過濾器

4418040-faa78c6b81d36d30.png

IExceptionFilter

異常過濾器

4418040-60a049312d8cfdb1.png

注意:過濾器需要在Global.asax文件中進行注冊后方能起效.

4418040-8548ae05d97ef45c.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272897.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272897.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272897.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

二進制編譯安裝mysql_數據庫(MySQL)二進制安裝+編譯安裝 + MariaDB編譯安裝

配置文件&#xff1a;my.cnf[mysql] :只用于mysql這個客戶端[mysqld][client]&#xff1a;共享與所有客戶端&#xff0c;如mysqldump等MySQL二進制包安裝&#xff1a;(在 mysql/下有個 INSTALL-BINARY 是安裝教程)1、下載通用二進制安裝包 mysql-5.5.33-linux2.6-x86.64.tar.gz…

第三次作業——結對編程

成員&#xff1a;031302439 031302415 本次實踐中我們是用phpmysql來實現所需功能的&#xff0c;其中使用到的軟件有PowerDesigner和WampServer 一. PowerDesigner使用過程 1. 運行程序&#xff0c;進入主界面&#xff0c;新建一個Model&#xff0c;設置DBMS屬性。我們…

NET比較常用的性能優化技巧

現在很多客戶也慢慢開始注重網站的性能了&#xff0c;同時有很多運營網站的公司也不像以前那樣特別在意網站是否非常漂亮&#xff0c;而把更多的精力放在了網站性能優化上面&#xff0c;提供更快更穩定的瀏覽速度&#xff0c;在這個基礎上面進行網站功能上的擴充和完善&#xf…

嵌入式控制系統和計算機系統

在嵌入式項推薦一本書&#xff1a;嵌入式系統設計&#xff08;重慶大學出版社&#xff0c;在船上鵬&#xff09;。我最近也看了一些好的內容&#xff0c;結合操作系統和一些嵌入式知識的原則&#xff0c;構成我們學習的經驗教訓有前前&#xff0c;對于某些以下總結&#xff0c;…

js修改mysql數據庫數據_Node.js操作mysql數據庫增刪改查

關于node.js操作mysql數據庫的相關介紹請閱讀全文吧。下文介紹的非常詳細&#xff0c;具體內容如下所示&#xff1a;安裝mysql模塊npm install mysql數據庫準備mysql server所在的機器IP地址是192.168.0.108&#xff0c;登錄賬戶就用root123456在mysql中創建test數據庫在test數…

Win10 注冊IIs4.0的解決方案

隨著Win10的出現&#xff0c;越來越多的人裝上了Win10&#xff0c;尤其是程序員&#xff0c;由于Win10是一個新的操作系統&#xff0c;但現有軟件的兼容性等各方面都是未知&#xff0c;難免會存在很多坑&#xff0c;就拿IIS來說&#xff0c;我剛裝完win10系統&#xff0c;然后裝…

HUST-2015 Multi-University Training Contest 9

2015 Multi-University Training Contest 9 solutions BY xudyh 1001.Expression 記dp_{l,r}dp?l,r??表示l,rl,r這段數能形成的答案總和。 枚舉最后一步操作kk&#xff0c;如果是乘法&#xff0c;答案為dp_{l,k}*dp_{k1,r}dp?l,k???dp?k1,r??&#xff0c;由于分配率這…

mysql強制禁止使用索引_MYSQL強制使用索引和禁止使用索引

MySQL強制索引和禁止某個索引1、mysql強制使用索引:force index(索引名或者主鍵PRI)例如:select * from table force index(PRI) limit 2;(強制使用主鍵)select * from table force index(ziduan1_index) limit 2;(強制使用索引"ziduan1_index")select * from table …

DotNet 資源框架整理

目錄 框架 應用模板&#xff08;Application Templates&#xff09; 人工智能&#xff08;Artificial Intelligence&#xff09; 程序集處理&#xff08;Assembly Manipulation&#xff09; 資源&#xff08;Assets&#xff09; 認證和授權&#xff08;Authentication an…

linxu其他用戶登錄mysql_Linux系統的MySQL用戶如何開啟遠程登錄權限

開啟 MySQL 的遠程登陸帳號有兩大步&#xff1a;1、確定服務器上的防火墻沒有阻止 3306 端口。MySQL 默認的端口是 3306 &#xff0c;需要確定防火墻沒有阻止 3306 端口&#xff0c;否則遠程是無法通過 3306 端口連接到MySQL的。如果您在安裝 MySQL 時指定了其他端口&#xff0…

oracle9

約束 維護數據的完整性 數據的完整性用于確保數據庫數據遵從一定的商業和邏輯規則&#xff08;比如年紀不能為-1&#xff0c;性別不能為非男女&#xff09;&#xff0c;在oracle中&#xff0c;數據完整性可以使用約束、觸發器、應用程序&#xff08;過程、函數&#xff09;三種…

memcached 適用的場景

最近在看 memcached 的公共課&#xff0c;發現memcache的確是個好東西&#xff0c;可以顯著地減小數據庫負載&#xff0c;當然我們要搞清楚&#xff0c;任何一樣技術都有它的優缺點&#xff0c;在使用它的時候&#xff0c;搞清楚它的適用場景&#xff0c;才能揚長避短&#xf…

公司來了個傻員工,改變了所有聰明的員工

公司來了個新員工&#xff0c;有點土&#xff0c;但很聽話。其它員工都把所有得工作堆給他做&#xff0c;新員工不介意&#xff0c;默默地幫他們都完成。主管看到他勤快&#xff0c;叫他幫忙跟著做很多事情&#xff0c;可他一點都不介意&#xff0c;可他幫主管做事都是義務的。…

mysql 交叉連接的用法_sql中內連接與外連接與交叉連接用法

文章介紹了在mysql中的內連接與外連接與交叉連接用法與舉例說明了&#xff0c;有需要了解的朋友可以參考一下下。(一)內連接SQL INNER JOIN 關鍵字在表中存在至少一個匹配時&#xff0c;INNER JOIN 關鍵字返回行。內連接查詢操作列出與連接條件匹配的數據行&#xff0c;它使用比…

$.ajax()參數詳解及標準寫法

1.url:要求為String類型的參數&#xff0c;&#xff08;默認為當前頁地址&#xff09;發送請求的地址。2.type:要求為String類型的參數&#xff0c;請求方式&#xff08;post或get&#xff09;默認為get。注意其他http請求方法&#xff0c;例如put和delete也可以使用&#xff0…

使用JAXP對XML文檔進行DOM解析

一、XML解析方式分為兩種&#xff1a;dom和sax dom&#xff1a;&#xff08;Document Object Model,即文檔對象模型&#xff09;是W3C組織推薦的解析XML的一種方式。sax&#xff1a;&#xff08;Simple API for XML)不是官方標準&#xff0c;但它是XML社區事實上的標準&#xf…

tfpose與openpose區別_人體姿態識別--Openpose+Tensorflow

目的復現代碼完成視頻中的人體姿態識別復現過程視頻來源&#xff1a;https://www.youtube.com/watch?vcMhWNGBW1Xg?www.youtube.com視頻動圖檢測結果下載的畫質本來就不高&#xff0c;再加上兩次錄屏&#xff0c;畫質比較渣。首先確認工程所需要的依賴&#xff1a;python3ten…

讓 步( 寫的太好了!)

一個不懂得為親人讓步&#xff0c;為朋友讓步&#xff0c;為愛人讓步&#xff0c;為合作伙伴讓步的人&#xff0c;是缺乏胸襟的人&#xff0c;最無能和不可交的人。試問一個連自己人都斤斤計較的人可交往嗎&#xff01;長不大的人最重要的標志&#xff0c;就是跟自己人&#xf…

Android學習手記(2) Activity生命周期

1. 單個Activity的生命周期 當只有一個Activity的時候&#xff0c; 首先執行onCreate->onStart->onResume。 這時&#xff0c; 窗口便顯示在屏幕上了。 然后我們按返回鍵退到桌面的時候&#xff0c;便執行onPause->onStop。這時候&#xff0c; 如果我們在最近使用程序…

MySQL二級比office二級_如何快速拿到計算機office二級

計算機二級考試是全國計算機等級考試(簡稱NCRE)四個等級中的一個等級&#xff0c;考核計算機基礎知識和使用一種高級計算機語言編寫程序以及上機調試的基本技能。計算機二級考試采用全國統一命題、統一考試的形式。多被國企和大型企業考核員工薪資的一個標準同時也是在信息化時…