黑马程序员技术交流社区

标题: JDBC-PrepareStatement批处理问题 [打印本页]

作者: 随风而去    时间: 2014-4-15 19:55
标题: JDBC-PrepareStatement批处理问题
我今天用JDBC批处理的时候发现一个很奇怪的问题,求同学们帮我解答解答用PreparedStatement 处理批量的不同的sql 语句时,
stmt = con.prepareStatement("Delete From test Where name like ?");
stmt.setString(1, "li");
这上面的2个没有返回,只有下面的addBatch()这个方法才可以得到返回的结果。

public static int[] testDelBitch(){
                int []  isOK = null;  //批处理返回的是一个int类型的数组
                Connection con = null;
                PreparedStatement stmt = null;
                ResultSet rs = null;
                try {
                        con =getConnection();
                        con.setAutoCommit(false); //设置为手动提交
                        stmt = con.prepareStatement("Delete From test Where name like ?");
                        stmt.setString(1, "li");
                        //添加2个批处理删除sql
                        stmt.addBatch("Delete From test2 Where name='liyi'");
                        stmt.addBatch("Delete From test Where name='liyi'");
                        isOK = stmt.executeBatch();
                        con.commit(); //提交
                } catch (SQLException e) {
                        try {
                                con.rollback(); //如果发生异常,全部回滚
                        } catch (SQLException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                        }

                        e.printStackTrace();
                } finally {
                        try {
                                DButil.close(rs, stmt, con);
                        } catch (SQLException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                }

                return isOK;
        }



返回打印的结果只有2个 应该是有3个的,但是却只有2个成功返回了,但问题是既然还没有报错,百思不得其解,求大神帮助

作者: 随风而去    时间: 2014-4-15 20:42
看的人不少,难道没有人可以解答这问题么..球解答啊,自己先给自己顶个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2