我没有通常的H2数据库使用Grails。相反,我在本地和我的服务器上安装了MySQL。
我需要在这个MySQL数据库中运行查询并在GSP中显示数据(确切地说:我想用highcharts将它们可视化)。存储所需信息的表与Grails项目中的域无关。
如何在不使用PHP的情况下访问数据?
答案 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