我正在学习groovy sql。我看到了以下代码:
def sql = Sql.newInstance(...)
def bldr = new MarkupBuilder()
bldr.weather {
sql.eachRow('select * from weather'){
city(name:it.city,temperature:it.temperature)
}
}
数据库表名称为天气,列为:城市和 tempertature 。
当我执行上述脚本时,我的控制台会以XML格式打印天气内容。
令我困惑的是:为什么控制台在没有 print()方法的情况下打印XML。
答案 0 :(得分:1)
当您在控制台中运行groovy代码时,它默认返回并打印最后执行的语句。例如。如果脚本是:
def l = [1, 2, 3, ]
输出将是:
groovy> def l = [1, 2, 3, ]
Result: [1, 2, 3]
尽管脚本中没有print
语句。
要将生成的XML序列化为文件,您需要一个Writer
import groovy.xml.MarkupBuilder
def sql = Sql.newInstance(...)
def writer = new FileWriter('weather.xml')
def bldr = new MarkupBuilder(writer)
bldr.weather {
sql.each{
city(name:it.city,temperature:it.temperature)
}
}