关于软件系统适应多数据库的问题?

请教大家,在利用hibernate等orm工具处理数据时,如何适应不同的数据库。
比如:oracle,sqlserver和mysql,比如他们的主键生成机制,字段类型等等方面的不同,该如何满足。
想到的一种方式这样做:
针对不同数据库分别生成一套PO,系统中根据数据库类型再选择调用。这样感觉有点麻烦,能否用一套PO,差异比如主键的生成等放到一个通用类中操作,这样的话,在hibernate或者ejb这样的框架如何做呢?
望大家献计献策,多谢!

Hibernate/EJB甚至JDBC都是用来屏蔽不同数据库,使得我们得程序不依赖某个具体数据库,也就是适应多个数据库。

主键生成机制当然使用自己的程序(见JiveJdon3)或Hibernate等,不要使用具体数据库的。

使用JNDI,采取面向对象方式使用Hibernate等等见:
http://www.jdon.com/article/31684.html