我正在查看参考文献here。我们可以做到这一点-
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);
有没有办法做到这一点?
答案 0 :(得分:0)
否,不可能。 JdbcTemplate
可以使用query
映射对象,而不必定义列/属性,但是update
没有等效用法。您将必须传递您的SQL和相关参数。正如有人提到的那样,如果您真的想要这样做,您可以考虑使用休眠模式。
答案 1 :(得分:0)
不!您只能这样做!
jdbcTemplate.update("update ordertable set order = ? where id = ?", order, orderId);
答案 2 :(得分:0)
使用此查询进行更新:-
DeliveryReceiptManager d = DeliveryReceiptManager.getInstanceFor(connection);
d.addReceiptReceivedListener(new ReceiptReceivedListener() {
@Override
public void onReceiptReceived(Jid fromJid, Jid toJid, String receiptId, Stanza receipt) {
Log.i("delivery", "for: " + receiptId + " received");
//here you can use sid or receiptId to identify which message is delivered
}
});
它将返回受影响的行更新计数。