精通 Grails: Grails 与遗留数据库
2009-10-26 00:00:00 来源:WEB开发网注意,该脚本是完全独立于 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
恢复数据
从数据库中获取出数据仅仅是成功了一半。还要再将数据恢复到数据库中。清单 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]"
}
- ››精通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: 了解插件
更多精彩
赞助商链接