我有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" //?
答案 0 :(得分:1)
只要应用程序的两个实例都可以访问数据库,运行应用程序的端口和位置就无关紧要了。
根据您提供的一小部分信息,我假设您想要的是设置多个数据源。您可以转到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可以从表中读取。
提醒:
让两个应用程序使用相同的数据源通常是不好的做法。上述说明解释了如何允许多个应用程序访问单个数据源,但不鼓励您这样做。
您应该让应用程序A通过RESTful接口向对象B公开Table域类,而不是拥有一个公共数据源。这将减轻由两个Hibernate实例操作相同结构和数据集引起的潜在冲突。
您可以在docs中找到有关Grails RESTful资源曝光的其他详细信息。
答案 1 :(得分:0)
我找到了方法:
我必须在Conf->spring->resources.groovy
中创建一个TCP连接,这里是链接:
http://rudovsky.blogspot.com/2012/09/parametrize-grails-h2-server.html