strSql = "delete from abc";
stmt.executeUpdate(strSql);
strSql = "insert into abc(aa) values (1)";
stmt.executeUpdate(strSql);

解决方案 »

  1.   

    当然不行了,你写"delete from abc / insert into abc(aa) values (1)"在sqlplus里也执行不了啊,stmt.execute(strSql);是执行sql语句,第一种把两条分两次执行每条都没问题,你后面写的语法都不合格,怎么可能可以执行呢?
      

  2.   

    用事务
    try{
        //加载驱动程序
    Class.forName(drivername).newInstance();
    //建立连接
        conn=DriverManager.getConnection(url,username,passwd);
    //    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    //    conn.setAutoCommit(false);
        pstmt = conn.prepareStatement("insert into myTable(a)values(?)");
                    pstmt.setString(1,"cc");
                    pstmt.execute();
                    pstmt = conn.prepareStatement("insert into myTable(b)values(?)");
                    pstmt.setString(1,"dd");
                    pstmt.execute();
                    conn.commit();
    //                conn.setAutoCommit(true);
    }catch(SQLException e){
            e.printStackTrace();
        }catch(Exception e){
    e.printStackTrace();
    }
      

  3.   

    事务和存储过程,好像都不是楼主的本意。
    在这里我可以告诉你,用批处理,JDBC也有批处理。//把要处理的SQL语句加到批处理中。
    statement.addBatch("delete from abc");

    statement.addBatch("insert into abc(aa) values (1)");//执行批处理。
    int[] data = statement.excuteBatch();说明:批处理只能用于非查询语句,
    返回的整形数组是什么意思,你可以查看一个API。不知道这样回答你的问题,是否满意。