java—如何使用jdbctemplate更新整个对象而不指定列名?

kyxcudwk  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(400)

我在看参考资料。我们能做到的- String orderSql = "select * from order where id = ?"; jdbcTemplate.query(orderSql, new BeanPropertyRowMapper<>(Order.class), orderId); 这将从数据库中读取数据,并可以直接反序列化到 Order 对象。这很好。
我想做的是- String updateSql = "update order ? where id = ?"; jdbcTemplate.save(updateSql, new BeanPropertyRowMapper<>(Order.class), order, orderId); 有办法吗?

kx1ctssn

kx1ctssn1#

不!你只能这样!

jdbcTemplate.update("update ordertable set order = ? where id = ?", order, orderId);
u91tlkcl

u91tlkcl2#

不,不可能。 JdbcTemplate 具有使用 query 正如您所说的,不必定义列/属性,但是对于 update . 您必须传入sql和相关参数。正如有人提到的,如果您真的想这样做,您可以考虑使用hibernate。

i5desfxk

i5desfxk3#

使用此查询进行更新:-

String updateSql = "update <table_name> set order= ? where id = ?";

jdbcTemplate.update(updateSql, new Object[]{order, orderId});

它将返回受影响的行更新计数。

相关问题