Вставка JDBC-запроса со специальным символом ("\ N", "\ S" и "\ T") - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть необработанный запрос вставки, например

insert into sample(id, name) values(1, 'text \\N\');

Получение SqlException при попытке вставки через jdbc, но тот же запрос вставки работает, если я вставляю через командную строку mysql (консоль).

Запрос вставки jdbc не выполняется из-за специальных символов ("\ N") в поле имени.

, как преодолеть и вставить имя с помощью \ N?

1 Ответ

0 голосов
/ 23 октября 2018

Самый чистый подход - вообще не использовать необработанный SQL-запрос.Если, как вы заявили, вы получаете имя от какого-то другого процесса, то оно предположительно находится в переменной String (или свойстве, или подобном), поэтому вы можете просто использовать параметризованный запрос для выполнениявставить:

// example data
int theId = 1;
String theName = "the name you received from somewhere else";
//
PreparedStatement ps = conn.prepareStatement("INSERT INTO sample (id, name) VALUES (?, ?)");
ps.setInt(1, theId);
ps.setString(2, theName);
ps.executeUpdate();
...