Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有很多种db,有的是oracle,有的是mysql,所以当我对事务进行操作时,我怎么知道应该操作哪个db。有没有办法为它们封装以确保正确操作?我应该怎么做才能将这些事务路由到正确的数据库?你有什么想法?
数据库可移植性是一个伟大的目标,对于标准甚至中等复杂的业务应用程序来说是完全可以实现的。
实际上,有两个主要问题:
1)一些数据库(Oracle)有非标准的DDL,尤其是数据类型。这可以通过搜索和替换轻松转换。
2) ID/主键生成必须是可移植的;这排除了序列和自动生成的列。改用分配器表,它可以完全便携并且性能显着提高。
使用持久层(例如 Hibernate)有助于隔离一些其他差异。即使是大型和复杂的应用程序,我也取得了非常好的成功,这些应用程序来自一个重大的迁移和重新设计项目,可以从 Oracle 移植到 MySQL。