我正在编写一个应用程序,允许用户使用用户输入创建自定义SQL查询。
我使用
将每个JTextFields的值添加到数组中for(JTextField field : fields){
if (!field.getText().equals("")){
rows.add(field.getText());
}
}
当我输出数组时,它用方括号括起来
[arVal1, arVal2, etc, etc]
因此,当我将数组插入查询字符串时,它看起来像这样:
INSERT INTO table ([arval1, arval2, arVal3]) VALUES ([bla, bla, bla])
当我因某些原因运行查询时,我得到:ORA-00928:缺少SELECT关键字错误;但如果我有一个查询的默认字符串,如:
INSERT INTO table (arval1, arval2, arVal3) VALUES (bla, bla, bla)
它工作正常。
我想在输出数组时摆脱[]
谢谢
答案 0 :(得分:2)
您不应该依赖数组的toString
方法。
使用Guava,尝试Joiner.on(",").join(myArray);
答案 1 :(得分:1)
如果你不能使用番石榴(但我推荐它:))
StringBuilder builder = new StringBuilder();
builder.add("INSERT INTO table (");
for(int i=0; i<rows.length: rows){
builder.add(row);
if(i<rows.length -1){
builder.add(",")
}
}
builder.add(") VALUES (");
....
要完成,使用Guava,它看起来像这样:
Joiner commaJoiner = Joiner.on(", ");
"INSERT INTO table (" + commaJoiner.join(rows) + " VALUES " + commaJoiner.join(values)
答案 2 :(得分:0)
可能是一个过于复杂的解决方案,但请尝试重写toString()
ArrayList<String> rows = new ArrayList<String>()
{
public String toString()
{
StringBuffer retVal = new StringBuffer();
for(int i = 0; i < size(); i++)
{
retVal.append(this.get(i));
if(i < size() - 1)
{
retVal.append(",");
}
}
return retVal.toString();
}
};