因為我的程序使用了OR框架如hibernate之類的東東,所以我們的系統(tǒng)是支持各種關(guān)系型數(shù)據(jù)庫的!很多哥們在介紹自己的產(chǎn)品或是項目時都是這樣說的,真的是這樣嗎?
也許最好你自己嘗試一下不同數(shù)據(jù)庫下的測試才能夸出這樣的海口!
首先,你是否一直通過OR框架而沒有試圖繞開有時顯得不那么可愛的hibernate呢?在你程序中的native sql是不是一直在遵循SQL 99的標(biāo)準?你的主鍵生成方法是使用native方式還是在用自增ID呢?
其次,你能保證你未使用目標(biāo)數(shù)據(jù)庫特有的功能特性嗎?如視圖在mysql 4及之前版本是不被支持的,oracle是不支持超過30個字符的數(shù)據(jù)庫對象名稱的...
再次,那些為了速度或是特定要求情況下而集成進來的組件,它們是不是直接使用了數(shù)據(jù)庫特性?JasperReport?shark?
在經(jīng)歷過幾次數(shù)據(jù)庫切換后,我認識到幻想在第一個發(fā)布版本不經(jīng)任何修改就支持所有數(shù)據(jù)庫是不現(xiàn)實的,也許應(yīng)該列出目標(biāo)環(huán)境下可能會使用到的數(shù)據(jù)庫集合,如:mysql/sqlserver/oracle。列出它們所共有的function,是否支持視圖,是否支持自增字段,數(shù)據(jù)庫對象名稱是否有長度限制?大小寫是否敏感?是否支持存儲過程?...
百練成鋼,一招鮮吃遍天下是不可能的!兄弟,你不這樣認為嗎?
本人原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處!