MYSQL+JDBC,主键对可写记录集的必要性

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

MYSQL+JDBC,主键对可写记录集的必要性

除了以前发过的mysql的限制 之外,又发现在JDBC编程中的一个限制,代码如下,照说如果按ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE打开记录集,该ResultSet是可以update或insert的,但在mysql里某个表这样操作会抛出Exception,说记录集不能被修改(至少要包含某个主键一类的),于是随便在表上建立个主键就可以了。

没有测试过ADO+MySql的,也没有测试过JDBC+其他数据库。其实对于简单的修改和增加操作,我更倾向于直接调用update/insert SQL语句,而不是打开记录集操作。

public boolean AddOrUpdateCurrPrice(int nPrice) {

try {

String query = "SELECT * FROM futures_current_price WHERE product=?";

PreparedStatement stmt = oConn

.prepareStatement(query, ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

stmt.setString(1, sProduct);

ResultSet rs = stmt.executeQuery();

boolean bAdd = false;

if (rs.last()) {

DebugPrint("update");

} else {

DebugPrint("add");

rs.moveToInsertRow();

rs.updateString("product", sProduct);

bAdd = true;

}

rs.updateString("expiration", sExpiration);

rs.updateInt("price", nPrice);

if (bAdd)

rs.insertRow();

else

rs.updateRow();

rs.close();

stmt.close();

return true;

} catch (Exception e) {

DebugPrint("FPrice Error " + e.getMessage());

return false;

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航