2

作为 Servlet 编程的新手,我想我可能在这里没有得到一些东西:我了解 Java Beans 和小的 ORM 辅助类(如org.apache.commons.dbutils.DbUtils. 我可以使用 a和 a将 aResultSet转换为我的 JavaBean 对象的实例。但是除了对 SQL 字符串进行硬编码之外,没有任何方便的方法可以反过来吗?就像是ResultSetHandlerBeanHandler

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

至少,我没有找到类似的东西!还是我弄错了?帮助表示赞赏。

4

1 回答 1

2

你没有弄错,你仍然需要一个硬编码的 SQL 字符串,如这个答案所示。Sql2o 还需要一个硬编码的 SQL 字符串,但它可以让你绑定一个 POJO,让你走到一半,见这里(页面底部)。

我认为您将始终需要某种形式的硬编码 SQL 字符串,因为这些是 JDBC 帮助程序库而不是“对象关系映射器”。在插入完成之前,不知道哪些属性是自动生成的、具有默认值、是外键、允许空值等。所有这些信息都是基于 POJO 准备适当的插入语句所必需的/ JavaBean 超出了帮助程序库的范围。从好的方面来说:指定一个 SQL 字符串是明确的(幕后没有魔法)并且让您完全控制。

于 2015-10-23T16:08:32.363 回答