public String judgeproduct(rockeggForm rform,String username) throws Exception
{
        String a = null;
        System.out.println(rform.getPid());
//String sql=null;
        String sql = "update product set p2=1 where userid=(select id from user where name=?)" ;
if(rform.getPid().equals("p1"))
{
System.out.println("111111");
sql = "update product set p1=1 where userid=(select id from user where name=?)" ;
System.out.println("13232");
}
else if(rform.getPid().equals("p2")) 
{
System.out.println("22222");
sql = "update product set p2=1 where userid=(select id from user where name=?)" ;
}
else 
{
System.out.println("33333");
sql = "update product set p3=1 where userid=(select id from user where name=?)" ;
}

//String sql = "select ? from product where userid=(select id from user where name=?)" ;
System.out.println(sql);
PreparedStatement pstmt = null ;
    MyDB dbc = null ;
dbc = new MyDB() ;
try
{
pstmt = dbc.getConnection().prepareStatement(sql) ;
//pstmt.setString(1,rform.getPid());
//pstmt.setString(2,username);
pstmt.setString(1,username);
ResultSet rs = pstmt.executeQuery() ;
while(rs.next())
{
System.out.println(rs.getString(1));
a=rs.getString(1);
}
rs.close() ;
pstmt.close() ;
}
catch (Exception e)
{
System.out.println(e) ;
throw new Exception("操作中出现错误!!!") ;
}
finally
{
dbc.close() ;
}
return a;
}这是控制台 输出的信息及错误:p1
111111
13232
update product set p1=1 where userid=(select id from user where name=?)
java.sql.SQLException: Can not issue data manipulation statements with executeQuery().刚开始我想直接把字段名设置成变量。
String sql = "select ? from product where userid=1)" ;
pstmt.setString(1,rform.getPid());请问字段名  可以用 pstmt.setString赋值吗?