在java中将数据插入数据库表com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException时出错

时间:2016-03-30 06:19:44

标签: mysql

我试图执行代码,但我一直在收到错误。可能是什么问题。错误是:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便使用“关键”值(' davis',' 0704254498',' 0704254498&#39 ;,现在(),'希望你有一个美好的一天,''在第1行

 String sql = "INSERT INTO  tWebServiceSms(username,mobile,sender_id,time_sent,message_payload,status,key)   VALUES(?,?,?,now(),?,?,?)";
    PreparedStatement stmt = null;
    try {
        stmt = conn.prepareStatement(sql);
        stmt.setString(1, webServiceSmsOut.getUsername());
        stmt.setString(2, webServiceSmsOut.getMobile());
        stmt.setString(3, webServiceSmsOut.getSenderId());
        stmt.setString(4, webServiceSmsOut.getMessage());
        stmt.setInt(5, 0);
        stmt.setString(6, webServiceSmsOut.getKey());
        int affected = stmt.executeUpdate();
        return affected == 1;
    } catch (SQLException e) {
        Logger.getLogger(WebServiceSmsData.class.getName()).log(Level.SEVERE, "null", e);
        return false;
    } finally {
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException ex) {
                Logger.getLogger(WebServiceSmsData.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

您收到此错误是因为key是MySQL中的保留关键字。更改名称或使用它周围的反引号,“键”。

答案 1 :(得分:1)

单词key是mysql中的保留字,用于表示索引。如果要将其用作标识符名称,则需要通过反引号(`)

将其括起来