模拟数据库驱动程序
是否存在某种简单地忽略数据库调用的 JDBC 驱动程序?
对于开发,我将应用程序迁移到虚拟机。在这里,我只想处理GUI部分。但是应用程序向数据库发出多个请求,而该数据库甚至不允许应用程序启动。我现在不想更改应用程序代码,因为数据库几乎是耦合的。
所以我想可能有一个JDBC驱动程序,它只返回查询的空结果。
是否存在某种简单地忽略数据库调用的 JDBC 驱动程序?
对于开发,我将应用程序迁移到虚拟机。在这里,我只想处理GUI部分。但是应用程序向数据库发出多个请求,而该数据库甚至不允许应用程序启动。我现在不想更改应用程序代码,因为数据库几乎是耦合的。
所以我想可能有一个JDBC驱动程序,它只返回查询的空结果。
我决定编写一个自己的简单模拟驱动程序。这几乎是直截了当的,做了我想要的。我可以通过配置文件切换应用程序的数据库驱动程序,以便让应用程序以简单的方式使用我的驱动程序。
然后,我扩展了驱动程序以返回从CSV文件解析的数据。我在谷歌代码上发布了代码,也许其他人可以使用它:dummyjdbc
有一些“空洞”的JDBC驱动程序作为Mocking framewroks的一部分,例如Mockrunner的MockDriver。
但是使用它需要一些编码。
这是因为当Java应用程序连接到数据库时,它会以形式提供JDBC URL。系统正在搜索在其中注册的驱动程序以处理此类URL并选择正确的驱动程序。有关驱动程序支持的 URL 类型的信息包含在驱动程序本身中,模拟驱动程序不可能在其中保存所有已知的 URL 类型 - 那里没有通配符之类的东西,任何列表都不会是完整的。jdbc:mysql://localhost
因此,如果您能够在应用程序连接到数据库之前在应用程序中调用JDBCMockObjectFactory.registerMockDriver(),它将完成这项工作。如果不是 - 我认为这是不可能的。但是,对驱动程序代码进行轻微修改就可以了...但同样 - 编码是必需的。