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