.Net程式員學用Oracle系列(30):零碎補充、最後總結(The End)

来源:http://www.cnblogs.com/hanzongze/archive/2017/05/24/Oracle-Ending.html
-Advertisement-
Play Games

" 1、同義詞 " " 2、Flashback 技術 " " 3、連接字元串的寫法 " " 4、轉義字元 & 特殊運算符 " " 5、文件類型 " " 6、查看參數 & 修改參數 " " 7、AWR 工具 " " 8、學習方法 & 學習資料 " 1、同義詞 概念 同義詞是資料庫對象的一個別名,常用於 ...


1、同義詞

概念

同義詞是資料庫對象的一個別名,常用於簡化對象訪問及提高對象訪問的安全性。在使用同義詞時,Oracle 資料庫自動將它翻譯成對應模式對象的名字。與視圖類似,同義詞並不占用實際存儲空間,只在數據字典中保存了同義詞的定義。同義詞可以指向的對象有表、視圖、物化視圖、序列、函數、存儲過程、包、同義詞等。Oracle 同義詞有公用同義詞和專用同義詞兩種。普通用戶如果希望創建同義詞,還需要有 CREATE PUBLIC SYNONYM 這個系統許可權。

公用同義詞:由一個特殊的用戶組 PUBLIC 所擁有,顧名思義,資料庫中所有的用戶都可以使用公用同義詞。公用同義詞往往用來標示一些比較普通的資料庫對象,這些對象往往大家都需要引用。

專用同義詞:由創建它的用戶專用,當然,這個同義詞的創建者,也可以通過授權來讓別的用戶訪問自己的專用同義詞。

語法

創建同義詞:

CREATE [PUBLIC] SYNONYM [SCHEMA.]synonym_name FOR [SCHEMA.]object_name[@dblink];

說明:加PUBLIC表示公用,不能同時指定PUBLICsynonym_nameSCHEMA@dblink表示遠程資料庫連接。

示例:

CREATE PUBLIC SYNONYM staff FOR demo.t_staff;

刪除同義詞:

DROP [PUBLIC] SYNONYM [SCHEMA.]synonym_name; -- 也不能同時指定`PUBLIC`和`synonym_name`的`SCHEMA`

示例:

DROP PUBLIC SYNONYM staff;

用途

  • 1、多用戶協同開發中,可以屏蔽對象的名字及其持有者。如果沒有同義詞,當操作其他用戶的表時,必須通過schema.object_name的形式,採用了 Oracle 同義詞之後就可以屏蔽掉 schema,當然這裡要註意的是:PUBLIC 同義詞只是為資料庫對象定義了一個公共的別名,其他用戶能否通過這個別名訪問這個資料庫對象,還要看是否已經為這個用戶授權。

  • 2、為用戶簡化 SQ了語句,屏蔽 schema 也是一種簡化 SQL 的體現。同時,如果自己建的表的名字很長,也可以為這個表創建一個 Oracle 同義詞來簡化 SQL 開發。

  • 3、為分散式資料庫的遠程對象提供位置透明性。在分散式資料庫環境中,為了識別一個資料庫對象,必須規定主機名、伺服器名、對象的擁有者和對象名,這無疑增加了訪問者的訪問難度。為了給不同的用戶使用資料庫對象時提供一個簡單的、唯一標識資料庫對象的名稱,可以為資料庫對象創建同義詞。

2、Flashback 技術

當某個錯誤的 UPDATE 或 DELETE 語句被提交之後,如果想要把數據恢復到提交之前的某個時間點,通過邏輯備份或日誌理論上也是可以做到的,但過程往往比較繁瑣,而且需要花費較長時間才能恢復過來。

為了讓資料庫能從任何邏輯誤的操作中迅速地恢復,Oracle 推出了 Flashback(閃回)技術。Flashback 技術是以 undo segment 中的內容為基礎的,因此受限於 UNDO_RETENTON 參數。要使用 Flashback 的特性,就必須啟用自動撤銷管理表空間(預設即開啟)。

Oracle 10g 中的閃回技術主要包含閃回資料庫、閃回刪除、閃回表、閃回事務及閃回查詢等一系列功能,本節將簡要介紹其中比較實用的 3 個功能——閃回查詢、閃回表及閃回刪除。

