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

精通 Grails: Grails 与遗留数据库

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 注意,该脚本是完全独立于 Grails 框架的,精通 Grails: Grails 与遗留数据库(3),要使用它,就一定要在您的系统上安装 Groovy,清单 3 中展示的 restoreAirports.groovy 脚本用 Groovy XmlParser 读入了 XML,构造了一个 SQL

注意,该脚本是完全独立于 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]" 
} 

上一页  1 2 3 4 5 6 7 8  下一页

Tags:精通 Grails Grails

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