刚接触java连接数据库,上面那个问题希望有人能解释下,越通俗越好,API说得太专业,不怎么好理解,谢谢

解决方案 »

  1.   

    例如学生表里有"学号"和"姓名"两个字段,(学号是是number(9),姓名是varchar2(20).Oracle数据库)
    sql="insert into student values(?,?)";
    PreparedStatement ps=conn.prepareStatement(sql);   //conn是Connection
    ps.setInt(1,202060510);      //"1"对应第一个"?","2"对应第二个"?"
    ps.setString(2,"fannge");
    ps.executeUpdate();
      

  2.   

    parameterIndex 表示的是sql语句中第几个"?", setInt(), 如果你要set的字段是整形的,那就要用它, 如果是Long型的那就要用setLong(), 同理 String型的用setString(). 楼主可以看2楼的例子理解。
      

  3.   

    后面的数不是int 那会怎样啊 不出错吗
      

  4.   

    PreparedStatement是相对于Statement预处理形式的,
    (?,?,...)括号里的?是暂时的“占住位置”
    等你SetXX()的时候才给SQL语句传入参数
      

  5.   

    预处理 顾名思义 是预先储备好。预先编译。。先用‘?’抢占了位置。。然后这个位置‘?’可以随便set值,就像传参数:
    String id="";
    sql="select * from table where id=" + id;
      

  6.   

    不过202060510好像没超出int的范围