Первое использование PreparedStatement
. Это позволяет вводить поля типа int для целого числа. Также он экранирует строки, содержащие апостроф, backsla sh или разрывы строк (\r\n
), и помогает со специальными символами.
String sql = "INSERT INTO Scoarboard(Name,Wirkung,Ursprung,Stoffklasse,Schadenspot,Risiken,"
+ "Legalitaet,NutzungMedi,NutzungGenuss,Konsum) "
+ "VALUES(?,?,?,?,?,?,?,?,?,?)";
try (PreparedStatement st = connection.prepareStatement(sql)) {
st.setString(1, "Cannabis (Marihuana)");
st.setString(2, "Sedativa/Hypnotika");
st.setString(3, "biogenpflanzlich");
st.setString(4, "Cannabinoide");
st.setString(5, "20/100");
st.setString(6, "Schwindel/übelkeit\r\nMüdigkeit\r\nHerzrasen\r\npsychische Störungen");
st.setString(7, "legal (verschreibungspflichtig)");
st.setString(8, "Schmerzlindernd\r\nAngstlösend\r\n"
+ "Reduziert Wachstum von Tumorzellen\r\n"
+ "Entkrampfend\r\n- Antipsychotisch\r\n");
st.setString(9, "Appetitanregend\r\nEuphorisierend\r\nEntspannend\r\n");
st.setString(10, "Lunge (Joint)\r\nMagen-Darm-Trakt (Gebäck)\r\n"
+ "Mundschleimhäute (Tinktur)\r\n");
st.executeUpdate();
}
Столбцы таблицы базы данных должны содержать специальные символы, и также компилятор java мог ошибочно использовать другую кодировку в качестве редактора. Но давайте предположим, что все в порядке. Теперь это должно работать.
Синтаксис попытки с ресурсами try(X x = open()) { ... }
гарантирует, что x
закрывается даже при возврате или исключении внутри.
(строковые константы в SQL обычно дано с апострофом WHERE Name LIKE 'Can%'
.)