使用Squirrel连接到Derby Embedded DB

时间:2017-09-20 16:05:36

标签: java spring derby

我正在开发一个Java + Spring项目,该项目使用Derby Embedded DB来运行一套Junits。我希望能够使用Squirrel SQL客户端查询嵌入式数据库,而不是直接通过我的junit测试来访问它。这样做的原因是我正在处理一些非常复杂的数据结构,使用编辑器查询将对构建我的测试用例非常有帮助。当我在调试中运行我的JUnits时,我在数据库初始化之后放置一个断点并将其保留在那里,这意味着此时创建了嵌入式数据库。下面显示了连接DB的弹簧配置。

<bean id="targetDataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.apache.derby.jdbc.EmbeddedDriver" />
    <property name="url" value="jdbc:derby:memory:unitTestDB;create=true" />
    <property name="username" value="sa" />
    <property name="password" value="" />
</bean>

下面显示了控制台输出,此时DB已完全加载...

Executing SQL script from class path resource [mydb/create-schema.sql]
Done executing SQL script from class path resource [mydb/create-schema.sql] in 107 ms.
Executing SQL script from class path resource [mydb/create-sequences.sql]
Done executing SQL script from class path resource [mydb/create-sequences.sql] in 403 ms.
Executing SQL script from class path resource [mydb/create-tables.sql]
Done executing SQL script from class path resource [mydb/create-tables.sql] in 3844 ms.
Executing SQL script from class path resource [mydb/create-views.sql]
Done executing SQL script from class path resource [mydb/create-views.sql] in 2118 ms.
Executing SQL script from class path resource [mydb/MY_TABLE.sql]
Done executing SQL script from class path resource [mydb/MY_TABLE.sql] in 1380 ms.

我正在使用我的junit套件使用的相同驱动程序,并在Squirrel中创建了一个如下所示的别名......

enter image description here

我可以创建连接,但似乎Squirrel无法加载模式+表。

enter image description here

我可能在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为您不能通过多个JVM进程访问嵌入式实例。由于您在URL中有create = true,因此它为您的Squirrel客户端创建了另一个嵌入式数据库。

有关详细信息,请参阅this answer