Grails: 连接mysql数据库
    Grails切换到mysql数据库需要做如下的配置:
1、将mysql-connector-java-5.1.22-bin.jar驱动复制到Grails应用的根目录lib下面。
2、修改conf/DataSource.groovy;Grails默认用的是H2数据库,我们需要将driverClassName = "org.h2.Driver" 改成 driverClassName = 'com.mysql.jdbc.Driver';url改成我们自己数据库的url
上面的改法会发生几个问题,
1、如果单纯光把驱动复制到lib目录,会发生异常:
java.lang.ClassNotFoundException: com/mysql/jdbc/Driver
找不到这个驱动,此时我们还需要在BuildConfig.groovy文件中加入下面的配置:
dependencies {
    runtime 'mysql:mysql-connector-java:5.1.22'
}
2、尽管我们自己的应用用的是mysql,但是可能某些插件或者框架用的是H2数据库,这样如果我们之配置mysql的数据源,可能导致数据库连接驱动不匹配的异常。
因此我们需要保留原来的数据源配置,另外添加mysql的数据源。
dataSource {
    pooled = true
    driverClassName = "org.h2.Driver"
    username = "sa"
    password = ""
}
hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = false
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
    development {
        dataSource {
            dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
            url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
        }		
		dataSource_mysql {
			dialect = org.hibernate.dialect.MySQLInnoDBDialect
			driverClassName = 'com.mysql.jdbc.Driver'
			username = 'root'
			password = 'root'
			url = 'jdbc:mysql://localhost/DojoGrails'
			dbCreate = 'update'
		}
    }
    test {
        dataSource {
            dbCreate = "update"
            url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
        }
    }
    production {
        dataSource {
            dbCreate = "update"
            url = "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
            pooled = true
            properties {
               maxActive = -1
               minEvictableIdleTimeMillis=1800000
               timeBetweenEvictionRunsMillis=1800000
               numTestsPerEvictionRun=3
               testOnBorrow=true
               testWhileIdle=true
               testOnReturn=true
               validationQuery="SELECT 1"
            }
        }
    }
}
上面是DataSource配置的例子,添加了第二个数据源 dataSource_mysql
在这个多数据源应用里,我们需要在使用dataSource_mysql数据源的domain类里加入如下配置:
static mapping = {
		datasourc