1)关联数据库,加入MySQL Connector(至build.gradle文件)
dependencies{
runtime "mysql:mysql-connector-java:5.1.39"
}
或者添加:
dependencies{
compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.5'
}
然后,点击右上角的OK,apply,加载...
2)配置DateSource
dataSource:
pooled: true
jmxExport: true
driverClassName: com.mysql.jdbc.Driver //或者com.mysql.cj.jdbc.Driver
username: root //用户名
password: 123456 //密码
logSql: true //输出SQL日志
formatSql: true //格式化SQL语句
3)配置Environment
development 开发环境
test 测试环境
production 产品运行环境
environments:
development:
dataSource:
dbCreate: create-app
url:jdbc:mysql://localhost:3306/database
或者jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
test:
dataSource:
dbCreate: update
url:jdbc:mysql://localhost:3306/database
或者jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
production:
dataSource:
dbCreate: update
url:jdbc:mysql://localhost:3306/database
或者jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
【
create 启动应用时重新创建表结构
create-drop 启动应用时重新创建表结构,关闭应用时删除表结构
update 创建不存在的表结构,更新存在的表结构,不会对表进行删除操作
validate 将已存在的表结构与配置进行比较以提示警告信息
】
4)以上环境配置完成以后,切换数据库:
I cmd命令行:mysql -u root -p 回车 输入密码
II show databases; //检查已有的数据库
III use students; //切换到students(这里假设用students数据库)数据库
注:检查 环境是否配置好,可以run-app执行一下;
倘若报错:Error| Error initializing classpath: Connection timed out: connect(Use--stacktrace to see the full trace)
这是因为下载gradle超时引起的
解决办法:a,手动下载需要的gradle版本,如我需要的是:gradle-3.0-all.zip;
下载地址:https://services.gradle.org/distributions/
b,找到gradle文件夹下的wrapper文件夹,将下载好的gradle粘贴进来;
c,然后将gradle-wrapper.properties里原来的distributionUrl注释掉,换成已经准备好的gradle包所在路径即可;
对数据库的操作:
5)保存数据
def student = new Student(name:"lisa",sex:"female",age:22)
student.save(flush:true)
6)读取数据
I. def student = Student.get(id) //直接读取
II. def student = Student.load(id) //采用代理对象
7)更新数据
def student = Student.get(id)
student.name = "Mike"
student.save(flush:true)
8)删除数据
def student = Student.get(id)
student.delete(flush:true)
9)查询数据
I def students = Student.list()
students.each{ //集合遍历,采用闭包方式
s ->
println s.name
}
10)带条件的数据查询
II def students = Student.where{
sex == "female" //conditions
}.find()
students.each{
s ->
println s.name
}
补充:
Hello Grails:
1)command target:Ctrl + Alt + G
2)创建controller:create-controller
3)创建Domain:create-domain-class
4)生成scaffold:generate-all
5)运行项目:run-app