数据库(批处理, 事务,CachedRawSetImpl类

时间:2023-03-09 08:23:55
数据库(批处理, 事务,CachedRawSetImpl类

链接对象son产生的Statement SQL对象对数据库提交的任何一条语句都会被立刻执行

不方便我们进行一些连招操作

我们可以关闭它的自动提交,然后操作完再开,这过程称作事务

con.setAutoCommit(false);
//...一番操作
con.commit()//执行
con.setAutoCommit(true);//重新开
//....如果出错,还可以回到过去
catch(Exception e){
try{
con.rollback();//如果出现问题,调用这个语句回到操作前
}
catch(SQLException e){}
System.out.println(e.getMessage());
System.out.println("22");
}

有人觉得和数据库交互时,Statement对象发福执行execute()方法,很麻烦,所以JDBC提供了批处理的功能

sql.addBatch("sql语句")
sql.addBatch("sql语句")
sql.addBatch("sql语句")
int []number=sql.executeBatch();//可以一次执行多个语句

不过批处理过程不允许失败,所有要是先关闭链接对象的自动提交模式,即将批处理作一个事务来对待


CachedRawSetImpl类

我们知道ResultSet对象处理Sql语句查询的纪录,他和Statement对象高度耦合

而且关闭连接后,ResultSet对象将不能保存数据

避免长时间链接数据库,

我们可以用实现CachedRowSet接口的CachedRowSetImpl类来保存ResultSet的数据

CachedRowSet rowSet1=new CachedRowSet();
rowSet1.populate(一个ResuleSet的实例)