[開(kāi)源] .Net ORM 訪問(wèn) 人大金倉(cāng)數(shù)據(jù)庫(kù)

前言

京人大金倉(cāng)信息技術(shù)股份有限公司(以下簡(jiǎn)稱“人大金倉(cāng)”)是具有自主知識(shí)產(chǎn)權(quán)的國(guó)產(chǎn)數(shù)據(jù)管理軟件與服務(wù)提供商悬荣。人大金倉(cāng)由中國(guó)人民大學(xué)一批最早在國(guó)內(nèi)開(kāi)展數(shù)據(jù)庫(kù)教學(xué)捏膨、科研、開(kāi)發(fā)的專家于1999年發(fā)起創(chuàng)立,先后承擔(dān)了國(guó)家“863”跋破、“核高基”等重大專項(xiàng)簸淀,研發(fā)出了具有國(guó)際先進(jìn)水平的大型通用數(shù)據(jù)庫(kù)產(chǎn)品。2018年毒返,人大金倉(cāng)申報(bào)的“數(shù)據(jù)庫(kù)管理系統(tǒng)核心技術(shù)的創(chuàng)新與金倉(cāng)數(shù)據(jù)庫(kù)產(chǎn)業(yè)化”項(xiàng)目榮獲2018年度國(guó)家科學(xué)技術(shù)進(jìn)步二等獎(jiǎng)租幕,產(chǎn)學(xué)研的融合進(jìn)一步助力國(guó)家信息化建設(shè)。

隨著華為饿悬、中興事務(wù)令蛉,國(guó)產(chǎn)數(shù)據(jù)庫(kù)市場(chǎng)相信是未來(lái)是趨勢(shì)走向,縱觀 .net core 整個(gè)圈子對(duì)國(guó)產(chǎn)人大金倉(cāng)數(shù)據(jù)庫(kù)的支持幾乎為 0狡恬,今天我們使用 FreeSql ORM 來(lái)體驗(yàn)國(guó)產(chǎn)人大金倉(cāng)數(shù)據(jù)庫(kù)(雖然是拿pgsql源碼修改的)珠叔。

整體來(lái)講,人大金倉(cāng)對(duì) Oracle 語(yǔ)法有著 90% 的兼容性弟劲,但還有一些細(xì)節(jié)需要注意祷安,F(xiàn)reeSql 對(duì)此做了優(yōu)化進(jìn)行了完美支持。

1兔乞、安裝環(huán)境

數(shù)據(jù)庫(kù)服務(wù)器:KingbaseES V8

下載地址:https://www.kingbase.com.cn/index/service/c_id/212.html

.NET版本:.net core 3.1

下載地址:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install

開(kāi)發(fā)機(jī)器 :windows 10

ODBC驅(qū)動(dòng):

由于人大金倉(cāng)數(shù)據(jù)庫(kù)目前只能使用 ODBC 驅(qū)動(dòng)訪問(wèn)數(shù)據(jù)庫(kù)汇鞭,如果成功安裝了 KingbaseES V8,然后我們查看系統(tǒng) ODBC庸追,正常的話會(huì)顯示如下:

image

2霍骄、創(chuàng)建項(xiàng)目

我們以 console 類型項(xiàng)目試驗(yàn) 插入、刪除淡溯、更新读整、查詢 等功能,創(chuàng)建控制臺(tái)項(xiàng)目咱娶,使用命令:

dotnet new console

image

dotnet add package FreeSql.Provider.Odbc --version 1.6.0-preview0102

dotnet add package FreeSql.Repository --version 1.6.0-preview0102

image

3米间、創(chuàng)建實(shí)體模型

using System;
using FreeSql.DataAnnotations;

public class User
{
    [Column(IsIdentity = true)]
    public long Id { get; set; }

    public string UserName { get; set; }

    public string PassWord { get; set; }

    public DateTime CreateTime { get; set; }
}

4、初始化 ORM

static IFreeSql fsql = new FreeSql.FreeSqlBuilder()
    .UseConnectionString(FreeSql.DataType.OdbcKingbaseES, 
    "Driver={KingbaseES 8.2 ODBC Driver ANSI};Server=127.0.0.1;Port=54321;UID=USER2;PWD=123456789;database=TEST")
    .UseMonitorCommand(cmd => Trace.WriteLine($"線程:{cmd.CommandText}\r\n"))
    .UseAutoSyncStructure(true) //自動(dòng)創(chuàng)建膘侮、遷移實(shí)體表結(jié)構(gòu)
    .UseNameConvert(NameConvertType.ToUpper)
    .Build();

