row.ACCOUNT} ${--6ren">
gpt4 book ai didi

java - 如何使用数据库存储的 GString 定义生成运行时数据

转载 作者:行者123 更新时间:2023-12-02 11:41:36 28 4
gpt4 key购买 nike

您好,如何使用数据库存储的 GString 定义来动态生成数据。如果代码中定义了格式,我可以使用 GString 来选择行属性

code_format = "${-> row.ACCOUNT} ${-> row.ACCOUNT_OWNER}" 

但是,如果从数据库中提取相同的定义,我的代码将无法工作。

Sql sql = Sql.newInstance(url, login, password, driver);

sql.eachRow(SQL) { row ->
code_format = "${-> row.ACCOUNT} ${-> row.ACCOUNT_OWNER}"
database_format = "${-> row.REPORT_ATTRIBUTES}"

println "1- " + code_format
println "2- " + database_format
println "CODE : " + code_format.dump()
println "DB : " + database_format.dump()

}

当我运行此代码时,我得到以下输出;

1-  FlowerHouse Joe
2- ${-> row.ACCOUNT} ${-> row.ACCOUNT_OWNER}
CODE : <org.codehaus.groovy.runtime.GStringImpl@463cf024 strings=[, , ] values=[GString$_run_closure1_closure2@44f289ee, GString$_run_closure1_closure3@f3d8b9f]>
DB : org.codehaus.groovy.runtime.GStringImpl@4f5e9da9 strings=[, ] values=[GString$_run_closure1_closure4@11997b8a]

最佳答案

row.REPORT_ATTRIBUTES 返回字符串,因为数据库不知道 groovy 字符串格式。

GString是模板,可以从字符串创建。

所以你可以这样做:

def engine = new groovy.text.SimpleTemplateEngine()
println engine.createTemplate(row.REPORT_ATTRIBUTES).make([row:row]).toString()

关于java - 如何使用数据库存储的 GString 定义生成运行时数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48513392/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com