简介

当我开始撰写《高性能Java持久化》一书时,我决定在我的当前机器上安装四个数据库系统

  • Oracle XE

  • SQL Server Express Edition

  • PostgreSQL

  • MySQL

这四个关系型数据库是我们论坛、StackOverflow以及大多数JIRA问题中最常提到的。然而,这四个排名靠前的数据库是不够的,因为不时地,我们需要集成来自其他数据库系统(如Informix或DB2)的Pull Requests。

由于在单台机器上安装大量数据库并不实用,我们可以做得更好。许多数据库提供商已经为他们自己的产品生成了Docker镜像,这篇文章将向您展示我们如何轻松地启动一个Informix数据库。

在Docker上运行Informix

IBM为Informix Innovator-CDB2 Express-C都提供了Docker镜像。

正如在Docker Hub上解释的那样,您必须使用以下命令启动容器

docker run -it --name iif_innovator_c --privileged -p 9088:9088 -p 27017:27017 -p 27018:27018 -p 27883:27883 -e LICENSE=accept ibmcom/informix-innovator-c:latest

要运行Informix Docker容器,您必须执行以下命令

docker start iif_innovator_c

启动Docker容器后,我们可以向其附加一个新的shell

docker exec -it iif_innovator_c bash

我们有一个databases.gradle配置文件,其中包含我们用于测试的所有数据库的连接属性,对于Informix,我们有以下条目

informix : [
    'db.dialect' : 'org.hibernate.dialect.InformixDialect',
    'jdbc.driver': 'com.informix.jdbc.IfxDriver',
    'jdbc.user'  : 'informix',
    'jdbc.pass'  : 'in4mix',
    'jdbc.url'   : 'jdbc:informix-sqli://192.168.99.100:9088/sysuser:INFORMIXSERVER=dev;user=informix;password=in4mix'
]

有了这个配置,我只需要设置当前的hibernate.properties配置文件以使用Informix

gradle clean testClasses -Pdb=informix

现在我可以直接从我的IDE运行任何Informix集成测试。

完成测试后,我使用以下命令停止Docker容器

docker stop iif_innovator_c

就这么简单!


返回顶部