原创 數據傳輸對象(DTO)--總結

DTO產生背景 當我們在設計面向對象接口的時候,好的實踐是在一個對象中隱藏很多信息,並提供一組細粒度的方法來訪問和操作這些信息,這意味着每個方法都應該負責單個、細粒度的、原子化的功能。這種方法從對象內部提供了很好的抽象,並增加了方

原创 linux ubuntu安裝 mysql

https://www.cnblogs.com/hufulinblog/p/10124001.html https://www.cnblogs.com/cxxjohnson/p/7487010.html

原创 C# 線程取消

方案一: 定義一箇中間變量,異常時賦值,下次再執行時根據中間變量的值判斷是否終止當前線程 方案二: Task.Run有一個重載方法,利用第二個參數可以終止當前線程 CancellationTokenSource cts = ne

原创 C# 線程安全問題

什麼是線程安全 如果你的代碼在進程中有多個線程同時運行一段代碼,如果每次執行的結果都和單線程運行時的結果一致, 那麼就是線程安全的 先看下面兩段代碼,執行結果是否一樣? int num1 = 0; int num2 = 0; f

原创 C#臨時變量---閉包

代碼段1的輸出結果不規則,大都>45 代碼段2的輸出和預期的一樣,1-49全部輸出 原因是兩斷代碼i對於循環體都是全局變量,而外層的for循環運行很快,內層需要創建任務,當內層開始執行第一個任務的時候,外層for循環已經快結束或已

原创 25-mysql--函數

含義 一組預先編譯好的sql語句的集合,理解成批處理語句 1、提高代碼的重用性 2、簡化操作 3、減少了編譯次數並且減少了和數據庫服務器的連接次數,提高了效率 函數和存儲過程的區別 存儲過程:可以有0個返回,也可以有多個返回值,適

原创 25-mysql--流程控制結構

分類 順序結構:程序從上往下依次執行 分支結構:程序從兩條或多條路徑中選擇一條去執行 循環結構:程序在滿足一定條件的基礎上,重複執行一段代碼 分支結構 1 if 函數 功能:實現簡單的雙分支 語法: if(表達式1,表達式2,表達

原创 22-mysql -- 使用視圖注意事項

具備以下特點的視圖不允許更新 1 包含以下關鍵字的sql語句:分組函數,distinct,group,by ,having,union,union al 2 select 中字句查詢 3 join from 一個不能更新的視圖 4

原创 20-mysql --事務2--隔離級別

併發事務的問題 對於同時運行的多個事務,當這些事務訪問數據庫中相同的數據時,如果沒有采取便要的隔離機制,就會導致各種併發問題: 髒讀:對於兩個事務T1,T2,T1讀取了T2已經更新但還沒有提交的字段之後,如果T2回滾,那麼T1讀

原创 21-mysql -- 視圖

含義 視圖是一張虛擬表,和普通表一樣使用,mysql 5.1版本出現的新特性,是通過表動態生成的數據。只保存了slq 邏輯,不保存查詢結果 應用場景: 1 多個地方用到同樣的查詢結果 2 該查詢結果使用的slq語句較複雜 優點:

原创 26-mysql--分支結果之循環結構

分類 while 、loop、repeat 循環控制: iterate 類似於continue,繼續,結束本次循環,繼續下一次 leave類似於 break,跳出,結束當前所在的循環 語法 while: 【標籤:】 while 循

原创 EntityFramework Core入門教程-01-搭建基礎環境

新建solution, 添加類庫 model層 1 用vs2019,新建一個空的Solution命名爲Demo,在該solution新建一個類庫(.net standard),命名爲Demo.Domain,用來存儲一些model

原创 javascirpt中的數組 詳細介紹

創建數組 方式一:構造函數 var colors=new Array(); var colors=new Array(20); var colors=new Array{"red","blue","green"}; //也可以省略

原创 原理分析---瀏覽器進程和線程

目前主流瀏覽器有如下進程: 1個瀏覽器主進程 1個GPU進程 1個網絡進程 多個渲染進程(因爲每個Tab頁都需要一個單獨的渲染進程來渲染,因此每個Tab頁也是一個單獨的進程) 多個插件進程 瀏覽器主進程:主要負責界面顯示、用戶交

原创 EntityFramework Core入門教程-04-插入數據

通過實例化DbContext,對數據庫進行插入,EFCore提供了四個接口插入: context.Leagues.Add(); context.Leagues.AddRange(); context.Add(); context.