什么是使代码可重用于db-mysql和db2的最佳方法

时间:2011-12-15 10:06:11

标签: database-design spring-mvc

我们的代码正在使用MySQL DB。

现在我们的要求是将数据库从Mysql迁移到DB2。 并使java代码兼容db2和mysql。

我们正在使用SPring MVC和mybatis,JPA来进行数据库工作。

请建议我提供更好的设计模式。

如何使我的mybatis代码兼容mysql和db2?

感谢,

1 个答案:

答案 0 :(得分:0)

我建议你有一个单独的数据层。

让此数据层声明业务逻辑使用的公共接口和数据类型。

然后,您可以使用工厂模式创建实际的数据层实例,从而创建用于连接MySQL或DB2的具体类。通过这种方式,您可以更改数据库,而无需更改业务代码(因为它都指的是接口类型)。您甚至可以将其设置为在运行时执行此操作,例如基于配置设置。

e.g。

IDataLayer是您的基类,包含获取/设置数据的方法(其中隐藏了细节数据库处理)。

然后有MySQLDataLayer和DB2DataLayer子类。

业务逻辑仅涉及IDataLayer,而不涉及MySQLDataLayer / DB2DataLayer类。