В следующем запросе SQL, используя PreparedStatement
класс:Как обрабатывать специальные символы в Java PrepareStatement?
String query_descrip = "insert into timitemdescription (itemkey, languageid, longdesc, shortdesc) values (?, 1033, ?,?)";
PreparedStatement pstmt2 = con.prepareStatement(query_descrip);
pstmt2.setInt(1, rs4);
pstmt2.setString(2, itemdescription);
pstmt2.setString(3, itemdescription.substring(0,39));
pstmt2.executeUpdate();
я иногда получаю апостроф и одиночные и двойные кавычки в моих описаниях элементов. например, мой последний выпуск с одним элементом - это «Монитор Planar 22». Конечно, строка была неверно истолкована и считала, что значение описания было всего лишь «Planar 22». Каков наилучший способ обработки специальных символов в строке ?
Я читал, что некоторые люди используют регулярное выражение, однако они, по-видимому, специфичны для каждого случая. Другой способ, которым я работаю, - читать символ массива строк по символу. Я надеялся, что более эффективный и менее ресурсоемкий способ сделать это.
UPDDATE Пройти еще более подробное тестирование, выяснилось, что в моем коде было больше проблем, это также проблема кодирования URL. Когда html-форма была заполняется кодом jsp, он попытается переместить поле описания в онлайн-форму, он усекает его там, а не по запросу. jTDS также исправил проблему получения специальных символов. Поскольку jTDS является банкой, это также помогло избежать перезагрузки машины. Я буду награждать jTDS нитью, потому что это то, что я частично использовал.
заранее спасибо
Какой драйвер JDBC и база данных вы используете? – Yishai
Я использую драйвер MS SQL Server 2000 для JDBC и SQL Server 2005 – phill
Почему мой вопрос не используется? – phill