查询JDBC,不支持ResultSet

时间:2013-08-23 08:14:47

标签: java sql jdbc

我有两个与相同代码相关的问题:

CachedRowSet cachedRow = new CachedRowSetImpl();
cachedRow.setUrl("jdbc:mysql://localhost:3306/test");
cachedRow.setUsername("root");
cachedRow.setPassword("StackOverKindOfThing");
cachedRow.setCommand("SELECT * FROM books");
cachedRow.execute();
int [] arrayKey = {1};

//cachedRow.setKeyColumns(arrayKey); // I can even omit this line and it works anyway;
cachedRow.next();
cachedRow.updateString(2, "ball");
cachedRow.updateRow();  
cachedRow.acceptChanges();//it works with cachedRow.acceptChanges(con) where con
                          //has been initialized and has been set on setAutoCommit(false);

这是我通过使用.setUrl(“url”)设置的CachedRowSet获得的异常;

at CachedThingSet.main(CachedThingSet.java:31)
javax.sql.rowset.spi.SyncProviderException: Can't call commit when autocommit=true

1)我想知道为什么我可以将数据插入到数据库中,即使tutorial说它不可能(setKeyColumn()方法已被注释掉):

  

设置关键列

     

如果你要对crs对象进行任何更新并想要那些   保存在数据库中的更新,您必须再设置一个   信息:关键栏目。

为什么我必须与autocommit(false)建立连接才能使用CachedRowSet(更新一行),否则我会得到SyncProviderException: can't call commit when autocommit=true 无论如何我可以设置从setUrl("url");获得的连接,而不使用acceptChanges(con)其中con是另一个与autocommit(false)的连接集

0 个答案:

没有答案