gpt4 book ai didi

java - 如何在 DAO 中传递对象字段?

转载 作者:行者123 更新时间:2023-12-01 22:15:43 25 4
gpt4 key购买 nike

我为我的实体创建了 DAO。现在我有一个问题:我需要在某些方法中传递另一个对象的字段。例如:

@Override
public void updateById(PriceTrack priceTrack, int id) throws DBException {
PreparedStatement ps = null;
try {
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
conn.setAutoCommit(false);
ps = conn.prepareStatement(UPDATE_BY_ID);
ps.setInt(1, priceTrack.getOldPrice());
ps.setInt(2, priceTrack.getNewPrice());
ps.setDate(3, new java.sql.Date(priceTrack.getLastUpdatedPrice().getTime()));
// todo - pass Appartment id
ps.setObject(4, new Apartment());
ps.executeUpdate();
conn.commit();
} catch (SQLException e) {
JdbcUtils.rollbackQuitely(conn);
throw new DBException("Cannot execute SQL = '" + UPDATE_BY_ID + "'", e);
} finally {
JdbcUtils.closeQuitely(ps);
JdbcUtils.closeQuitely(conn);
}
}

这里我需要传递相应的Aparment_id值。创建 new Apartment() 是错误的。

UPDATE_BY_ID的内容:

    public static final String UPDATE_BY_ID = "UPDATE price_track SET old_price=?, new_price=?, lastupdated_price=?, apartment_id=?";

最好的方法是什么?

这也是显示连接的图表。 enter image description here

最佳答案

如果您只想更新 old_pricenew_pricelastupdated_price,则不一定要更新 aparment_id,因为它是外键。假设它不会改变是合乎逻辑的。您可以从查询中删除 aparment_id:

UPDATE price_track SET old_price=?, new_price=?, lastupdated_price=?

并从代码中适当删除 ps.setObject(4, new Apartment());

JDBC 需要手动配置,并且它不会自动执行任何操作。

关于java - 如何在 DAO 中传递对象字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31071446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com