WEB开发网
开发学院软件开发Java 精通 Grails: Grails 与遗留数据库 阅读

精通 Grails: Grails 与遗留数据库

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示:Grails 对象关系映射(Grails Object Relational Mapping,GORM)API 是 Grails Web 框架的核心部分之一,精通 Grails: Grails 与遗留数据库,“精通 Grails:GORM - 有趣的名称,严肃的技术” 向您介绍了 GORM 的基

Grails 对象关系映射(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.groovy
sql = 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) 
  } 
 } 
} 

1 2 3 4 5 6  下一页

Tags:精通 Grails Grails

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接