Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带破折号/连字符i的架构名称HyperSQL_Java_Testing_Hsqldb - Fatal编程技术网

Java 带破折号/连字符i的架构名称HyperSQL

Java 带破折号/连字符i的架构名称HyperSQL,java,testing,hsqldb,Java,Testing,Hsqldb,我正在为一个直接使用mysql作为数据存储的遗留应用程序编写单元测试 我们描述的方法是将数据库访问抽象到它自己的层,然后注入依赖项。我们还将使用hsqldb作为内存数据库为该层编写测试(出于速度原因) 当前代码使用的模式名称中有一个破折号,而据我所知,hypersql没有任何方法可以避免这种情况 我是否需要将架构名称注入数据库层,或者是否有某种方式将hsqldb配置为接受破折号?假设您的数据库访问代码使用类似于SELECT*FROM schema name.tablename,或schema-n

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

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

当前代码使用的模式名称中有一个破折号,而据我所知,hypersql没有任何方法可以避免这种情况


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

假设您的数据库访问代码使用类似于
SELECT*FROM schema name.tablename
,或
schema-name.tablename
的字符大小写变体,然后,您应该将其用于HyperSQL:

CREATE SCHEMA "SCHEMA-NAME" AUTHORIZATION DBA

and

SELECT * FROM "SCHEMA-NAME".tablename

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

假设您的数据库访问代码使用类似于
SELECT*FROM schema-NAME.tablename>或
schema-NAME.tablename
的字符大小写变体,然后,您应该将其用于HyperSQL:

CREATE SCHEMA "SCHEMA-NAME" AUTHORIZATION DBA

and

SELECT * FROM "SCHEMA-NAME".tablename

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

谢谢,我们需要进行一些跨模式查询,因此这可能是一个好的解决方案,我将在这里进行一些实验。谢谢,我们需要进行一些跨模式查询,因此这可能是一个好的解决方案,我会在这里做一些实验。