java - 使用 JDBC 插入或更新表

标签 java jdbc insert insert-update

我有一些记录要导入。第一次插入时没问题。如果我尝试再次导入相同的数据,我会收到 org.postgresql.util.PSQLException:错误:重复的键值违反唯一约束。如果数据相同/或更改,如何更新数据库中的记录,如果是新数据,如何使用 JDBC 插入?

public void store(Object entity) throws Exception {
    try {
        if (this.updateEntity((XEntity) entity) == 0) {
            this.insertEntity((XEntity) entity);
        }

        ...

    } catch (SQLException sqlEx) {
        ...
    }
}

private int updateEntity(XEntity entity) throws SQLException {
    PreparedStatement prepStmt = this.getUpdatePreparedStmt();
    ...
    return prepStmt.executeUpdate();
}

private void insertEntity(XEntity entity) throws SQLException {
    ...
    this.getInsertPreparedStmt().executeUpdate();
}

问题现已解决。我在下面提供了答案。

最佳答案

您可以尝试使用 postgres SQL 'MERGE' 或 'REPLACE'

关于java - 使用 JDBC 插入或更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4374383/

相关文章:

java - processbuilder 监控远程服务器中的日志文件

java - 连接到 Mysql 数据库 - JDBC 或 PHP

java - 异常 com.mysql.jdbc.exceptions.MySQLSyntaxErrorException

r - 尝试连接到Hive服务器时出现RJDBC错误:org.apache.thrift.TApplicationException:无效的方法名称: 'execute'

foreach - SSIS Foreach 通过一个表,插入另一个表并删除源行

java - Java 中的列表不起作用

java - 从 CSV raw 插入 SQLite 的更快方法?

java - 使用 NetBeans 在 MS Access 数据库中未发生插入删除更新

haskell - 在 Haskell 中实现二叉搜索树插入

php - 在有序数组中添加额外的数字