("select * from t1 where name=? AND password=?");
ps.setString(1,"yourName");
ps.setString(2,"yourpassword");前面的数字是几就对应第几个问号

解决方案 »

  1.   

    来晚了,就是楼上的方法
    ("select * from t1 where name=? AND password=?");
    ps.setString(1,"yourName");
    ps.setString(2,"yourpassword");
    前面的数字是几就对应第几个问号
      

  2.   

    楼上几位没有看清楚楼主的问题就回答,时间宝贵啊!!!!!!!!!!!!!!!!
    楼主问的是代替字段名称而不是参数值to楼主:字段名称似乎不能作为参数,你可以把sql语句打印出来看看
      

  3.   

    PreparedStatement ps=con.prepareStatement("select * from t1 where "+xxx+" ="+yyy);
    xxx和yyy是2个字符变量,
    写成这样不行吗?
      

  4.   

    哪位能给我个准确的答案?字段名能不能作为PreparedStatement的参数呀?麻烦大家了~~
      

  5.   

    楼主的想法是不可行。这种动态sql是不能用prepare statement。字段都没设定,sql怎么预编译?还是用一般stmt.execute(sqlSstr)
      

  6.   

    段名不能作为PreparedStatement的参数