queryRunner有个batch(java.lang.String sql, java.lang.Object[][] params)方法,
开源社区的API文档
http://www.oschina.net/home/apidoc?api=commons-dbutils-1.1
LZ自己去看下吧!
这么好的组件肯定会提供事物处理的啊,多看API文档.................

解决方案 »

  1.   

    刚去做了测试,有事物控制,
    不过需要用这个方法
    batch(Connection conn,java.lang.String sql, java.lang.Object[][] params)
    传入一个conn,
    在此不需要手动设置自动提交,一个conn是一个事物;
    QueryRunner queryRunner = new QueryRunner(true);
    Connection conn = null;
    conn = DataAccess.getConnection();
    queryRunner.batch(conn,"insert into SYS_USER(userid,username) values(?,?)",new String[][]{new String[]{"test1","测试1"},new String[]{"test2222222222222222222222222222222","测试2"}});
    其中第一条数据符合条件,但是第二条数据过长,数据库报错, 事物自动滚回,第一条数据也没有插入到数据库,
    LZ,不知道你是不是要这种事物控制
      

  2.   

    这个我知道了,谢谢!
    我想做基于spring的,请spring管理的那种 
      

  3.   

    #3就已经解决了啊.
    我刚碰到这个问题自己解决了,来网上看看有没有同样困惑的同学.用DBUtils的update语句,如果不指定connection参数,则每次update完,会关掉原来的,使用新的connection(可以打印下connection对象地址自己看看).
    DBUtils的api也说明了,不带connection参数的不支持事务.
    所以这里用带connection参数的就好