Java 如何使用JDBC更新MySQL PreparedStatement中未知数量的列?

Java 如何使用JDBC更新MySQL PreparedStatement中未知数量的列?,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,我有这样一个java函数: public void update(Integer id, String firstname, String lastname, Integer age){} 现在我想通过mysql表上的preparedstatement进行更新,更新java函数的参数表示的列。所以我想这样做(在更新函数中): 我现在的问题是,一些参数可能为NULL,例如,当它们不需要更新时。所以最后我应该可以打电话给 update(null, "Tom"

我有这样一个java函数:

public void update(Integer id, String firstname, 
                   String lastname, Integer age){}
现在我想通过mysql表上的preparedstatement进行更新,更新java函数的参数表示的列。所以我想这样做(在更新函数中):

我现在的问题是,一些参数可能为NULL,例如,当它们不需要更新时。所以最后我应该可以打电话给

update(null, "Tom", null, 19);

。。。当我只想更新名字和年龄时。那么,如何在不使用多个语句/重写每一列的情况下实现这一点呢?

我在java中创建动态SQL语句的最常用方法是使用SQL Builder库。它们往往非常容易使用,特别是对于像这样的简单情况。你可能想看看图书馆和图书馆。您也可以直接操作语句字符串,但我不建议这样做,因为它容易出错,并且会带来安全风险

许多ORM为您提供了处理此问题的动态SQL功能。迈巴蒂斯就是其中之一。
update(null, "Tom", null, 19);