Я хочу сгенерировать строку, такую как команда sql:
"INSERT INTO xxx VALUES(XXX, XXX, XXX)"
В настоящее время я использую StringBuilder
и некоторую константу String
, например "INSERT INTO", чтобы объединить входные параметры String для имени таблицы ивставленные значения.
Однако, помимо проблем с производительностью, эта простая конкатенация выглядит не элегантно.Есть ли другой способ сделать это?
На мой взгляд, подготовленный оператор JDBC является хорошим примером такого "шаблона команды":
PreparedStatement pstmt=connection.createPreparedStatement("INSERT INTO ? VALUES(?,?,?)");
, тогда вы можете установить имя таблицыи вставленное значение.
pstmt.setString(1,"tableA");
pstmt.setInt(2, 100);
...
Тем не менее, я не могу использовать подготовленное утверждение, так как мне нужна только строка ...
И кто-то дает мне подсказку использовать java.util.Regex
илиJavaCC для создания строки.Но, насколько я могу судить, что бы ни выбрано для некоторой проблемы элегантности кода, Java String должна быть сгенерирована чем-то вроде StringBuilder
, верно ???