关于重复密钥更新 Java

On Duplicate Key Update Java

我正在使用 Google SQL。我有一个程序,如果数据库中有相同的用户名,用户可以更改数据库的数据。用户正在使用 POST 到 post 他们的信息到数据库。在参考了几个 Whosebug 问题和答案后,我设法找到了下面的代码,但它不起作用。

try{
    Class.forName("com.mysql.jdbc.GoogleDriver");
    conn = DriverManager.getConnection(DB_URL);
    String sql = "INSERT INTO 'data' ('username', 'UUID', 'tenant_id', 'site_id')" 
    + "VALUES(?, ?, ?, ?)" 
    + "ON DUPLICATE KEY UPDATE" 
    + "UUID = VALUES(UUID), tenant_id = VALUES(tenant_id), site_id = VALUES(site_id)";
    stat = conn.prepareStatement(sql);
    stat.setString(1, UserName1);
    stat.setString(2, UUID1);
    stat.setString(3, Tenant_ID1);
    stat.setString(4, Site_ID1);
    stat.executeUpdate();
    stat.close();
    conn.close();
}

我的代码可以在没有 ON DUPLICATE KEY UPDATE 的情况下工作,但在添加之后,它变得无法工作。我对 Java 和 SQL 还是个新手,准备在这里接受用户的任何意见。谢谢大家的回答。

感谢@MohanaPriyan 和@YCF_L 的建议。我设法解决了这个问题。正确的代码应该是

String sql = "INSERT INTO data (username, UUID, tenant_id, site_id)" + "VALUES(?, ?, ?, ?)" + "ON DUPLICATE KEY UPDATE" + " UUID = VALUES(UUID), tenant_id = VALUES(tenant_id), site_id = VALUES(site_id)";