экранирование литерала в строке Java с помощью регулярных выражений - PullRequest
0 голосов
/ 21 октября 2009

У меня есть строковое значение, которое я должен вставить в базу данных MySQL. и я должен экранировать некоторые литералы вроде (', ",%,) в этой строке, так как я могу использовать регулярные выражения для этого

Ответы [ 2 ]

8 голосов
/ 21 октября 2009

Не используйте регулярные выражения. Используйте библиотеку базы данных, которая вам не нужна, и позвольте ей справиться с этим.

4 голосов
/ 21 октября 2009

Не пытайтесь делать это самостоятельно. Позвольте драйверу JDBC обработать его, используя PreparedStatement вместо конкатенации оператора SQL с использованием строк самостоятельно. Пример:

Connection conn = ...;    // Database connection

PreparedStatement ps = conn.prepareStatement("INSERT INTO MYTABLE (NAME, AGE) VALUES (?, ?)");

ps.setString(1, "Jesper");
ps.setInt(2, 38);

ps.executeUpdate();

Если вы используете PreparedStatement, драйвер JDBC позаботится о корректном экранировании вставленных значений для любой марки и версии базы данных, которую вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...