Java PreparedStatement с использованием двух одинарных кавычек для параметра пустой строки

Я использую 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-последовательность.

Не могу поверить, что не смог найти ничего об этом с помощью поиска, но не смог. Что здесь происходит?

7
задан gnat 27 December 2011 в 14:01
поделиться