CYQ.Data 支援 DaMeng 達夢資料庫

路过秋天發表於2024-03-06

DaMeng 達夢資料庫介紹:

達夢資料庫(DMDB)是中國自主研發的關係型資料庫管理系統,由達夢科技股份有限公司開發。

達夢資料庫提供了企業級的資料庫解決方案,廣泛應用於金融、電信、政府、製造等行業領域。

達夢資料庫具有以下特點和優勢:

  1. 高效能:具備高效能的併發處理能力,能夠支援大容量和高併發的資料訪問需求。
  2. 高可靠性:採用了多種資料保護機制,包括事務管理、資料備份恢復等,保障資料安全和穩定性。
  3. 高可擴充套件性:支援叢集部署和分散式架構,能夠靈活擴充套件以滿足不同規模的資料儲存需求。
  4. 相容性強:相容SQL標準,支援PL/SQL儲存過程和觸發器,同時也提供了豐富的工具和介面。
  5. 自主創新:在安全、效能、高可用性等方面不斷進行技術創新和研發,滿足使用者不斷變化的需求。

總體來說,達夢資料庫作為國產資料庫管理系統,在國內市場具有一定的地位和影響力,受到一些企業使用者的青睞和選擇。

CYQ.Data 框架簡介:

好幾年沒寫 CYQ.Data 框架的文章了,一直都在低調更新版本和原始碼,這裡就簡單引用一下 GTP4 的介紹:

CYQ.Data 是一個高效能且功能強大的ORM(物件關係對映)框架,支援包括.NET Core在內的各種.NET版本。

它設計用於與多種資料庫如MSSQL、MySQL、Oracle、Sybase、PostgreSQL、DB2、FireBird、SQLite、DaMeng、KingBaseES等,以及格式如Txt、Xml、Access、Excel和FoxPro等工作。

該框架旨在透過提供寫日誌、操作JSON和分散式快取等功能,簡化資料層操作,無需額外的庫如Log4net.dll、newtonjson.dll或Memcached.ClientLibrary.dll。

該框架自豪於其低調但持續15年的更新,強調其長期可靠性和對開發人員尋找穩定且多功能ORM解決方案的支援。

前言:

去年有群友問我,CYQ.Data 支不支國產資料庫,那時候,沒支援,只是給了些提示,讓其自行透過開原始碼支援了。

後來問的人多了,就開始支援了。

CYQ.Data 從去年年底開始支援國產資料庫,下面就開始介紹相關內容。

1、開源地址:

https://github.com/cyq1162/cyqdata

2、 Nuget 引用

可以透過 nuget 管理器,直接搜 cyq.data,找到對應的 DaMeng 版本,引入即可。

之前僅是釋出了 cyq.data 原始版本,沒有提供對應整合驅動的單獨版本,今年剛新增的,一新增就十來個,多了不少工作量。

cyq.data 原始版本和 cyq.data.dameng 版本的區別:

cyq.data 原始版本:

  不包含其它資料庫驅動,需要自行引用對應資料的驅動:比如使用mysql資料庫時,需要再引用 mysql.data.dll 驅動。如果引用 cyq.data.mysql,則裡面包含了 mysql.data.dll 驅動。

cyq.data.dameng 版本:

  同樣,裡面整合了對應的資料庫驅動,不用再單獨引用。

3、支援的版本:

從下圖可以看如,一如即往,從.net 2.0 一路支援到 .net 8 及以上。

4、資料庫連結語句:

隨便 CYQ.Data 支援的資料庫越多,有些資料庫的語句都一樣,無法再根據關鍵字資訊來識別,於是在語句上支援了provider:

連結語句示例:

provider=dameng;user id=SYSDBA;password=123456789;data source=127.0.0.1;port number=3050;schema=test;

連結語句配置:

{
  "ConnectionStrings": {
    "Conn": "provider=dameng;user id=SYSDBA;password=123456789;data source=127.0.0.1;port number=3050;schema=test;"

  }
}

5、使用示例:

框架預設會引用配置中 Conn 的連結,所以在程式碼中無需指定。

1、無實體:

使用 MAction 操作表、檢視,帶分頁:

