更好的方法从表中获取整个数据Groovy Sql
问题描述:
我想从表中获取整个数据,结果应该是一个逗号分隔的字符串。这是我的代码工作正常。更好的方法从表中获取整个数据Groovy Sql
import groovy.sql.Sql;
import java.sql.ResultSet;
def temp="";
def temp1="";
sql = Sql.newInstance("jdbc:oracle:thin:@localhost:1521:XE","username", "password", "oracle.jdbc.driver.OracleDriver")
sql.eachRow("select * FROM employee") {
temp1=it.toRowResult().values().join(", ")
if(temp=="")
{
temp=temp1;
}
else
{
temp=temp+"\n"+temp1
}
}
请建议是否有更好的方法来处理Groovy中的这个需求。
答
的保持它的简单的解决方案是:
import groovy.sql.Sql;
import java.sql.ResultSet;
Sql sql = Sql.newInstance("jdbc:oracle:thin:@localhost:1521:XE","username", "password", "oracle.jdbc.driver.OracleDriver")
StringBuilder builder = new StringBuilder()
sql.eachRow("select * FROM employee") { row ->
builder.append("${row.employeeId},") // no idea what your column names are
}
return builder.toString() // should trim trailing comma but I'll save that for you
您可能还可以用注射做到这一点(),但我还没有尝试,关于前设置SQL结果。
+0
我不想指定列名称,而应该读取所有列的数据,其中逗号应为每个列值的分隔符。有什么办法可以实现这种情况? –
+0
如果您不想使用列名称,则可以使用列位置整数值。但是,“select *”对于返回列的顺序并不是非常具体。您需要将列名添加到select语句以保证结果的顺序,并因此按位置引用它们。 –
是否存储到'csv'文件的想法? – Rao
没有不进入csv,但当我做选择操作时,我需要以逗号分隔值的形式获取表格数据。我想将它存储在一个字符串中。 –