註意:SCN(System Change Number)是在 Oracle 資料庫更新後,用於定義資料庫事務提交版本的一個數字,由 DBMS 自動維護(自動遞增)。

SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL; -- 查詢當前的 SCN
SELECT SCN_TO_TIMESTAMP(2817281) FROM DUAL;               -- SCN 轉換成時間點
SELECT TIMESTAMP_TO_SCN('2017-05-20 13:14:51') FROM DUAL; -- 時間點轉換成 SCN

當時間點轉換成 SCN 時可能會失敗,因為那個時間點也許並沒有有效的事務操作。

閃回查詢(Flashback Query)

利用 SCN 號來進行閃回查詢,查詢最近一個事務操作之前t_course表中的數據:

SELECT * FROM demo.t_course AS OF SCN DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER;

利用時間點來進行閃回查詢,查詢'2017-05-20 13:14:51'這一秒t_course表中的數據:

SELECT * FROM demo.t_course AS OF TIMESTAMP TO_TIMESTAMP('2017-05-20 13:14:51','yyyy-mm-dd hh24:mi:ss');

閃回表(Flashback Table)

開啟行轉移功能(必須要開啟行轉移功能,否則將無法閃回表)。

ALTER TABLE demo.t_course ENABLE ROW MOVEMENT;  -- 開啟行轉移功能
ALTER TABLE demo.t_course DISABLE ROW MOVEMENT; -- 關閉行轉移功能

利用 SCN 號來進行閃回表操作,將demo.t_course表的數據恢復到 2869642:

FLASHBACK TABLE demo.t_course TO SCN 2869642;

利用時間點來進行閃回表操作,將demo.t_course表的數據恢復到'2017-05-22 18:00:00':

FLASHBACK TABLE demo.t_course TO TIMESTAMP TO_TIMESTAMP('2017-05-22 18:00:00','yyyy-mm-dd hh24:mi:ss');

閃回刪除(Flashback Drop)

普通的 DROP TABLE 操作並不會徹底的刪除表,而是把表放入了回收站(RecycleBin)。放入回收站實際上就是保存原表的位置,然後將要刪除的表重新命名為首碼是“BIN$”的表,並將刪除的表信息(包括被刪除表的新名字和原名字)存儲在回收站中。

回收站是一個邏輯結構,不具有物理數據結構。記錄在回收站中信息會保留一段時間,直到回收站空間不足(會自動刪除一些表信息)或者使用 PURGE 指令清除回收站中的記錄。只要被刪除表的信息仍在回收站中,就可以通過閃回技術將這些表恢復。

閃回刪除類似於操作系統的垃圾回收站功能,可以從中恢復被 DROP 的表或者索引。無論是將回收站里的表恢復為原名稱或指定新名稱,表中的數據都不會丟失。可以通過USER_RECYCLEBIN視圖或DBA_RECYCLEBIN來查詢回收站中有那些被刪除的表信息。

語法:

FLASHBACK TABLE user_recyclebin.object_name TO BEFORE DROP[RENAME TO new_table_name];

示例:

FLASHBACK TABLE "BIN$/AwWTga9PSHgQKjACgoQJA==$0" TO BEFORE DROP;
FLASHBACK TABLE "BIN$Vm9deG4nRjatKqnWpQ+RBA==$0" TO BEFORE DROP RENAME TO tt;

補充示例:

PURGE DBA_RECYCLEBIN;           -- 清空當前資料庫的回收站
PURGE RECYCLEBIN;               -- 清空當前用戶的回收站
PURGE TABLE demo.t_course;      -- 清空 demo.t_course 表在回收站中的信息
DROP TABLE demo.t_course PURGE; -- 徹底刪除 demo.t_course 表,不進入回收站

3、連接字元串的寫法

在應用程式中連接 Oracle 資料庫的寫法有三種,分別是:TNS Alias(別名寫法)、Connect Descriptor(普通寫法)和 Easy Connect Naming Method(簡易寫法)。

別名寫法:基本上用過 Oracle 的人都知道這種寫法,同時這也是最簡單、最繁瑣的寫法。具體來說就是先在配置文件tnsnames.ora中配置 TNS Connect String 併為其取一個別名,然後再到應用程式中通過別名來連接資料庫。

