快速业务通道

精通Grails: Grails与遗留数据库 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
确保外键值同样匹配(关于这一点我将在下一小节进一步详述)。

注意,该脚本是完全独立于 Grails 框架的。要使用它,就一定要在您的系统上安装 Groovy。另外, 类路径中一定要有 JDBC 驱动程序 JAR。可以在运行脚本时进行指定。在 UNIX® 中,要输入:

groovy -classpath /path/to/mysql.jar:. backupAirports.groovy

当然了 ,在 Windows® 上,相应的文件路径和 JAR 分隔符是不同的。在 Windows 中,则需要输入:

groovy -classpath c:\path\to\mysql.jar;. backupAirports.groovy

由于我经常使用 MySQL,所以我将一份该 JAR 的副本保存在了我的主目录(在 UNIX 上为 /Users/sdavis,在 Windows 上为 c:\Documents and Settings\sdavis)中的 .groovy/lib 目录中。当 从命令行运行 Groovy 脚本时,该目录中的 JAR 会自动包含在类路径中。

清单 1 中的脚本将输 出写到了屏幕。要将数据保存在一个文件中,可以在运行脚本时重定向输出:

groovy  backupAirports.groovy > airports.xml

精通Grails: Grails与遗留数据库(3)

时间:2011-07-29 IBM Scott Davis

恢复数据

从数据库中获取出数据仅 仅是成功了一半。还要再将数据恢复到数据库中。清单 3 中展示的 restoreAirports.groovy 脚本用 Groovy XmlParser 读入了 XML,构造了一个 SQL insert 语句,并用了一个 Groovy SQL 对象来执行该 语句。

清单 3. 从 XML 中恢复数据库记录的 Groovy 脚本 if(args.size()) {   f = new File(args[0])   println f      sql =  groovy.sql.Sql.newInstance(    "jdbc:mysql://localhost/aboutgroovy? autoReconnect=true",    "grails",    "server",     "com.mysql.jdbc.Driver")     items = new groovy.util.XmlParser().parse(f)   items.item.each{item ->    println "${item.@id} --  ${item.title.text()}"    sql.execute(      "insert into item (version,  title, short_description, description,          url, type, date_posted,  posted_by) values(?,?,?,?,?,?,?,?)",      [0, item.title.text(),  item.shortDescription.text(), item.description.text(),        item.url.text(),  item.type.text(), item.datePosted.text(),        item.postedBy.text()]      )   } } else{   println "USAGE: itemsRestore  [filename]" }

要运行该脚本,需要输入:

groovy restoreAirports.groovy airports.xml

切记,对于要工作的表之间的关系而言,关系的一 的方面的主键字段一定要与关系的多 的方面的外 键字段相匹配。例如,储存于 airport 表的 id 列中的值一定要与 flight 表的 arrival_airline_id 列中的值相同。

转换 USGS 数据

USGS 将机场的数据提供为一个 shapefile。这是一个交换地理数据的固定文件格式。一个 shapefile 至少由三个文件组成。.shp 文件包含地理数据 — 此处指每个机场的纬度/经度。.shx 文件是一个空间 索引。.dbf 文件是 — 您猜对了 — 一个很好的古老的 dBase 文件,它包含了所有的非空间数据(此处 指机场名、IATA 代码等)。

我使用了 Geospatial Data Abstraction Library(GDAL)— 一套处理地理数据的开源的命令行工具 集 — 来将 shapefile 转换为文中使用的地理标记语言(Geography Markup Language,GML)文件。我 使用的具体的命令为:

ogr2ogr -f "GML" airports.xml airprtx020.shp

您还可以使用 GDAL 将数据转

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号