求java PreparedStatement多条sql解决办法
问题如下:本人现在有三张表,这三张表是有关系的,必须保证数据的完整性,所以在此处需要同时操作三张表,通过事务一次提交到数据库,如果有一个表写入出错需要数据回滚数据。现贴出代码,此代码只能写入最后一条数据,前面数据都是无法写入,希望大家给点办法。
protected void executeBatchUpdate(List<String> sqList,List<Object[]> parasList){ try { for(int i=0;i<sqList.size();i++){ prstmt = conn.prepareStatement(sqList.get(i)); if(parasList != null){ int length = parasList.get(i).length > 0? parasList.get(i).length:0; for(int j=0;j<length;++j){ prstmt.setObject(j+1, parasList.get(i)[j]); } } prstmt.addBatch(); } prstmt.executeBatch(); conn.commit(); } catch (Exception e) { e.printStackTrace(); try { conn.rollback(); } catch (Exception ex) { ex.printStackTrace(); } }finally{ closePrstmt(); } }