Я использую PreparedStatement
с sql, например:
String sql = "insert into foo (a,b,c) values (?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(psIndex++, a);
ps.setString(psIndex++, b);
ps.setString(psIndex++, c);
Но если какая-либо из переменных является пустой строкой, результирующий оператор получает две одинарные кавычки. Например: VALUES ('foo', '', '')
Тогда я получаю исключение, поскольку две одинарные кавычки - это escape-последовательность.
Не могу поверить, что не смог найти ничего об этом с помощью поиска, но не смог. Что здесь происходит?