但是其它的能执行,就只是遇上了部分SQL语句才会出错

解决方案 »

  1.   

    是不是在执行该SQL语句之前,连接被close了??
      

  2.   

    不是这样的,完全相同的操作:比如:
    String value = "";
    PreparedStatement ps = conn.PreparedStatement("inset into(cotent) values(?)");
    ps.setString(1,value);
    ps.execute();
    当改变value的值的时候,这里value是新闻的内容也就是HTML代码
    遇上有写内容会抛出错处,在我所有的新闻里面只有2新闻会出错
    总共有500条左右
      

  3.   

    String value = "";
    PreparedStatement ps = conn.PreparedStatement("inset into(cotent) values(?)");
    ps.setString(1,value);
    ps.execute();
    每一个PreparedStatement 是只能执行一次的,如果你相要执行多次,那么你必须声明多个PreparedStatement ,要么你就用批处理也可以实现多次插入。
      

  4.   

    不好意思这么才来结帖
    -------------------------
    个人认为:
    问题可能出现在预编译中
    因为预编译是用 ? 号替换内容的,那么内容中出现 ? 号 就可能抛错
    对于  '  个符号 用预编译 可以避免了这个问题,内容中出现 ' 个也不会抛错的
    -----------------------------
    回:drugon(personal) 
    关于你说的PreparedStatement只能执行一次,我查了参考资料,这个说法是错误的
    PreparedStatement 的方法的最大用途就在于它预编译一次,可多次执行
    也就是如果你要执行一条相同的SQL语句,只是添加的内容不同而已,那么建议你用预编译的方式
    如果你仅仅只用它来执行一次插入或更新,那么建议你还是用Statement,它比PreparedStatement更有效
    例:
    String sql = "insert into table_1(field_1,field_2) values(?,?)";
    PreparedStatement ps = conn.PreparedStatement(sql);
    for (int i = 0 ;i < 100 ;i++){
        ps.setInt(1,i);
        ps.setInt(2,i);
        ps.execute();
    }
    ps.clearParameters();
    ps.close();