千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當前位置:首頁  >  技術(shù)干貨  > 為什么用C/C++連接Oracle數(shù)據(jù)庫的復(fù)雜程度比用Java/C#連接要高許多倍?

為什么用C/C++連接Oracle數(shù)據(jù)庫的復(fù)雜程度比用Java/C#連接要高許多倍?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 08:34:41 1697157281

一、用C/C++連接Oracle數(shù)據(jù)庫的復(fù)雜程度比用Java/C#連接要高許多倍的原因

1、Oracle官方庫支持不足

Oracle 數(shù)據(jù)庫沒有提供官方的C/C++驅(qū)動程序,開發(fā)者需要使用第三方庫比如occi、ODBC 或者JDBC,這些工具具有更多的功能但可能也會增加復(fù)雜度。

2、數(shù)據(jù)類型映射

Oracle 數(shù)據(jù)庫支持的數(shù)據(jù)類型相對較多,這些數(shù)據(jù)類型映射到 C/C++ 數(shù)據(jù)類型需要開發(fā)者花費較多時間。

3、內(nèi)存管理

C/C++沒有像 Java/C# 有垃圾回收機制可以自動管理內(nèi)存,因此需要編寫代碼來手動進行內(nèi)存管理,這會使程序更加復(fù)雜。

4、異常處理

C/C++中異常處理機制非常基礎(chǔ),相較于 Java/C# 更為復(fù)雜,需要手動編寫代碼來處理異常情況。

5、線程管理

C/C++中需要用到線程來保證應(yīng)用程序的可用性,而線程同步和鎖機制也會在也會增加復(fù)雜度。

二、C語言介紹

1、簡介

C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向?qū)ο缶幊陶Z言有所不同。C語言的設(shè)計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。C語言描述問題比匯編語言迅速、工作量小、可讀性好、易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%-20%。因此,C語言可以編寫系統(tǒng)軟件。

當前階段,在編程領(lǐng)域中,C語言的運用非常之多,它兼顧了高級語言和匯編語言的優(yōu)點,相較于其它編程語言具有較大優(yōu)勢。計算機系統(tǒng)設(shè)計以及應(yīng)用程序編寫是C語言應(yīng)用的兩大領(lǐng)域。同時,C語言的普適較強,在許多計算機操作系統(tǒng)中都能夠得到適用,且效率顯著。C語言擁有經(jīng)過了漫長發(fā)展歷史的完整的理論體系,在編程語言中具有舉足輕重的地位。

2、語言特點

C語言是一種結(jié)構(gòu)化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利于程序的調(diào)試,且c語言的處理和表現(xiàn)能力都非常的強大,依靠非常全面的運算符和多樣的數(shù)據(jù)類型,可以輕易完成各種數(shù)據(jù)結(jié)構(gòu)的構(gòu)建,通過指針類型更可對內(nèi)存直接尋址以及對硬件進行直接操作,因此既能夠用于開發(fā)系統(tǒng)程序,也可用于開發(fā)應(yīng)用軟件。通過對C語言進行研究分析,總結(jié)出其主要特點如下:

簡潔的語言:C語言包含的各種控制語句僅有9種,關(guān)鍵字也只有32個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構(gòu)成與硬件有關(guān)聯(lián)的較少,且C語言本身不提供與硬件相關(guān)的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統(tǒng)所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統(tǒng)。具有結(jié)構(gòu)化的控制語句:C語言是一種結(jié)構(gòu)化的語言,提供的控制語句具有結(jié)構(gòu)化特征,如for語句、if…else語句和switch語句等。可以用于實現(xiàn)函數(shù)的邏輯控制,方便面向過程的程序設(shè)計。豐富的數(shù)據(jù)類型:C語言包含的數(shù)據(jù)類型廣泛,不僅包含有傳統(tǒng)的字符型、整型、浮點型、數(shù)組類型等數(shù)據(jù)類型,還具有其他編程語言所不具備的數(shù)據(jù)類型,其中以指針類型數(shù)據(jù)使用最為靈活,可以通過編程對各種數(shù)據(jù)結(jié)構(gòu)進行計算。豐富的運算符:C語言包含34個運算符,它將賦值、括號等均視作運算符來操作,使C程序的表達式類型和運算符類型均非常豐富。可對物理地址進行直接操作:C語言允許對硬件內(nèi)存地址進行直接讀寫,以此可以實現(xiàn)匯編語言的主要功能,并可直接操作硬件。C語言不但具備高級語言所具有的良好特性,又包含了許多低級語言的優(yōu)勢,故在系統(tǒng)軟件編程領(lǐng)域有著廣泛的應(yīng)用。代碼具有較好的可移植性:C語言是面向過程的編程語言,用戶只需要關(guān)注所被解決問題的本身,而不需要花費過多的精力去了解相關(guān)硬件,且針對不同的硬件環(huán)境,在用C語言實現(xiàn)相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味著,對于一臺計算機編寫的C程序可以在另一臺計算機上輕松地運行,從而極大的減少了程序移植的工作強度。可生成高質(zhì)量、目標代碼執(zhí)行效率高的程序:與其他高級語言相比,C語言可以生成高質(zhì)量和高效率的目標代碼,故通常應(yīng)用于對代碼質(zhì)量和執(zhí)行效率要求較高的嵌入式系統(tǒng)程序的編寫。

