apache-commons-dbutils可以将bean转换为SQL语句吗?

时间:2015-10-23 12:39:04

标签: java mysql apache-commons-dbutils

作为Servlet编程的新手,我想我可能没有在这里得到一些东西:我理解Java Bean的概念和像org.apache.commons.dbutils.DbUtils这样的小型ORM辅助类。我可以使用ResultSetResultSetHandlerBeanHandler转换为我的JavaBean对象的实例。但除了硬编码SQL字符串之外,是不是有其他方便的方法呢?像

这样的东西
QueryRunner run = new QueryRunner(datasource);
int result = run.update("UPDATE " + tableName + " SET " + [and now some Handler sets all the columns from the JavaBean]);

至少,我没有找到类似的东西!或者我弄错了?帮助赞赏。

1 个答案:

答案 0 :(得分:1)

你没有弄错,你仍然需要一个硬编码的SQL字符串,如this answer所示。 Sql2o还需要一个硬编码的SQL字符串,但是它可以让你绑定一个POJO,让你在那里中途,请参阅here(页面底部)。

我认为你总是需要某种形式的硬编码SQL字符串,因为它们是JDBC辅助库而不是"对象关系映射器"。在插入完成之前,不知道哪些属性是自动生成的,具有默认值,是外键,允许空值等。所有这些信息都是根据POJO /准备正确的插入语句所必需的。 JavaBean,这超出了帮助程序库的范围。在正面:指定一个SQL字符串是显式的(幕后没有魔法)并让你完全控制。