快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
</ogr:COUNTY>     <ogr:FIPS>15001</ogr:FIPS>     <ogr:STATE_FIPS>15</ogr:STATE_FIPS>    </ogr:airprtx020>   </gml:featureMember>   <gml:featureMember>...</gml:featureMember>   <gml:featureMember>...</gml:featureMember> </ogr:FeatureCollection>

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

时间:2011-07-29 IBM Scott Davis

现在,创建如清单 6 所示的 restoreUsgsAirports.groovy 脚本。要获取具有名称空间的元素,需要 声明几个 groovy.xml.Namespace 变量。与前面的 restoreAirport.groovy 脚本(清单 3)中使用的简 单的点表示法不同,这里的具有名称空间的元素要用方括号括上。

清单 6. 将 USGS 机场数据恢复到数据库

if(args.size()){   f = new File(args[0])   println f   sql = groovy.sql.Sql.newInstance(     "jdbc:mysql://localhost/trip?autoReconnect=true",     "grails",     "server",     "com.mysql.jdbc.Driver")   FeatureCollection = new groovy.util.XmlParser().parse(f)   ogr = new groovy.xml.Namespace("http://ogr.maptools.org/")   gml = new groovy.xml.Namespace("http://www.opengis.net/gml")   FeatureCollection[gml.featureMember][ogr.airprtx020].each{airprtx020 ->    println "${airprtx020[ogr.LOCID].text()} -- ${airprtx020[ogr.NAME].text()}"    points = airprtx020[ogr.geometryProperty][gml.Point][gml.coordinates].text().split (",")     sql.execute(      "insert into usgs_airports (airport_id, locid, feature, airport_name, state,      county, latitude, longitude) values(?,?,?,?,?,?,?,?)",      [airprtx020[ogr.AIRPRTX020].text(),      airprtx020[ogr.LOCID].text(),      airprtx020[ogr.FEATURE].text(),      airprtx020[ogr.NAME].text(),      airprtx020[ogr.STATE].text(),      airprtx020[ogr.COUNTY].text(),      points[1],      points[0]]       )   } } else{    println "USAGE: restoreAirports [filename]" }

在命令指示符处输入如下信息,将 usgs_airports.xml 文件中的数据插入到新创建的表中:

groovy restoreUsgsAirports.groovy usgs-airports.xml

验证数据插入成功:从命令行登入 MySQL,确保数据已经就位,如清单 7 所示:

清单 7. 验证数据库中的 USGS 机场数据

$ mysql --user=grails -p -- database=trip mysql> desc usgs_airports; +--------------+-------------+------+-----+---------+-------+ | Field    | Type    | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+-------+ | airport_id  | bigint(20) | NO  | PRI |     |    | | locid    | varchar(4) | YES |   | NULL  |    | | feature   | varchar(80) | YES |   | NULL  |    | | airport_name | varchar(80) | YES |   | NULL  |    | | state    | varchar(2) | YES |   | NULL  |    | | county    | varchar(50) | YES |   | NULL  |    | | latitude   | varchar(30) | YES |   | NULL  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号