grails中如何配置多数据源并使用

1.打开grails-app -->conf -->application.yml

dataSources:
dataSource:
pooled: true
jmxExport: true
driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: '002'
password: '200'
XXXX :
pooled: true
driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: '002'
password: '200'
environments :
development :
dataSources:
dataSource:
dbCreate: update
url: jdbc:sqlserver://XXX.XXX.XX.XX:1433;DatabaseName=EQMS01
XXXX :
dbCreate: update
url: jdbc:sqlserver://XXX.XXX.XX.XX:1433;DatabaseName=EQMS01
test :
dataSource :
dbCreate : update
url : jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
production :
dataSource :
dbCreate : none
url : jdbc:h2:./prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
properties :
jmxEnabled : true
initialSize : 5
maxActive : 50
minIdle : 5
maxIdle : 25
maxWait : 10000
maxAge : 600000
timeBetweenEvictionRunsMillis : 5000
minEvictableIdleTimeMillis : 60000
validationQuery : SELECT 1
validationQueryTimeout : 3
validationInterval : 15000
testOnBorrow : true
testWhileIdle : true
testOnReturn : false
jdbcInterceptors : ConnectionState
defaultTransactionIsolation : 2 # TRANSACTION_READ_COMMITTED
2.production 中与development一样配置

3.在controller中的使用
 3.1Grails artefact中注入数据源
 
DataSource dataSource_lookup
例如:
def dataSource(默认)
def dataSource_ XXXX (XXXX与配置文件中一一对应)
Sql sql = new Sql(dataSource);
Sql sql = new Sql(dataSource_XXXX);

4.domain Classes中配置不同的数据源
指定数据源
static mapping = {
      datasource 'lookup'
   }

使用datasources具有名称列表属性来配置多个属性
static mapping = {
      datasources(['lookup', 'auditing'])
   }
使用特殊名称'DEFAULT'来表示默认值DataSource
static mapping = {
   
   
datasources([ 'lookup' , 'DEFAULT' ])
   
   
}
如果域类使用所有配置的数据源,请使用特殊值'ALL'
static mapping = {
   
   
datasource 'ALL'
}
5.调用GORM方法
例如
def zipCode = ZipCode.auditing.get(42)
 zipCode.auditing.save()
备注:目前只能在对应domain controller中使用 ZipCode.auditing.get( 42 )方法,还需要继续研究


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的码码码码N

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值