我是编码新手,但我很享受学习经历。我被困在了,并希望得到一些帮助。 我正在尝试编写一个简单的方法来充值用户余额,下面的充值方法代码,一旦更新量将其写入DB,我使用的是Mysql。
代码正在编译,我在内存中获得了预期的结果,余额已更新,但是它没有写入数据库,也没有错误。我怀疑我的更新查询的实现有问题。我设置了余额,我开始转换,更新,刷新,结束转换,不确定这是否正确。欣赏一些方向。
public void Topup(BigDecimal amount)
{
System.out.println("entering topup method");
EntityManager em = emf.createEntityManager();
if (balance!=null)
{
balance = balance.add(amount);
}
else {
balance = balance.ZERO ;
balance = balance.add(amount);
}
setBalance(balance);
em.getTransaction().begin();
em.createQuery("update Balance set balance = balance where
idsender=idsender")
.executeUpdate();
em.flush();
em.getTransaction().commit();
em.close();
}
答案 0 :(得分:0)
您正在使用相同的常量字符串,"更新余额设置余额=余额,其中idsender = idsender"一直以来。
您需要将变量插入字符串,例如
"update Balance set balance = " + balance + "where idsender = " + someId
当然,您需要将余额转换为字符串,并将someId替换为适当的值。