我有 2 个项目 A 和 B
他们有一个名为“TABLE”的域类
A 将在“TABLE”中插入信息,B 必须选择它
我在第一个项目的 DataSource.groovy
中有这个配置:
enviroments{
development{
dataSource {
url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
}
}
}
它在内存和端口 8110 中运行,我如何从其他应用程序访问该数据库?就像是
url="jdbc:h2:tcp://localhost:8110/mem:devDb" //?
最佳答案
只要应用程序的两个实例都可以访问数据库,应用程序运行的端口和位置就无关紧要。
根据您提供的少量信息,我假设您想要设置多个数据源。你可以去docs有关更多详细信息,但这里有一个预告片:
在 DataSource.groovy 中:
environments {
development {
dataSource {
// Connection parameters for the application specific dataSource
}
dataSource_common {
// Connection parameters for the common dataSource
}
}
// Copy and paste for other environments
}
在您的域类中:
class Table {
// Domain Class properties
static mapping = {
datasource 'common'
}
}
对于这两个应用程序,使 Table 类相同。当应用程序 A 保存 Table 的实例时,它将可用于两个应用程序。然后应用程序 B 可以从表中读取。
请注意:
让两个应用程序使用相同的数据源通常是不好的做法。上述说明解释了如何允许多个应用程序访问单个数据源,但不鼓励您这样做。
与其拥有一个公共(public)数据源,不如让应用程序 A 通过 RESTful 接口(interface)向对象 B 公开 Table 域类。这将减轻由 Hibernate 操作相同结构和数据集的两个实例引起的潜在冲突。
您可以在 docs 中找到有关 Grails RESTful 资源公开的更多详细信息。 .
关于grails - 如何将 2 个不同的项目连接到同一个开发环境数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22697478/