首页 / 软件开发 / JAVA / 精通Grails: Grails与遗留数据库
精通Grails: Grails与遗留数据库2011-07-29 IBM Scott DavisGrails 对象关系映射(Grails Object Relational Mapping,GORM)API 是 Grails Web 框架的核心 部分之一。“精通 Grails:GORM - 有趣的名称,严肃的技术” 向您介绍了 GORM 的基础知识,包括简 单的一对多关系。之后的 “使用 Ajax 实现多对多关系” 教您使用 GORM 建模越来越复杂的类关系。现 在您将看到 GORM 的 “ORM” 如何能够灵活处理遗留数据库中不符合 Grails 标准命名约定的表名与列 名。备份并恢复数据无论什么时候处理数据库中的现有数据,都要有一份最新的备份。著名的墨菲法则(Murphy"s Law ) 的墨菲(Murphy)就像是我的守护神。什么样的错误都有可能发生,所以还是未雨绸缪的好。备份除了用常规备份软件备份目标数据库外,我还建议再保存一份数据的纯文本副本。这样就能够用相同 的数据集轻松地创建测试和开发数据库了,还可以轻松地跨数据库服务器移动数据(例如,在 MySQL 和 DB2 之间来回移动数据)。您将再一次使用本系列一直开发的 Trip Planner 应用程序。清单 1 是一个名为 backupAirports.groovy 的 Groovy 脚本,它备份了 airport 表的记录。它用了三条语句、不足 20 行 的代码连接到了数据库,从表中选定了每一行,并将数据作为 XML 导出。清单 1. backupAirports.groovysql = groovy.sql.Sql.newInstance(
"jdbc:mysql://localhost/trip?autoReconnect=true",
"grails",
"server",
"com.mysql.jdbc.Driver")
x = new groovy.xml.MarkupBuilder()
x.airports{
sql.eachRow("select * from airport order by id"){ row ->
airport(id:row.id){
version(row.version)
name(row.name)
city(row.city)
state(row.state)
country(row.country)
iata(row.iata)
lat(row.lat)
lng(row.lng)
}
}
}