作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为我的实体创建了 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=?";
最好的方法是什么?
这也是显示连接的图表。
最佳答案
如果您只想更新 old_price
、new_price
或 lastupdated_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/
我是一名优秀的程序员,十分优秀!