有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java MySQL upsert(在重复键上)使用JDBC准备语句

我正在尝试编写一个方法,用java编写一个准备好的语句来实现UPSERT功能。代码如下所示

public boolean addUserDeviceToken(String userid, String password, String deviceToken, Connection connection) {
    String addDeviceToken = "INSERT INTO swiped.Users (userid, password, deviceToken) VALUES( ?, ?, ?) ON DUPLICATE KEY UPDATE devicetoken = ?";
    boolean result = false;

    ResultSet rs = null;
    PreparedStatement st = null;
    try {
        st = connection.prepareStatement(addDeviceToken);
        st.setString(1, userid);
        st.setString(2, password);
        st.setString(3, deviceToken);
        st.setString(4, deviceToken);

我不确定的是我是使用st.executeQuery();还是st.executeUpdate();,因为它肯定取决于重复密钥的条件

正确的方法是什么

谢谢


共 (1) 个答案

  1. # 1 楼答案

    你不想得到结果集,除了插入或更新的次数之外,没有结果,只需使用^{}

    摘自javadoc:

    Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement