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

精通 Grails: Grails 与遗留数据库

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 现在,创建如清单 6 所示的 restoreUsgsAirports.groovy 脚本,精通 Grails: Grails 与遗留数据库(7),要获取具有名称空间的元素,需要声明几个 groovy.xml.Namespace 变量,与前面的 restoreAirport.groovy 脚本(清

现在,创建如清单 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]" 
} 

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:精通 Grails Grails

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