一般(Oracle)資料庫管理工具都支持別名寫法,如被廣泛使用的 PL/SQL Developer,配置好tnsnames.oraTNS_ADMIN、Oracle 主目錄及 OCI 庫路徑之後就能根據別名登錄了。在 PL/SQL Developer 登錄界面上的第 3 排——資料庫的備選項就是tnsnames.ora中配置的別名。如下圖:

Login Oracle by PL/SQL Developer

TNS Connect String 寫法一:

ORCL_127.0.0.1=(
    DESCRIPTION = (
        ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )(
        CONNECT_DATA = (SERVICE_NAME = orcl)
    )
)

TNS Connect String 寫法二:

ORCL_127.0.0.1=(
    DESCRIPTION = (
        ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)
    )(
        CONNECT_DATA = (SERVICE_NAME = orcl)
    )
)

最終的應用程式連接字元串是:

"Data Source=tns_name;User Id=uid;Password=pwd;"         -- 語法
"Data Source=ORCL_127.0.0.1;User Id=demo;Password=test;" -- 實例

普通寫法:在實際開發中,估計還是這種寫法用的比較多,因為方便且可控制,不必用再多餘去配置tnsnames.ora文件了。如果僅從寫法上看,普通寫法與別名寫法唯一的區別就是,將別名所代表的 TNS Connect String 直接賦值給連接字元串中的 Data Source 參數了。

示例:

"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));User Id=demo;Password=test;"

簡易寫法:我個人比較喜歡這種寫法,因為它最簡潔!

語法:

"Data Source=host:port/instance_name;User Id=uid;Password=pwd;"

示例:

"Data Source=127.0.0.1:1521/orcl;User Id=demo;Password=test;"

4、轉義字元 & 特殊運算符

常見 Oracle 轉義字元一覽表

序號 字元 名稱 功能 類型
1 % 百分號 在 WHERE 子句中表示 0 或多個任意字元 通配符
2 _ 下劃線 在 WHERE 子句中表示一個任意字元 通配符
3 ' 單引號 表示文本、字元和日期 定界符
4 " 雙引號 包裹非法字元串或讓列名嚴格區分大小寫 定界符
5 & And 用來指出一個替代變數 特殊符號
6 * 星號 在 SELECT 語句中表示 0 或多個列 特殊符號
7 雙豎線 連接字元串 特殊符號
8 / 正斜線 終止 SQL 語句 特殊符號

部分轉義字元的特殊用法解析

下劃線:如果 LIKE 後的模式字元串是'_%',那麼查詢結果將會是所有非空的數據,只匹配下劃線開頭的數據的正確寫法是'/_%' ESCAPE '/'。示例(查詢以A_開頭的數據):

WITH t AS(
  SELECT 'AB' f FROM DUAL UNION ALL
  SELECT 'A_' FROM DUAL UNION ALL
  SELECT 'A_B' FROM DUAL
)
SELECT t.f res FROM t WHERE t.f LIKE 'A/_%' ESCAPE '/';

單引號:要在字元串中包含單引號是比較繁瑣的,基本思路就是拼接。示例:

