Grails3.*版本的连接数据库配置

Grails3版本较1、2版本还是有不少改进之处。数据库配置上,老版本是在conf/DataSource.groovy下进行配置,而到了3版本,在conf下已经找不到DataSource.groovy了。本文以连接mysql数据库为例(其他数据库配置方式类似),没有具体配置如下:

1、打开conf/application.yml文件,找到environments,它的下面有developmenttestproduction分别对应着三个环境的数据库连接配置。这三个属性下都有一个名为dataSource的属性配置,这也就是连接数据库的配置项,可以在这下面配置数据库url、driverClassName、username、password、连接数目等各项配置,如:

environments:
    development:
        dataSource:
            dbCreate: create-drop
            driverClassName: com.mysql.jdbc.Driver
            username: root
            password: 123
            url: jdbc:mysql://172.192.15.66:3030/mysql
    test:
        dataSource:
            dbCreate: update
            driverClassName: com.mysql.jdbc.Driver
            username: root
            password: 123
            url: jdbc:mysql://172.192.15.66:3030/test
    production:
        dataSource:
            dbCreate: update
            driverClassName: com.mysql.jdbc.Driver
            username: production
            password: password
            url: jdbc:mysql://172.192.66.66:3030/production
            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

其中:

a、dbCreate:是指启动加载数据库连接时对数据库的操作。

 

create-drop 启动时重新建表,停止时,drop所创建的表
create 启动时重新建表
update 启动时更新当前的表结构,相当于alter table
validate 检查当前的表结构是否跟Domain类匹配,不会对数据库做任何修改
none 不对数据库做操作

b、url:指明连接数据库方式(jdbc)、数据库类型(mysql)、数据库IP、端口号、database

2、对于三个环境下的相同配置项,可以抽取出来,配置在和environments同级下的名为dataSource的配置中,加载时会先加载公共部分的dataSource配置,在加载具体各个环境的dataSource。如:假设我的三个环境连接的数据库都是同一个mysql,所以用户名和密码也是相同的,datebase可以不同,也就是url不同,所以配置可修改为如下:

dataSource:
    driverClassName: com.mysql.jdbc.Driver
    username: root
    password: 123

environments:
    development:
        dataSource:
            dbCreate: create-drop
            url: jdbc:mysql://172.192.15.66:3030/mysql
    test:
        dataSource:
            dbCreate: update
            url: jdbc:mysql://172.192.15.66:3030/test
    production:
        dataSource:
            dbCreate: none
            url: jdbc:mysql://172.192.15.66:3030/production
            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

3、需要注意的是:application.yml文件的内容对于数据的对齐有严格的要求,如果没有对齐,可能会报错;并且每个配置项名称后面的引号后必须要有一个空格

4、完成application.yml文件的配置后,需要加载数据库连接所需的文件。到项目根目录下找到gradle.properties文件,在dependencies下增加数据库连接文件的配置,如:dependencies下增加配置

runtime 'mysql:mysql-connector-java:5.1.22'

增加此配置后,会自动下载构建所需的jar包文件,下载完成后,数据库的连接配置也就完成了!!

 

猜你喜欢

转载自blog.csdn.net/hxr_lzy/article/details/80371512
今日推荐