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 )方法,还需要继续研究


猜你喜欢

转载自blog.csdn.net/zyh20090823/article/details/79162948