1. 程式人生 > >grails3.0.9 連線多個數據庫

grails3.0.9 連線多個數據庫


grails 連結多個數據庫的時候:

注意的地方:  1、格式要對齊  2、dialect必須寫正確  3、採用多個數據源,可以在最頂層寫,寫可以寫在environments裡,同時也可以在兩個層面上都定義  4、注意連線資料庫的url必須寫正確(否則會報空指標異常) 

在application.yml檔案中  
dataSources:
    dataSource:
        pooled: true
        jmxExport: true
        driverClassName: org.postgresql.Driver
        username: sa
        password: 123456
    lookup:
        dialect: org.hibernate.dialect.PostgreSQLDialect(可以不寫)
        pooled: true
        jmxExport: true
        driverClassName: org.postgresql.Driver
        username: root
        password: 123456

environments:
    development:
        dataSources:
            dataSource:
                dbCreate: create-drop
                url: jdbc:postgresql://127.0.0.1:5432/test

            lookup:
                dbCreate: create-drop
                url: jdbc:postgresql://127.0.0.1:5432/lookup
    test:
        dataSources:
            dataSource:
                dbCreate: update
                url: jdbc:postgresql://127.0.0.1:5432/test
    production:
         dataSources:
            dataSource:
                dbCreate: update
                url: jdbc:postgresql://127.0.0.1:5432/test
                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


對於domain類裡具體使用哪個資料庫,可以通過使用 static mapping 來指定   
static mapping = {          //如果不指定,則預設為DEFAULT

           datasource 'lookup'    //使用lookup資料來源

//         datasources (['lookup', 'DEFAULT'])        //使用兩個資料來源

//         datasource 'ALL'       //使用所有的資料來源

   }