因为我的程序使用了OR框架如hibernate之类的东东,所以我们的系统是支持各种关系型数据库的!很多哥们在介绍自己的产品或是项目时都是这样说的,真的是这样吗?
也许最好你自己尝试一下不同数据库下的测试才能夸出这样的海口!
首先,你是否一直通过OR框架而没有试图绕开有时显得不那么可爱的hibernate呢?在你程序中的native sql是不是一直在遵循SQL 99的标准?你的主键生成方法是使用native方式还是在用自增ID呢?
其次,你能保证你未使用目标数据库特有的功能特性吗?如视图在mysql 4及之前版本是不被支持的,oracle是不支持超过30个字符的数据库对象名称的...
再次,那些为了速度或是特定要求情况下而集成进来的组件,它们是不是直接使用了数据库特性?JasperReport?shark?
在经历过几次数据库切换后,我认识到幻想在第一个发布版本不经任何修改就支持所有数据库是不现实的,也许应该列出目标环境下可能会使用到的数据库集合,如:mysql/sqlserver/oracle。列出它们所共有的function,是否支持视图,是否支持自增字段,数据库对象名称是否有长度限制?大小写是否敏感?是否支持存储过程?...
百练成钢,一招鲜吃遍天下是不可能的!兄弟,你不这样认为吗?
本人原创文章,欢迎转载,转载请注明出处!