using (MAction action = new MAction("表名、檢視名、sql查詢語句"))
{
    MDataTable dt = action.Select(1, 10, "id>10");
}

使用 MProc 操作原始sql語句或儲存過程:

using (MProc proc=new MProc("sql語句、儲存過程名"))
{
    MDataTable dt = proc.ExeMDataTable();
}

2、有實體:

A、純實體

public class Users
{
    public int ID { get; set; }
    public string Name { get; set; }
}

使用:

List<Users> users=DBFast.Select<Users>(1,10,"id>10");

B、實體繼承自 CYQ.Data.Orm

public class Users:CYQ.Data.Orm.SimpleOrmBase<Users>
{
    public Users()
    {
        base.SetInit(this, "表名");
    }
    public int ID { get; set; }
    public string Name { get; set; }
}

使用:

using(Users user = new Users())
{
    List<Users> users = user.Select(1, 10, "id>10");
}

以上僅展示查詢功能,CYQ.Data 的操作,對十多種資料庫,操作都是一致的。

如果還沒有學過,可以看 CYQ.Data 相關教程。

1、V4 系列:https://www.cnblogs.com/cyq1162/category/216965.html

2、V5 系列:https://www.cnblogs.com/cyq1162/category/852300.html

6、DaMeng 資料庫的基礎說明:

在安裝或使用 DaMeng 達夢資料庫時,可以透過安裝後的DM管理工具,來管理資料庫

啟動,輸入賬號進入介面後:

可以看到,預設都是大寫標識,語句的關鍵字,是透過雙引號包括起來。

可以看到,達夢和常規的資料庫比較不一樣,你可以這樣理解它:

1、單資料庫:

一個例項只有一個資料庫,一個程序或服務,只管理一個資料庫。

【對標以往其它資料庫,都是一個例項對應多個資料庫。】

因此,開啟管理工具時,就沒能再看到新建資料庫這種常規操作,初入時,會有點MengBiBi。

2、多模式:

一對一的關係,讓例項即資料庫,可省掉了資料庫這個中間概念。

同時支援多種模式,透過新建模式,區分庫的概念,可理解為新建資料庫。

【對標有些資料庫:支援多資料庫和多模式,所以多模式又不完全是多資料庫的替代概念。】

基於它這種例項即資料庫的模式,因此資料庫連結中,不再需要指定資料庫名稱,但要指定模式名稱:

重新看一下這個示例的資料庫連結語句:

provider=dameng;user id=SYSDBA;password=123456789;data source=127.0.0.1;port number=3050;schema=test;

3、建立多個資料庫,需要建立新的例項:

透過DB資料庫配置助手,可以建立新的例項:

在建立例項過程中,還是可以看到資料庫名稱和例項名稱可以命名編寫的:

預設字串查詢比較是區分大小寫的,如果不想區分,可以取消這個選項:

做為一篇介紹框架支援資料庫的文章,就不過多的介紹介紹資料庫本身了,有用到的,可以上官方瞭解更多。

總結:

CYQ.Data 是一個用於運算元據庫的框架,可以方便地連線和管理各種型別的資料庫。在操作達夢資料庫時,使用 CYQ.Data 框架可以提供以下功能和優勢:

  1. 連線資料庫:CYQ.Data 可以輕鬆地建立與達夢資料庫的連線,透過簡單的配置即可實現連線功能,節省了開發人員的時間和精力。

  2. 執行 SQL 查詢:使用 CYQ.Data 可以方便地執行各種 SQL 查詢操作,包括查詢資料、更新資料、插入資料等,同時還支援事務處理,確保資料操作的準確性和完整性。

  3. 引數化查詢:CYQ.Data 支援引數化查詢,可以有效防止 SQL 注入攻擊,提高資料庫操作的安全性。

  4. 資料庫事務:透過 CYQ.Data 框架可以輕鬆管理資料庫事務,確保多個操作的原子性,避免資料不一致的情況發生。

總的來說,使用 CYQ.Data 框架操作達夢資料庫可以簡化開發流程,提高開發效率,同時也增強了系統的穩定性和安全性。

相關文章