Java - выходной массив без его форматирования
Я пишу приложение, которое позволяет пользователю создавать пользовательские запросы SQL с пользовательским вводом.
Я добавляю Falue из каждого 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)
это работает отлично.
Я ищу, чтобы избавиться от [] при выводе массива
Благодарю вас
3 ответа
Если вы не можете использовать гуаву (но я рекомендую это:))
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 (");
....
В завершение, с гуавой, это выглядит так:
Joiner commaJoiner = Joiner.on(", ");
"INSERT INTO table (" + commaJoiner.join(rows) + " VALUES " + commaJoiner.join(values)
Вы не должны полагаться на toString
метод массива.
Используя Guava, попробуйте Joiner.on(",").join(myArray);
Возможно, слишком сложное решение, но попробуйте переопределить 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();
}
};