SELECT '''' res FROM DUAL;            -- res: '
SELECT '''''' res FROM DUAL;          -- res: ''
SELECT '''1''' res FROM DUAL;         -- res: '1'
SELECT ''''||'1'||'''' res FROM DUAL; -- res: '1'

雙引號:在 Oracle 中雙引號主要用於處理非法格式和強制大小寫。

示例一(處理非法日期格式):

SELECT TO_CHAR(fn_now,'yyyy年mm月dd日') res FROM DUAL;       -- ORA-01821: 日期格式無法識別
SELECT TO_CHAR(fn_now,'yyyy"年"mm"月"dd"日"') res FROM DUAL; -- res: 2017年01月10日

示例二(處理非法列名):

SQL> SELECT 3*7 "RES VAL" FROM DUAL;

RES VAL(註意這個列名包含空格)
----------
        21

示例三(強制列名小寫):

SQL> SELECT 3*7 "res" FROM DUAL;

       res(註意這個列名是小寫的)
----------
        21

And:預設情況下,如果欄位中包含&符號就無法正常執行了。例如在 PL/SQL Developer 中執行SELECT 'AB&CD' res FROM DUAL;時就會被要求提供CD變數的值,假如你提供一個 1,那查詢結果就會是 AB1。如果想要正常查詢出含&符號的數據該怎麼辦呢?

如果是在命令視窗,如下執行即可:

SQL> SET DEFINE OFF;
SQL> SELECT 'AB&CD' res FROM DUAL;

RES
-----
AB&CD

如果是 PL/SQL 中,就得寫成:

SELECT 'AB'||'&'||'CD' res FROM DUAL; -- 大概單個 & 符號的時候 Oracle 就不再認為它是轉義字元了吧
-- 或
SELECT 'AB'||CHR(38)||'CD' res FROM DUAL; -- 38 是 & 的 ASCII 碼

Oracle 中的幾個特殊運算符解析

冒號(:):在 PL/SQL 程式中,冒號是很常見的,冒號主要有兩個作用,分別用於給變數賦值和引用(變數或欄位)。如v_name := 'scott'表示給v_name變數賦值為'scott',:NEW.staff_name表示引用表中的staff_name欄位。

等於號大於號(=>):在 PL/SQL 程式中調用存儲過程的時候,可通過=>符號來指定要給存儲過程中的那些參數賦值。

雙豎線(||):可能你會說這個符號我太熟了,不就是用來拼接字元串嘛!但在通過雙豎線進行連接運算的時候,往往還伴隨著隱式數據類型轉換,你是否關註到了呢?

以下是進行 SQL 運算時隱式類型轉換的一般規則:

  • 連接運算(||、CONCAT):數值類型和日期類型自動轉換為字元類型。
  • 算數運算(+、-、*、/、TRUNC 等):字元類型自動轉換為數值類型或日期類型。
  • 比較運算(>、<、=、IF、WHEN 等):字元類型自動轉換為數值類型或日期類型。

5、文件類型

Oracle 對資料庫文件做了詳細的劃分,細究起來大概有十幾二十種。本人覺得沒有必要全都瞭解,但簡要瞭解下常見的幾種文件對於 Oracle 的學習和使用還是有一定幫助的。下麵將逐一介紹下 Oracle 中比較常見的 7 種文件。

參數文件(parameter file):主要用於設置資料庫、用戶、進程或資源的限制及調整系統性能。如記錄了控制文件的位置。

控制文件(control file):資料庫的核心文件,每個 Oracle 資料庫都有最少一個控制文件,且一般情況下都會有副本。控制文件是在創建資料庫時自動創建的二進位文件,主要存放資料庫的狀態信息。其中包含資料庫的名稱和編號,數據文件和重做日誌文件的地址等。

數據文件(data file):資料庫中的數據在物理上是保存在操作系統的文件中,這些文件被稱之為數據文件,其尾碼名通常是.dbf。

重做日誌文件(redo log file):存放重做日誌信息的文件就叫做重做日誌文件。用於記錄資料庫中發生的所有變更(如增刪改),變更的每一條信息都叫做重做日誌信息,以便在系統發生故障時,用它對資料庫進行恢復。重做日誌組中包含一個或多個日誌文件,一個資料庫至少有兩個組,一個組至少有一個成員。重做日誌的大小是固定的,寫入方式是按時間順序寫入。切換(一個寫滿往下一個寫),迴圈(都寫滿了就重新回到頭組寫)。

閃回日誌文件(flashback log file):用於存儲數據塊被修改前的映像。

轉存文件(dump file):Oracle 傳統邏輯備份工具 export 和 import 使用的文件。

數據泵文件(data pump file):Oracle 新的邏輯備份工具數據泵使用的文件。

6、查看參數 & 修改參數

語法:

SHOW PARAMETER parameter_name;                             -- 查看參數
ALTER [SESSION|SYSTEM] SET parameter_name=parameter_value; -- 修改參數

說明:ALTER SESSION表示修改當前會話的參數值,會話結束,修改即失效。而ALTER SYSTEM表示修改當前實例的參數值,會對當前資料庫所有用戶永久生效。

常見的參數有:用來指定資料庫預設語言的NLS_LANGUAGE,用來為實例選擇預設優化行為的OPTIMIZER_MODE,用來設置排序的最大記憶體的SORT_AREA_SIZE等等。

對 Oracle 資料庫性能有影響的重要初始化參數主要是以下 8 個:

7、AWR 工具

Oracle 從 10g 開始提供了一個性能分析工具——自動工作負載信息庫(AWR,Automatic Workload Repository),用來取代早期的 Statspack。AWR 是 Oracle 的內置工具(需要購買許可),在安裝資料庫時已自動安裝完畢,不用像 Statspack 那樣獨立安裝。

AWR 報告的原理是基於 Oracle 資料庫的定時鏡像功能,所有的數據來源於 AWR 視圖,即以DBA_HIST_開頭的所有系統視圖。AWR 預設採集最近 7 天的統計信息,每 1 個小時採集一次(即每隔 1 小時收集一次系統當前狀態鏡像,並且保存到資料庫中),更早統計信息會被自動清理,這些預設選項都是可以修改的。生成 AWR 報告時,只需要指定進行分析的時間段(開始鏡像編號和結束鏡像編號),就可以生成該時間段的性能分析情況。

查詢到當前採集配置情況:

SELECT * FROM SYS.DBA_HIST_WR_CONTROL;

查詢結果:

      DBID SNAP_INTERVAL               RETENTION                    TOPNSQL
---------- --------------------------- ---------------------------- ----------
1468800140 +00000 01:00:00.0           +00007 00:00:00.0            DEFAULT

修改示例(修改為 30 分鐘採集一次,保留 14 天):

BEGIN
  DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval=>30,retention=>14*24*60);
END;

通過 AWR 和 AWR 報告,DBA 可以容易地獲知最近資料庫的活動狀態,資料庫的各種性能指標的變化趨勢曲線,最近資料庫可能存在的異常,分析資料庫可能存在的性能瓶頸從而對資料庫進行優化。通常可以通過 OEM(Oracle Enterprise Manager Console)平臺來生成查看 AWR 報告。

8、學習方法 & 學習資料

考慮到我個人精力有限,《.Net程式員學用Oracle系列》博客寫到本篇就告一段落了。接下來我將把我個人學習 Oracle 的方法和資料分享出來,以供那些有興趣或有需要的朋友參考和進一步學習。

學習方法:簡單來說,我的學習方法就是看書+看手冊+看帖子+練習。

  • 為什麼要看書:好的書往往講得比較系統,能讓你在短時間對某一領域的技術有個整體的把握。
  • 為什麼要看手冊:尤其是官方手冊,往往會涉及到整個技術的方方面面,最主要的還是手冊方便查詢。畢竟書的紙張有限,一些你有興趣但書上卻沒講的東西可以再看看手冊。
  • 為什麼要看帖子:好的帖子往往會深入總結一到多個問題,畢竟書能寫的有限,手冊主要還是全(某些具體的問題並不一定會深入講述)。所以如果遇到書上沒講,而手冊又過於輕描淡寫的問題,可以再上網查查,看看相關深入講解的帖子。
  • 為什麼要練習:光看不練假把式!所以說,如果不做練習,看的再多也白看!

好書:Oracle 是著名的老牌關係型資料庫,相關的書籍也非常多。想看書的朋友可以結合自己的興趣點,到主流的售書網站(如噹噹網和亞馬遜)上去搜一下,看看哪些書的銷量大且評價高,符合這兩點的書一般都不錯!

手冊:Oracle 官方文檔的種類繁多,對於初學者或對 Oracle 文檔系統不熟悉的人來說,選擇那些文檔來學習是個難題。

如果要瞭解 Oracle 龐大的知識體系,可以參考一下《Oracle Database Readme》,這個文檔詳細介紹了 Oracle 10g 的知識體系所囊括的全部內容。

  • 對開發人員比較有用的官方文檔:

《Oracle Database Concepts》:經典中的經典。這個文檔包含了 Oracle 10g 資料庫的基本概念、體繫結構、事務處理、並行、Oracle 進程等所有重要知識點,最重要的是這個文檔說到某個知識點的時候,在結尾處,一般會提到需要詳細瞭解此知識點的其它文檔名字和鏈接,可做為其它文檔的索引使用。

《Oracle Database SQL Reference》:SQL,資料庫開發之本,所有開發人員都應該要看的文檔。

《Oracle Database Performance Tuning Guide》:這個文檔,對於開發人員,建議看看前面一些與開發相關的章節,如果掌握了開發調優的知識,基本可以解決大部分開發中的調優問題了。

  • 非官方手冊:

《TechOnTheNet: Oracle Tutorial》這是一個非官方的 Oracle 技術手冊,它不像官方手冊那麼大而全,但在某些具體的 SQL 或 PL/SQL 方面,比官方手冊講得要好得多。

帖子:在寫作的過程中,我也發現了很多棒極了的帖子,但大部分都沒有記下來。最後我根據記錄整理出如下幾篇我個人覺得還不錯的帖子,供有需要的園友參考。

其它參考鏈接

Oracle Help Center - Search:絕大多數 Oracle 10g 的問題在這個上面都能查到相關的文檔,唯一的缺點就是服務不穩定,譬如我經常會遇到查到相關文檔,但點開卻報 404,很多時候來回多點兩次就又 OK 了。當然,如果你不能接受這一點,那麼你也可以通過必應或谷歌來查,一般也能搜到。百度的話查中文資料往往比必應和谷歌的效果好,但要查國外的資料,還是必應和谷歌的效果要好一些。

本文鏈接http://www.cnblogs.com/hanzongze/p/Oracle-Ending.html
版權聲明:本文為博客園博主 韓宗澤 原創,作者保留署名權!歡迎通過轉載、演繹或其它傳播方式來使用本文,但必須在明顯位置給出作者署名和本文鏈接!本人初寫博客,水平有限,若有不當之處,敬請批評指正,謝謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 本文大量參考了阮一峰老師的開源教程 "ECMAScript6入門" ,適合新手入門或者對ES6常用知識點進行全面回顧,目標是以較少的篇幅涵蓋ES6及部分ES7在實踐中的絕大多數使用場景。更全面、更深入的請進入上面的教程。如果您覺得有遺漏的常見知識點或者錯誤的地方,請評論指出! 新的變數聲明方式 ...
  • <!DOCTYPE html><html><head><meta charset=”utf-8″><title>Vue第一條信息</title><script src=”js/vue.js”></script></head><body><div id=”app”><p>{{ message }}</ ...
  • 文章轉載自 https://github.com/yipianfengye/android-zxingLibrary 在具體介紹該掃描庫之前我們先看一下其具體的使用方式,看看是不是幾行代碼就可以集成二維碼掃描的功能。 在module的build.gradle中執行compile操作 在demo Ap ...
  • 最近沒事看了一下 WKWebView ,就把自己總結的記錄一下,方便查看. 註:一下為個人總結,會有不足,熱烈歡迎大神指點 1> 創建導入:#import <WebKit/WebKit.h> WKWebView *webView = [[WKWebView alloc] initWithFrame: ...
  • 一,工程圖。 二,代碼。 AppDelegate.h AppDelegate.m ...
  • 不知道大家有沒有發現,在一個 Objective-C 和 Swift 混編的 App 中,當把一個 OC 中的參數轉到 Swift 時,Swift 會自動把這個變數進行強制解包。舉個例子,我在 OC 中定義這樣一個變數: 它轉成 Swift 就變成了這樣: 這樣看上去合情合理。Swift 中有 St ...
  • 首先看一下什麼是GTID: GTID(Global Transaction ID)是對於一個已提交事務的編號,並且是一個全局唯一的編號。 GTID實際上是由UUID+TID組成的。其中UUID是一個MySQL實例的唯一標識。TID代表了該實例上已經提交的事務數量,並且隨著事務提交單調遞增。根據GTI ...
  • Neo4j使用Cypher查詢圖形數據,Cypher是描述性的圖形查詢語言,語法簡單,功能強大,由於Neo4j在圖形資料庫家族中處於絕對領先的地位,擁有眾多的用戶基數,使得Cypher成為圖形查詢語言的事實上的標準。本文作為入門級的教程,我不會試圖分析Cypher語言的全部內容,本文的目標是循序漸進 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...