1

我正在为直接使用 mysql 作为数据存储的遗留应用程序编写单元测试。

我们决定的方法是将数据库访问抽象到它自己的层,然后依赖注入。我们还将使用 hsqldb 作为内存数据库(出于速度原因)为该层编写测试。

当前代码使用名称中带有破折号的模式,据我所知,hypersql 没有任何方法可以逃避它?

我是否需要将模式名称注入数据库层,或者是否有某种方法可以配置 hsqldb 以接受破折号?

4

1 回答 1

1

假设您的数据库访问代码正在使用类似的东西SELECT * FROM schema-name.tablename,或者SCHEMA-NAME.tablename任何字符大小写变体,那么您应该将它与 HyperSQL 一起使用:

CREATE SCHEMA "SCHEMA-NAME" AUTHORIZATION DBA

and

SELECT * FROM "SCHEMA-NAME".tablename

如果您的所有数据都在同一个模式中,那么您只需将此模式设置为默认模式,并避免在 SQL 查询中使用“SCHEMA-NAME”。

于 2012-04-16T10:56:07.747 回答