PerparedStatement 有一个方法
setXXX();这个方法是什么意思,具体什么功能。我需要详解,请帮帮忙吧

解决方案 »

  1.   

    创建PerparedStatement的时候,需要一个SQL语句,这个SQL语句里会用一个问号来代表一下.然后使用具体的值去替换比如说:sql="insert into table(files) values(?)";
    PerparedStatement  r = conn.preparedStatement(sql);
    r.setString(1,"aaa");
    如果说我们使用一般的SQL拼装的时候,我们要注意 是字符串的时候要加上'',使用PerparedStatement 的这个功能之后,它会自己的帮我们处理.
    PerparedStatement还有一个大的效率问题就是能够 把SQL语句缓存起来,下次再调用这样的SQL语句时候,数据库不需要再去编译了,直接运行就OK了.
    个人见解.
      

  2.   

    在生成PreparedStatement对象时,在SQL语句中用?标出参数,在调用执行方法之前使用setXXX()方法为参数赋值,XXX是与参数相对应的类型,setXXX()方法的第一个参数为索引,第一个?的索引为1。
    PreparedStatement ps=con.prepareStatement(“select * from table1 where id=? And name=?”);
    ps.setInt(1,nID);
    ps.setString(2,strName);
    ps.executequery();
      

  3.   

    setXXX(); xxx一般来说是某种类型.
    比如说setString(1,"aaa");
    这里的意思就是说,让SQL里的第一个问号的值为"aaa"字符串(String).
    可能还会有
    setInt(2,10);
    让SQL里的第二个问号的值为int的10;
      

  4.   

    PerparedStatement
    PerparedStatement是statement的一个子类,
    statement的excute方法一般执行的是没有进行变量绑定的sql如:
    insert into tableName(col1,col2,col3...)values(valu1,valu2,valu3...);
    而PerparedStatement的excute方法执行的是需要变量绑定的sql语句如:
    insert into tanleName()(col1,col2,col3...)values(?,?,?.......);
    所谓变量绑定的定义自己查查,简单点解释就是语句运行之前给语句赋值(解释的不好)
    所以在语句执行之前你要把值告诉sql语句啊
    所以你要用PerparedStatament的setXXXX()方法来把值给sql语句
      

  5.   

    设置参数...
    setXXX(pos,value);  XXX表示参数类型 ,pos 表示参数位置
      

  6.   


    表示预编译的 SQL 语句的对象。 SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。 注:用于设置 IN 参数值的设置方法(setShort、setString 等等)必须指定与输入参数的已定义 SQL 类型兼容的类型。例如,如果 IN 参数具有 SQL 类型 INTEGER,那么应该使用 setInt 方法。 如果需要任意参数类型转换,使用 setObject 方法时应该将目标 SQL 类型作为其参数。 在以下设置参数的示例中,con 表示一个活动连接:    PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                         SET SALARY = ? WHERE ID = ?");
       pstmt.setBigDecimal(1, 153833.00)
       pstmt.setInt(2, 110592)
      

  7.   

    这个预编译SQL,需要去设置参数的值,setXXX()就是去设置上面?号的值
      

  8.   

    用PreparedStatement可以避免很多错误