“ä,Ö,Ü” 我该如何解决这个问题?我不-6ren">
gpt4 book ai didi

java.sql.SQLSyntaxErrorException : Syntax error: Encountered "St\u00f6rungen"

转载 作者:行者123 更新时间:2023-12-02 01:06:28 26 4
gpt4 key购买 nike

我正在尝试用一些信息填充我的 Derby 数据库,但我不断收到此错误..

我已经将我的项目编码为 UTF-8,但我的 Derby 数据库似乎无法理解这些 ->“ä,Ö,Ü”

我该如何解决这个问题?我不想输入“ae,oe,ue”

这是事情开始发生的示例:

st.executeUpdate("Insert into Scoarboard(Name,Wirkung,Ursprung,Stoffklasse,Schadenspot,Risiken,Legalitaet,NutzungMedi,NutzungGenuss,Konsum) "
+ "values (- Cannabis (Marihuana),- Sedativa/Hypnotika,- biogenpflanzlich,- Cannabinoide,"
+ "- 20/100,- Schwindel/übelkeit\r\n- Müdigkeit\r\n- Herzrasen\r\n- psychische Störungen,"
+ "- legal (verschreibungspflichtig),- Schmerzlindernd\r\n- Angstlösend\r\n- Reduziert Wachstum von Tumorzellen\r\n"
+ "- Entkrampfend\r\n- Antipsychotisch\r\n,- Appetitanregend\r\n- Euphorisierend\r\n- Entspannend\r\n,"
+ "- Lunge (Joint)\r\n- Magen-Darm-Trakt (Gebäck)\r\n- Mundschleimhäute (Tinktur)\r\n)");

最佳答案

首先使用PreparedStatement。这允许输入字段,例如 int 表示整数。它还转义包含撇号、反斜杠或换行符的字符串 (\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-with-resources 语法 try(X x = open()) { ... } 确保即使在返回或内部出现异常时,x 也会关闭。

(SQL 中的字符串常量通常用撇号 WHERE Name LIKE 'Can%' 给出。)

关于java.sql.SQLSyntaxErrorException : Syntax error: Encountered "St\u00f6rungen",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59990202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com