java - 语法错误插入语句java

标签 java sql syntax-error execute insert-into

我想将数据集添加到我的 MS Access 数据库中。但我总是在 SQL 语句中的executeUpdate 语句处遇到语法错误。如果有人可以帮助我,那就太好了。

在这里您可以看到错误:

java.sql.SQLException: [Microsoft][ODBC-Treiber für Microsoft Access] Syntaxfehler in der INSERT INTO-Anweisung.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(Unknown Source)
at verwaltung.ListenerRegistrieren.addBenutzer(ListenerRegistrieren.java:47)
at verwaltung.ListenerRegistrieren.actionPerformed(ListenerRegistrieren.java:28)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

这是错误所基于的代码。它位于 executeUpdate() - 语句中:

try {

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection conn = DriverManager.getConnection("jdbc:odbc:MSAccess");
    PreparedStatement pstm;
    pstm = conn.prepareStatement("Insert Into Benutzer (Benutzername, Vorname, Nachname, E-Mail) values (?,?,?,?)");

    // SQL Statements
    pstm.setString(1, gui.benutzername.getText());
    pstm.setString(2, gui.vorname.getText());
    pstm.setString(3, gui.nachname.getText());
    pstm.setString(4, gui.email.getText());
    pstm.executeUpdate();

    } catch (Exception e) {
        e.printStackTrace();
    }

我找不到语法错误!有人可以帮助我吗?

谢谢

最佳答案

电子邮件列中有一个连字符,您应该转义它。请参阅此答案以了解如何执行此操作:Dash in a field name in access database table

关于java - 语法错误插入语句java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18107812/

相关文章:

php - SQL 查询 - WHERE 语句的问题

MYSQL GUID 触发器

java - 如何比较freemarker中的时间?

java - 使用 Apache Spark 和 Java 对 DataFrame 进行分组和聚合?

java - 没有 DAO 的 Spring Boot mysql 查询

使用 String Tokenizer 的 Java NoSuchElementException

java - DynamicReports 消除了日期字段的时间部分

mysql - 如何在条件聚合mysql中添加where?

syntax-error - “Error validating Name:Invalid string.”添加客户时

php - 如何修复插入表期间的语法错误?