从MySQL数据库获取数据

时间:2015-01-29 10:42:47

标签: mysql grails

我没有通常的H2数据库使用Grails。相反,我在本地和我的服务器上安装了MySQL。

我需要在这个MySQL数据库中运行查询并在GSP中显示数据(确切地说:我想用highcharts将它们可视化)。存储所需信息的表与Grails项目中的域无关。

如何在不使用PHP的情况下访问数据?

2 个答案:

答案 0 :(得分:1)

Grails的一个奇妙之处在于它是基于Spring和Groovy构建的,以及它们提供的所有精彩内容。这意味着,您可以使用Groovy SQL包访问您的数据源。

可以在此blog post中找到非常详细的Grails示例。

这是一个简单的例子(仅从上面的博客中稍作修改):

package example

import groovy.sql.Sql
import groovy.sql.GroovyRowResult

class PersonService {

    // Reference to default datasource, autowired into the service through DI.
    def dataSource

    List<GroovyRowResult> allPersons(final String searchQuery) {
        final String searchString = "%${searchQuery.toUpperCase()}%"

        final String query = '''\
            select id, name, email 
            from person 
            where upper(email collate UNICODE_CI_AI) like :search
        '''

        // Create new Groovy SQL instance with injected DataSource.
        final Sql sql = new Sql(dataSource)

        final results = sql.rows(query, search: searchString)
        return results
    }
}

值得查看有关Sql class的Groovy API。

答案 1 :(得分:0)

在DataSource.groovy中,您可以为每个环境配置数据库。 默认情况下,对于dev evn H2 base使用,但用于生产MYSQL。 配置示例:

development {
  dataSource {
     dbCreate = "none"  // one of 'create', 'create-drop', 'update', 'validate', ''
     username = "root"
     password = "root"
     url = "jdbc:mysql://localhost:3306/test"
     driverClassName = "com.mysql.jdbc.Driver"
     dialect = 'org.hibernate.dialect.MySQL5InnoDBDialect'
//      logSql = true
  }
}

使用gorm http://grails.github.io/grails-doc/latest/guide/GORM.html#basicCRUD