3、特有特點

C語言是普適性較早的一種計算機程序編輯語言,它不僅可以發(fā)揮出高級編程語言的功用,還具有匯編語言的優(yōu)點,因此相對于其它編程語言,它具有自己獨特的特點。具體體現(xiàn)為以下三個方面:

廣泛性:C語言的運算范圍的大小直接決定了其優(yōu)劣性。C語言中包含了34種運算符,因此運算范圍要超出許多其它語言,此外其運算結(jié)果的表達形式也十分豐富。此外,C語言包含了字符型、指針型等多種數(shù)據(jù)結(jié)構(gòu)形式,因此,更為龐大的數(shù)據(jù)結(jié)構(gòu)運算它也可以應(yīng)付。簡潔性:9類控制語句和32個關(guān)鍵字是C語言所具有的基礎(chǔ)特性,使得其在計算機應(yīng)用程序編寫中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同時還能夠支持高級編程,避免了語言切換的繁瑣。結(jié)構(gòu)完善:C語言是一種結(jié)構(gòu)化語言,它可以通過組建模塊單位的形式實現(xiàn)模塊化的應(yīng)用程序,在系統(tǒng)描述方面具有顯著優(yōu)勢,同時這一特性也使得它能夠適應(yīng)多種不同的編程要求,且執(zhí)行效率高。

4、缺點

C語言的數(shù)據(jù)的封裝性弱:這一點使得C在數(shù)據(jù)的安全性上有很大缺陷,這也是C和C++的一大區(qū)別。C語言的語法限制不太嚴格:對變量的類型約束不嚴格,影響程序的安全性,對數(shù)組下標越界不作檢查等。從應(yīng)用的角度,C語言比其他高級語言較難掌握。也就是說,對用C語言的人,要求對程序設(shè)計更熟練一些。

延伸閱讀1:C++簡介

C++(c plus plus)是一種計算機高級程序設(shè)計語言,由C語言擴展升級而產(chǎn)生,較早于1979年由本賈尼·斯特勞斯特盧普在AT&T貝爾工作室研發(fā)。C++既可以進行C語言的過程化程序設(shè)計,又可以進行以抽象數(shù)據(jù)類型為特點的基于對象的程序設(shè)計,還可以進行以繼承和多態(tài)為特點的面向?qū)ο蟮某绦蛟O(shè)計。C++擅長面向?qū)ο蟪绦蛟O(shè)計的同時,還可以進行基于過程的程序設(shè)計。 C++幾乎可以創(chuàng)建任何類型的程序:游戲、設(shè)備驅(qū)動程序、HPC、云、桌面、嵌入式和移動應(yīng)用等。 甚至用于其他編程語言的庫和編譯器也使用C++編寫。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
在 iPad 上運行 Windows 是什么體驗?

一、在 iPad 上運行 Windows 是什么體驗?zāi)壳笆忻嫔嫌幸恍┠軌蛟?iPad 上運行 Windows 的應(yīng)用程序,例如 Parallels Access、Splash較好、VMware ...詳情>>

2023-10-13 10:18:47
app的啟動流程都包括哪些步驟?

一、app的啟動流程包括的步驟1、創(chuàng)建進程App發(fā)起進程:當從桌面啟動應(yīng)用,則發(fā)起進程便是Launcher所在進程;當從某App內(nèi)啟動遠程進程,則發(fā)送進...詳情>>

2023-10-13 10:03:27
怎么理解Mongodb是介于關(guān)系型和非關(guān)系型的數(shù)據(jù)庫?

一、怎么理解Mongodb是介于關(guān)系型和非關(guān)系型的數(shù)據(jù)庫MongoDB被稱為介于關(guān)系型數(shù)據(jù)庫(RDBMS)和非關(guān)系型數(shù)據(jù)庫(NoSQL)之間,這是因為它在以下...詳情>>

2023-10-13 09:55:50
DBeaver怎么保持數(shù)據(jù)庫連接?

一、DBeaver保持數(shù)據(jù)庫連接的方法1、連接到數(shù)據(jù)庫打開DBeaver并選擇連接到您的目標數(shù)據(jù)庫。選擇適當?shù)臄?shù)據(jù)庫類型,輸入必要的連接信息,如主機...詳情>>

2023-10-13 09:05:04
Kettle連接MySQL為什么會報錯?

一、Kettle連接MySQL會報錯的原因1、驅(qū)動程序缺失Kettle需要使用MySQL的JDBC驅(qū)動程序來連接MySQL數(shù)據(jù)庫。如果沒有正確配置或提供JDBC驅(qū)動程序,...詳情>>

2023-10-13 08:53:41
快速通道
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲综合狠狠丁香五月 | 日本精品一区二区视频 | 色妞亚洲欧美精品在线 | 亚洲一区激情国产日韩 | 日本三级网站网址 | 亚洲日韩欧美一区二区三区 |