2013-07-14 158 views
-2

我有很多种数据库,有些是oracle,有些是MySQL, 所以当我有关于事务的操作时,我怎么知道应该操作哪个数据库。 有没有办法为他们封装,以确保正确的操作? 我应该怎么做才能将这些事务路由到正确的数据库?你有什么想法?封装oracle和mysql的最佳方式

+0

事务被绑定到连接并且连接被绑定到数据库,我不确定你想要实现什么?我怎么知道哪个数据库应该被操作,你是什么意思? – zerocool

+0

是的,你是对的。但是DB的种类很多(orace,mysql,Sybase等),每个DB都有很多dbs,如果你想操作一些db,你必须写一个连接,这太大了!所以我想知道如何设计这个解决方案?也许我有一个不好的表达! –

回答

1

数据库可移植性是一个伟大的目标,可以完全实现标准的&即使是中等复杂的业务应用程序。

实际上,有两个主要问题:

1)有些数据库(Oracle)的具有非标准DDL,特别是数据类型。这可以通过搜索和替换轻松进行转换。

2)ID /主键生成必须是可移植的;这排除了自动生成列的序列号&。改用分配器表,它可以是完全便携式的,而且性能更高。

使用持久层(如Hibernate)有助于隔离其他一些差异。我已经取得了非常好的成功,甚至可以从主要的迁移和重新设计项目(从Oracle移植到MySQL)中获得主要的复杂应用程序&。