支持 SQL Server 的 Java 内存数据库

标签 java sql-server maven integration-testing in-memory-database

<分区>

哪些可用的内存数据库对 SQL Server 特定功能的支持最好?

我一直在尝试使用 H2,但遇到了一些问题,例如转义列名:在我们所有的 sql 查询中,我们使用(非标准)[FIELDNAME] 而不是“FIELDNAME”。 H2 显然不支持这一点。可能还会使用其他非标准功能,所以我想知道是否有人知道以与 SQL Server 兼容为目标的特定数据库。

为了说明这一点,我在运行测试之前使用 maven 和 maven-sql-plugin 创建数据库。

我一直在看

  • H2
  • 高级数据库
  • Derby

但无法确定哪个对 SQL Server 的支持最好,或者是否还有其他值得关注。

最佳答案

我实际上发现 H2 有不同的兼容模式,可以在连接字符串中设置。例如:

jdbc:h2:~/test;MODE=MSSQLServer

这似乎解决了我转义列名的具体问题。

为了将来引用,可以查看 documentation on compatibility modes查看哪些数据库支持哪些功能。

但是支持某些 SQL Server 函数,例如 SYSDATETIME()。

关于支持 SQL Server 的 Java 内存数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33166491/

相关文章:

java - 错误 : ConfigurationException- Factory 'javax.faces.context.ExceptionHandlerFactory' was not configured properly

java - 在带有 Java 的 Selenium 中使用 @Factory 注释后无法运行测试

java - 如何在 JTable Cell 中显示多行

java - Between 中的可变参数列表作为具有不同数据类型的参数

java - 忽略手机静音模式

sql-server - 如何进行 `group by` 部分匹配

sql-server - SQL 2005 CSV 导入引号用内部引号和逗号分隔

SQL查询获取最新价格

java - 如何设置log4j?

java - 如何在maven多模块项目中构建依赖模块