`

grails 多数据源相关配置

 
阅读更多

Grails 多数据源相关配置

 

1.Mysql、SQLServer、PG、Oracle 单数据源配置

---

hibernate:

    cache:

        queries: true

        use_second_level_cache: true

        use_query_cache: true

        region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory

    # jdbc:

        # use_get_generated_keys: true

dataSource:

    pooled: true

    jmxExport: true

    driverClassName: com.mysql.jdbc.Driver

    # driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver

    # driverClassName: org.postgresql.Driver

    # driverClassName: oracle.jdbc.OracleDriver

    username: username

    password: password

 

environments:

    development:

        dataSource:

            dbCreate: update

            url: jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false

            # url: jdbc:sqlserver://10.0.8.241:1433;DatabaseName=databaseName

            # url: jdbc:postgresql://127.0.0.1:5432/databaseName

            # url: jdbc:oracle:thin:@10.201.1.41:1521:serverName

    test:

        dataSource:

            dbCreate: create-drop

            url: jdbc:mysql://localhost:3306/loan-160?useUnicode=true&characterEncoding=UTF-8&useSSL=false

    production:

        dataSource:

            dbCreate: update

            # product

            url: jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false

            # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=databaseName

            # url: jdbc:postgresql://127.0.0.1:5432/databaseName

            # url: jdbc:oracle:thin:@127.0.0.1:1521:serverName

            properties:

                jmxEnabled: true

                initialSize: 50

                maxActive: 500

                minIdle: 20

                maxIdle: 300

                maxWait: 120000

                maxAge:  600000

                timeBetweenEvictionRunsMillis: 60000

                minEvictableIdleTimeMillis: 300000

                validationQuery: SELECT 1

                # validationQuery: SELECT 1 from DUAL

                validationQueryTimeout: 60

                validationInterval: 30000

                testOnBorrow: true

                testWhileIdle: true

                testOnReturn: false

                jdbcInterceptors: ConnectionState

                defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED

 

注意:

1.mysql驱动:runtime 'mysql:mysql-connector-java:5.1.41'

2.SQLserver驱动:在libs下添加sqljdbc42.jar

3.Postgres驱动:在libs下添加postgresql-42.1.4.jar

4.Oracle驱动:runtime "com.oracle:ojdbc6:11.2.0.3",另外额外需要配置参数

  (1)jdbc:

                use_get_generated_keys: true

  (2)validationQuery: SELECT 1 from DUAL

 

 

2.多数据源配置

 

---

hibernate:

    cache:

        queries: true

        use_second_level_cache: true

        use_query_cache: true

        region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory

    jdbc:

        use_get_generated_keys: true

dataSources:

    dataSource:

        pooled: true

        jmxExport: true

        driverClassName: oracle.jdbc.OracleDriver

        username: username

        password: password

    extraSource:

        dialect: org.hibernate.dialect.PostgreSQLDialect

        driverClassName: org.postgresql.Driver

        username: username

        password: password

 

environments:

    development:

      dataSources:

        dataSource:

            dbCreate: update

            url: jdbc:oracle:thin:@127.0.0.1:1521:serverName

        extraSource:

            dbCreate: update

            url: jdbc:postgresql://127.0.0.1:5432/databaseName

    test:

        dataSources:

        dataSource:

            dbCreate: update

            url: jdbc:oracle:thin:@127.0.0.1:1521:serverName

    production:

        dataSources:

        extraSource:

            dbCreate: update

            url: jdbc:postgresql://127.0.0.1:5432/databaseName

            properties:

                jmxEnabled: true

                initialSize: 50

                maxActive: 500

                minIdle: 20

                maxIdle: 300

                maxWait: 120000

                maxAge:  600000

                timeBetweenEvictionRunsMillis: 60000

                minEvictableIdleTimeMillis: 300000

                validationQuery: SELECT 1 from dual

                validationQueryTimeout: 60

                validationInterval: 30000

                testOnBorrow: true

                testWhileIdle: true

                testOnReturn: false

                jdbcInterceptors: ConnectionState

                defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED

 

注意:配置两个数据源Oracle和Postgres,默认数据源为:dataSource

 

创建数据库表的时候,如果未指定,会自动创建到默认数据源dataSource中,如果想创建到extraSource指定的数据库中需要在domain的mapping中指定数据源

 

static mapping = {

    datasource 'extraSource'

}

 

static mapping = {

    datasources(['dataSource','extraSource'])

}

 

static mapping = {

  datasource 'ALL'

}

 

还有要注意的地方是:dialect: org.hibernate.dialect.PostgreSQLDialect,一定要声明第二个数据源,各数据库配置可参考官方文档:http://docs.grails.org/latest/guide/conf.html#multipleDatasources

 

在controller和service中获取数据源方式:def dataSource 和 def dataSource_extraSource 

 

配置多数据源时候,必须有一个数据源名字为dataSource,Grails会认为它是默认数据源

 

 

至于在controller和service中对于数据源的操作,请参考:Grails 对于多数据源的增删改查操作

分享到:
评论

相关推荐

    Grails3配置单独的数据库properties.pdf

    首先,我们需要理解Grails中的数据源配置。默认情况下,Grails使用一个名为`dataSource`的主数据源进行连接。然而,为了支持多数据库环境,开发者可以自定义额外的数据源,并在应用程序中按需使用。这在处理分布式...

    grails快速开发web

    - **数据源配置**:位于 `grails-app/conf/DataSource.groovy` 文件中。 - **日志配置**:位于 `grails-app/conf/Config.groovy` 文件中。 - **Spring 配置**:位于 `grails-app/conf/spring/resources.xml` 文件中...

    ds_test.rar_ds test_grails_oracle

    在Grails中,通过灵活的数据源配置,开发者可以轻松地管理多个数据库连接。这意味着该压缩包可能包含了一个Grails应用,该应用展示了如何配置和使用两个不同的数据源:一个用于MySQL,另一个用于Oracle。 Grails的...

    grails中文入门简介

    例如,数据源的配置既可以在环境配置中直接设置,也可以通过JNDI数据源来管理。此外,还可以配置自动数据库移植功能,它会在应用启动时根据域类(domain class)结构自动创建数据库表。 Grails的命令行工具非常强大...

    The definitive guide to grails_2 源代码

    6. **构建与部署**:Grails采用Gradle作为构建工具,源代码会展示配置文件和部署流程,有助于理解如何打包应用、配置环境变量以及进行自动化部署。 7. **单元测试与集成测试**:源码中通常包含测试代码,这能帮助...

    grails 中文第二版

    - 支持多数据源配置,适用于复杂的应用场景。 **外部配置** - 支持从外部文件读取配置信息,增强灵活性。 **版本** - Grails版本信息可以在项目的`BuildConfig.groovy`文件中找到。 **文档引擎** - 提供了文档...

    Grails基础教程.pdf

    - **数据源**:介绍如何配置数据源,包括设置不同的环境(如开发、测试和生产环境)的数据源参数。 - **JNDI数据源**:如果应用程序运行在容器环境中,可以通过JNDI配置数据源。 - **自动数据库移植**:Grails支持...

    grails app

    Grails应用的配置主要在`grails-app/conf`目录下,包括`Config.groovy`、`DataSource.groovy`等,这些文件定义了应用的环境变量、数据源等信息。 8. **服务(Services)** 服务层是业务逻辑的实现,它是可测试的...

    grails-5.1.2.zip

    在5.1.2版本中,GORM可能已经进行了优化,提供了更好的性能和新的查询API,支持多数据源,以及事务管理和缓存功能。 4. **GRAILS CLI (Command Line Interface)**: Grails 提供了一个强大的命令行接口,用于项目...

    第一个grails程序

    5. **grails-app/services**:服务层文件夹,存放业务逻辑代码,可被多个控制器复用。 6. **grails-app/views**:视图文件夹,包含GSP(Groovy Server Pages)文件,用于呈现HTML输出。 7. **grails-app/conf**:...

    grails-core源码

    6. **Views**:视图层负责渲染数据,通常使用GSP(Grails Server Pages)来生成HTML。 三、插件系统 Grails的插件机制是其灵活性的重要体现。`PluginManager`负责管理插件,通过`PluginMetaClass`动态扩展Grails...

    grails学习笔记

    例如,你可以调用Web服务,向中央服务器发送应用实例正在运行的通知,或者在启动时同步公共数据源的数据。这种灵活性极大地扩展了Grails应用的启动和关闭行为。 总结 理解并善用Grails的监听器和环境配置是提高...

    Grails基础教程

    - **数据源**:数据源是Grails应用与数据库交互的基础,支持多种类型的数据库连接配置。 - **数据源和环境**:可以根据不同环境配置不同的数据源。 - **JNDI数据源**:对于部署在支持JNDI的应用服务器上的应用,...

    Grails plugin: Calendar

    日历插件通常用于展示时间相关的数据,如事件、任务或预约等。它可能包括多种视图,如月视图、周视图、日视图,甚至可能有自定义视图供用户选择。这些视图可以帮助用户更好地管理和组织他们的时间。 在Grails插件的...

    grails-1.3.7

    Grails 的核心理念是“代码少、功能多”,它通过元编程和约定优于配置(Conventions over Configuration)的理念,降低了开发复杂度,提高了开发效率。 标题 "grails-1.3.7" 指的是 Grails 框架的 1.3.7 版本。这个...

    grails 1.0 英文操作手册

    **数据源配置**:详细介绍了如何配置数据源,包括JNDI数据源和自动数据库迁移策略,确保应用的数据访问层稳定可靠。 **外部化配置**:允许将部分配置信息存储在外部文件中,便于维护和更新。 **版本控制**:强调了...

    Grails学习记录

    这个项目可能包含了Grails的源代码、配置文件、资源文件等,通过分析这个项目的结构和代码,我们可以更深入地理解Grails的实际应用。 详细知识点: 1. **Groovy语言基础**:Grails是基于Groovy语言的,因此了解...

Global site tag (gtag.js) - Google Analytics