我先用select语句检验 String sql="select ? from student";
PreparedStatement stmt=con.prepareStatement(sql);
stmt.setString(1,name);
ResultSet rs=stmt.executeQuery();当我输出是lable 竟然是?,然后底下的数据都显示 name 这四个字母然后我用update检验,运行事又说是 
SQLException: Driver does not support this function
怎么回事啊

解决方案 »

  1.   

    这样是不行的
    setString会把name的值加上引号,例如name的值是abc,则执行的语句是
    select 'abc' from student
    输出的当然是abc拉。参数只能是字段值。例如:
    UPDATE _Function SET name=?,no=?,url=?,orderID=?,layer=?,parentID=?,hasChild=?,note=? WHERE functionID=?
      

  2.   

    我刚采用你的方法,完成了select,谢谢,
    可是,在update时,我不知道PreparedStatement对象,如果再要进行查询只能
    在建立一个PreparedStatement对象或者statement 再进行查询吗
      

  3.   

    你要把autocommit设为false,
    在sql语句中加上for update试试看
      

  4.   

    一个PreparedStatement对象可以重复使用多次,Statement也是
      

  5.   

    如果PreparedStatement产生一个update对象,
    String sql1="update student set name='lym' where age='20'";
    PreparedStatement stmt=con.prepareStatement(sql1);
    我现在不知道要是进行查询的话该怎么办
    给我个例子,
      

  6.   

    如果要执行的话,就stmt.executeUpdate();如果要清空sqll stmt.clearParameters();这样 你的stst 又可以运行不同的sql语句了。
      

  7.   

    to : dong03() 
    我想实现和下面相同的结果
            String sql="select * from student";
            String sql1="update student set name='liu' where age='20'";
            PreparedStatement stmt1=con.prepareStatement(sql1);
            stmt1.executeUpdate();
            Statement stmt = con.createStatement();
           
            ResultSet rs=stmt.executeQuery(sql);
                     这样就重新定义了一个statement对象,如果不重新定义可以吗,
             statement是PreparedStatement 的超类,用你说的清除了以后,
             海是不可以再进行查询stmt.clearParameters();
                            Resultset    rs1=stmt1.executeQuery(sql);