关于CachedRowSet的疑问

lj1558092371 2014-12-04 05:54:18
使用CachedRowSet的acceptChanges时候报出这样的异常,是什么原因
异常提示如下
Exception in thread "main" javax.sql.rowset.spi.SyncProviderException: 1 同步时发生冲突
at com.sun.rowset.internal.CachedRowSetWriter.writeData(Unknown Source)
at com.sun.rowset.CachedRowSetImpl.acceptChanges(Unknown Source)
at com.sun.rowset.CachedRowSetImpl.acceptChanges(Unknown Source)
at myproject.CachedRowSetTest.main(CachedRowSetTest.java:64)
...全文
145 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lj1558092371 2014-12-04
  • 打赏
  • 举报
回复
我发现与语句没有问题,出问题的是数据库,只要我的数据表有一个字段用了unsigned not null auto_increment primarykey 他就报错
lj1558092371 2014-12-04
  • 打赏
  • 举报
回复
源代码如下



import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

import javax.sql.rowset.CachedRowSet;
import javax.sql.rowset.RowSetFactory;
import javax.sql.rowset.RowSetProvider;

public class CachedRowSetTest {
	private static String driver;
	private static String url;
	private static String user;
	private static String password;
	public void initParam(String paramFile) throws Exception
	{
		Properties pop=new Properties();
		pop.load(new FileInputStream(paramFile));
		driver=pop.getProperty("driver");
		url=pop.getProperty("url");
		user=pop.getProperty("user");
		password=pop.getProperty("pass");
		
		
	}
	public CachedRowSet query(String sql) throws Exception
	{
		Class.forName(driver);
		Connection conn=DriverManager.getConnection(url, user, password);
		Statement statement=conn.createStatement();
		ResultSet rs=statement.executeQuery(sql);
		RowSetFactory factory=RowSetProvider.newFactory();
		CachedRowSet cachedRowSet=factory.createCachedRowSet();
		cachedRowSet.populate(rs);
		rs.close();
		statement.close();
		conn.close();
		return cachedRowSet;
		
		
	}
   public static void main(String[] args) throws Exception
   {
	   CachedRowSetTest cachedRowSetTest=new CachedRowSetTest();
	   cachedRowSetTest.initParam("F:/新建文件夹 (3)/codes/13/13.4/mysql.ini");
	   CachedRowSet rs=cachedRowSetTest.query("select * from student ");
	   rs.afterLast();
	   while(rs.previous())
	   {
		   System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));
		   if(rs.getInt("id")==6)
		   {
			   rs.updateString("name", "qq");
		       rs.updateRow();
		       //rs.acceptChanges();
		   }
		   
	   }
	   Connection conn=DriverManager.getConnection(url,user,password);
	   conn.setAutoCommit(false);
	   rs.acceptChanges(conn);
	   
	   
	   
   }	

}









62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