MySQL 如何在Grails 2.0上运行
Grails是一种基于Spring框架的开发平台,它可以通过安装多个插件来集成和运行不同的应用程序。而MySQL则是广泛使用的数据库管理系统,在Grails 2.0上集成MySQL可以创建出更为强大和灵活的应用程序。本文将介绍如何通过多种方法在Grails 2.0上运行MySQL。
阅读更多:MySQL 教程
安装插件
Grails使用特定的插件来支持不同的数据库。在使用MySQL时,可以安装MySQL插件,该插件提供了访问MySQL数据库所需的所有必要依赖项。
要在Grails应用程序中安装MySQL插件,可以使用以下命令:
grails install-plugin mysql
该命令将下载并安装MySQL插件。在安装插件后,可以配置具有以下详细信息的DataSource:
dataSource {
driverClassName = "com.mysql.jdbc.Driver"
username = "root"
password = "password"
dialect = org.hibernate.dialect.MySQL5InnoDBDialect
url = "jdbc:mysql://localhost:3306/mydatabase?autoReconnect=true&useSSL=false"
properties {
maxActive = 50
minEvictableIdleTimeMillis = 60000
timeBetweenEvictionRunsMillis = 60000
numTestsPerEvictionRun = 3
testOnBorrow = true
validationQuery = "SELECT 1"
}
}
其中,driverClassName是用于连接MySQL的JDBC驱动程序类的名称。username和password是MySQL服务器的凭据,而url是MySQL服务器的位置和端口(例如localhost:3306/mydatabase)。上面的代码中,发现我们使用一个名为“mydatabase”的数据库。
配置MySQL
将MySQL集成到Grails 2.0应用程序需要对MySQL进行配置。您应该确保MySQL正在运行并访问控制允许来自Grails应用程序的连接。要做到这一点,您可以使用以下命令:
mysql -u root -p
然后输入密码并回车登录。
接下来,使用以下命令创建一个新的数据库:
create database mydatabase;
确保使用create
关键字和正确的数据库名称。
然后,您可以创建一个包含名称和密码的新用户:
create user 'myuser'@'%' identified by 'mypassword';
该命令将创建一个名为“myuser”的用户,密码为“mypassword”。
创建用户后,您可以为该用户授予访问mydatabase数据库的权限:
grant all on mydatabase.* to 'myuser'@'%';
该命令将为“myuser”用户授予对“mydatabase”数据库的所有权限。
现在,MySQL已经配置好了。
示例
下面的示例演示了如何在Grails 2.0中使用MySQL:
创建Domain类
首先,创建一个Domain类,以表示位于MySQL数据库中的数据记录:
package com.example.demo
class Book {
String title
String author
Integer pageCount
Date publishedDate
static constraints = {
title(blank: false)
author(blank: false)
pageCount(min: 1)
publishedDate(nullable: false)
}
}
在上面的代码中,定义了一个名为“Book”的Domain类,该类包含标题、作者、页数和发布日期属性。使用Grails的约束DSL,约束时间戳不能为空,标题和作者名称字段也不能为空。
生成控制器和视图
接下来,您可以使用以下命令来创建控制器和视图:
grails create-controller Book
该命令将生成一个名为“BookController”的控制器,并为该控制器生成视图。
更新控制器
接下来,打开“grails-app\controllers\com\example\demo”目录,并打开“BookController.groovy”文件。
在该文件的顶部,包含用于声明缺省数据库config中的DataSource。以下是添加import
语句的示例:
import groovy.sql.Sql
import javax.sql.DataSource
class BookController {
def dataSource
...
接下来,在控制器类中编写一个动作以向数据库添加新的Book条目:
class BookController {
def dataSource
def create() {
def sql = new Sql(dataSource)
try {
sql.executeInsert("book", [title: "Example Title", author: "Example Author", pageCount: 123, publishedDate: new Date()])
} finally {
sql.close()
}
redirect(action: "index")
}
...
}
上面的代码中,create()
方法使用Sql
类来插入一条新的book
记录。最后,create()
方法重定向回index()
方法。
接下来,打开“grails-app\views\book”目录,打开“index.gsp”文件,并使用以下代码替换其中的内容:
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main">
<title>Index</title>
</head>
<body>
<table>
<thead>
<tr>
<g:sortableColumn property="title" title="Title" />
<g:sortableColumn property="author" title="Author" />
<g:sortableColumn property="pageCount" title="Page Count" />
<g:sortableColumn property="publishedDate" title="Published Date" />
<th></th>
</tr>
</thead>
<tbody>
<g:each in="{books}" status="i" var="book">
<tr class="{(i % 2) == 0 ? 'odd' : 'even'}">
<td>{fieldValue(bean: book, field: "title")}</td>
<td>{fieldValue(bean: book, field: "author")}</td>
<td>{fieldValue(bean: book, field: "pageCount")}</td>
<td>{fieldValue(bean: book, field: "publishedDate")}</td>
<td><g:link action="edit" id="${book.id}">Edit</g:link></td>
</tr>
</g:each>
</tbody>
</table>
<g:link action="create" class="btn">Create New Book</g:link>
</body>
</html>
上述代码中,使用sortableColumn标记来添加表头和书籍属性值,然后循环通过each循环来列出书籍和其属性值。最后,添加一个链接转到create动作。
现在,重新启动Grails应用程序,并访问http://localhost:8080/book/index。您应该可以看到一个空的书籍列表和一个可以创建新的书籍的按钮。点击“Create New Book”按钮,应会将一条新记录添加到MySQL数据库中。
总结
本文介绍了在Grails 2.0应用程序中如何使用MySQL。首先安装了MySQL插件,在DataSource中配置MySQL信息,然后创建了一个Domain类以表示书籍记录。然后创建了一个控制器并实现了创建新书籍的方法,最后使用Groovy Server Pages(GSP)模板渲染书籍列表。
希望本文能够帮助您集成MySQL到Grails 2.0中并开始开发强大和灵活的应用程序。