5屈糊、插入數(shù)據(jù)

var repo = fsql.GetRepository<User>();

var user = new User { UserName = "kingbase1", PassWord = "123" };
repo.Insert(user);
image
var users = new []
{
    new User { UserName = "kingbase2", PassWord = "1234" },
    new User { UserName = "kingbase3", PassWord = "12345" },
    new User { UserName = "kingbase4", PassWord = "123456" }
};
repo.Insert(users);
//批量插入
image

6、更新數(shù)據(jù)

user.PassWord = "123123";
repo.Update(user);
image

7琼了、查詢數(shù)據(jù)

var one = fsql.Select<User>(1).First(); //查詢一條數(shù)據(jù)

var list = fsql.Select<User>().Where(a => a.UserName.StartsWith("kingbase")).ToList();
image
image

8逻锐、刪除數(shù)據(jù)

fsql.Delete<User>(1).ExecuteAffrows();

fsql.Delete<User>().Where(a => a.UserName.StartsWith("kingbase")).ExecuteAffrows();

結(jié)語(yǔ)

這篇文章簡(jiǎn)單介紹了在 .net core 3.1 環(huán)境中使用 FreeSql 對(duì)國(guó)產(chǎn)人大金倉(cāng)數(shù)據(jù)庫(kù)的訪問(wèn),目前 FreeSql 還支持 .net framework 4.0 和 xamarin 平臺(tái)上使用表伦。

國(guó)產(chǎn)數(shù)據(jù)庫(kù)未來(lái)是發(fā)展趨勢(shì)谦去,擁有自主權(quán)不受他人限制,我在好幾個(gè)群里看到有人說(shuō)公司正準(zhǔn)備全面使用國(guó)產(chǎn)系統(tǒng)+國(guó)產(chǎn)數(shù)據(jù)庫(kù)蹦哼。

除了 增刪查改鳄哭,F(xiàn)reeSql 還支持很多功能,就不一一演示纲熏,一篇文章介紹不完妆丘。

FreeSql 是 .NETCore/.NetFramework/Xamarin 平臺(tái)下的 ORM 開(kāi)源項(xiàng)目锄俄,支持 SqlServer/MySql/PostgreSQL/Oracle/Sqlite/達(dá)夢(mèng),還有人大金倉(cāng)數(shù)據(jù)庫(kù)勺拣,未來(lái)還會(huì)接入更多的國(guó)產(chǎn)數(shù)據(jù)庫(kù)支持奶赠。

源碼地址:https://github.com/2881099/FreeSql

謝謝支持!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末药有,一起剝皮案震驚了整個(gè)濱河市毅戈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌愤惰,老刑警劉巖苇经,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異宦言,居然都是意外死亡扇单,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門奠旺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蜘澜,“玉大人,你說(shuō)我怎么就攤上這事响疚”尚牛” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵忿晕,是天一觀的道長(zhǎng)扮碧。 經(jīng)常有香客問(wèn)我,道長(zhǎng)杏糙,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任蚓土,我火速辦了婚禮宏侍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蜀漆。我一直安慰自己谅河,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布确丢。 她就那樣靜靜地躺著绷耍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鲜侥。 梳的紋絲不亂的頭發(fā)上褂始,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音描函,去河邊找鬼崎苗。 笑死狐粱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胆数。 我是一名探鬼主播肌蜻,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼必尼!你這毒婦竟也來(lái)了蒋搜?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤判莉,失蹤者是張志新(化名)和其女友劉穎豆挽,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體骂租,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祷杈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了渗饮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片但汞。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖互站,靈堂內(nèi)的尸體忽然破棺而出私蕾,到底是詐尸還是另有隱情,我是刑警寧澤胡桃,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布踩叭,位于F島的核電站,受9級(jí)特大地震影響翠胰,放射性物質(zhì)發(fā)生泄漏容贝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一之景、第九天 我趴在偏房一處隱蔽的房頂上張望斤富。 院中可真熱鬧,春花似錦锻狗、人聲如沸满力。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)油额。三九已至,卻和暖如春刻帚,著一層夾襖步出監(jiān)牢的瞬間潦嘶,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工我擂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衬以,地道東北人缓艳。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像看峻,于是被迫代替她去往敵國(guó)和親阶淘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345