精通 Grails: Grails 与遗留数据库
2009-10-26 00:00:00 来源:WEB开发网现在,创建如清单 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]"
}
- ››精通Photoshop之通道详解
- ››精通 Grails: 使用 Grails 进行单元测试(单元测试...
- ››精通 Grails: 创建自定义插件
- ››精通 Grails: 在企业中使用 Grails
- ››精通 Grails: Grails 与移动 Web
- ››精通 Grails: Grails 与遗留数据库
- ››精通 Grails: RESTful Grails
- ››精通 Grails: 用 JSON 和 Ajax 实现异步 Grails
- ››精通 Grails: 用定制 URI 和 codec 优化 Grails 中...
- ››精通 Grails: 身份验证和授权
- ››精通 Grails: 文件上传和 Atom 联合
- ››精通 Grails: 了解插件
更多精彩
赞助商链接