XCode是一個輕量級的ORM組件(對象與關系數(shù)據(jù)庫映射),提供以面向對象的方式操作數(shù)據(jù)庫的功能,能夠解決90%以上的數(shù)據(jù)庫操作場景。
做為X系列組件最重要的一員,XCode秉承了簡單實用的特點,力求以最簡單的做法,解決最普遍的問題。
XCode最大的“缺點”就是“不支持”多表查詢!為何不支持要加雙引號?那是因為XCode實際上支持多表查詢,只是用起來非常復雜,也不容易講清楚,會嚴重影響基本功能的學習理解,所以逢人問到,我都回答不支持!至于缺點二字加雙引號,是因為XCode有一整套替代方案,在絕大多數(shù)情況上,更優(yōu)于多表查詢。
說XCode,就不得不提開發(fā)模式。每一個ORM組件,都是在某一種開發(fā)模式下,才能表現(xiàn)得最出色,XCode也不例外,我們稱之為XCode開發(fā)模式。當然,每個人有自己的想法,有自己的開發(fā)習慣,可以嘗試根據(jù)自己的習慣去使用XCode,或者稍微修改自己的習慣,也許能有更精彩的用法。
1,新版本XCode內置Oracle客戶端運行時的環(huán)境檢測,自動在這些目錄查找OCI:當前目錄、上一級的OracleClient目錄、各個盤下的OracleClient目錄
2,XCode支持在連接字符串里面通過DllPath=X:\OracleClient來指定OCI目錄
3,如果XCode檢測不到任何Oracle客戶端運行時,會自動到服務器下載一份,并部署到C:\OracleClient?梢宰约嚎截惖絼e的盤去
4,所以,XCode用戶可以用MSSQL或SQLite等數(shù)據(jù)庫開發(fā)好應用程序,然后部署的時候修改連接字符串為Oracle的連接字符串即可,XCode會為你準備好環(huán)境。
5,XCode所支持的各大數(shù)據(jù)庫,只要有連接字符串,就可以工作!
6,除MSSQL外,使用其它數(shù)據(jù)庫全部會自動下載相應的驅動(分x86和x64):Access、SqlCe、SQLite、Oracle、MySql、Firebird、PostgreSQL
7,如果生產(chǎn)環(huán)境機器不能上網(wǎng),可以自己把驅動等相關文件拷貝帶走。只有用Oracle時會有一個目錄放在C:\OracleClient,其它數(shù)據(jù)庫下載的驅動文件全部放在當前目錄。(主要是因為OCI那個目錄太大)
8,XCode只做下載驅動來使用,不修改系統(tǒng)環(huán)境變量和注冊表等任何東西,絕對綠色。
9,如果你只想要一個Oracle客戶端運行時,可以用我們代碼生成器XCoder上新增的一個功能(“Oracle客戶端運行時檢查”),它會給你準備好一個可用環(huán)境
非XCode用戶請看:
1,只要有OCI,可以不用安裝Oracle的任何東西,就可以連上數(shù)據(jù)庫,可能需要配置一下環(huán)境變量和注冊表
2,該方法無視任何編程語言,非.Net的也可以。比如那個PL Dev,只需要拷貝OCI,然后選項里面指定oci目錄即可
3,如果你懷疑上述兩點,你可以不用看本文了
4,OCI.dll的版本和Oracle.DataAccess.dll要求的版本必須一致,不一致就自己湊,找到一致的
5,.Net程序調用Oracle.DataAccess.dll,而Oracle.DataAccess.dll會找OCI.dll,順序是:當前目錄、配置文件指定目錄、環(huán)境變量Path、系統(tǒng)目錄
6,如果上面一點沒看懂,只怪你Windows沒學好。目錄搜索邏輯是Windows開發(fā)的基本功。
7,再次重申,所做的一次,配置環(huán)境變量也好,配置注冊表也好,只是為了找到OCI.dll!!
8,哦,忘了一點,注意OCI所在目錄的權限,也許應用程序沒有權限執(zhí)行OCI.dll。另外注意各個目錄配置可能導致的DLL版本沖突。
100,據(jù)Oracle官方論壇說,官方即將推出純托管的驅動,到時候只要一個dll就行,再也沒有這么多煩人的事情。如果上面這么多辦法都不行,就等等吧。
10000,如果還不行,那就用XCode算了!