mysql - 不同字段的JDBC更新

标签 mysql jdbc sql-update dao

我正在开发可以通过 JDBC 访问数据库的 Web 服务。我正在使用 DAO 模式。我已经实现了所有必要的方法:findAll、add、update、delete。但是我对更新方法感到困惑。它以 Object 作为输入参数。但是他怎么知道哪个字段需要更新。例如,我需要更新字段“姓名”,我使用查询 'update table set name='smth where id=2' 但如果我需要更新“姓氏”?告诉更新方法实际更新什么的最佳实践是什么?
谢谢

最佳答案

您需要更改方法签名以包含列名称和值的 Map。

public interface FooDao<K, V> {
    // other methods here, of course.
    public void update(V target, Map<String, Object> parameters); 
}

查看 Spring JDBC 模板,了解如何设计和实现此类内容的一个很好的示例。

关于mysql - 不同字段的JDBC更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310186/

相关文章:

mysql - sql:如果两行有重复的id,只保留最小值

java - 在 Web 应用程序中更新 mysql

php - 为什么我不能将 php time() 用于时间戳列?

java - 如何在数据库中插入 java.util.Date?

java - 使用 "StringUtils.join(array, "' ,'") 进行选择;"

sql - 是否可以在多个更新中使用 WITH 子句而不将其复制到每个更新中?

mysql - 根据值更新表而不重叠字段名称

mysql - 具有聚合字段和分组依据的临时变量在 mysql 中不起作用

java - 如何在 JDBC 中获取受 UPDATE 查询影响的所有行?

mysql - SQL 不适用于同一表中一列到另一列的简单 SET