今天做开发遇到一个很费解的问题,哪位理解给解释一下,小弟在此先谢过。
public StatistalResult resultForColumn(String FKS,String column){
int count = 0;
conn = DbUtil.getConnection();
String sql = "SELECT  ? from  test t where t.FKS =? 
StatistalResult  sr = new StatistalResult();
try{
pstmt = conn.prepareStatement(sql);
 pstmt.setString(1, column);
pstmt.setString(2, FKS);
System.out.println(sql);
rs = pstmt.executeQuery();调用方式  StatistalResult  sr = pd.resultForColumn("神经外科","F1_1");  
一直报错,查出的结果都是传入的参数F1_1数据库中的结果如果换用:
public StatistalResult resultForColumn(String FKS,String column){  
        int count = 0;  
        conn = DbUtil.getConnection();  
        String sql = "SELECT  "+column+" from  test t where t.FKS =? ";  
          
        StatistalResult  sr = new StatistalResult();  
        try{  
            pstmt = conn.prepareStatement(sql);  
               pstmt.setString(1, FKS);  
                System.out.println(sql);  
                rs = pstmt.executeQuery();
>就可以获得正常的想要的结果了。
不知道是怎么回事?
哪位能解释一下,小弟不胜感激。

解决方案 »

  1.   

    PreparedStatement不能这么用的吧?
      

  2.   

    String sql = "SELECT  ? from  test t where t.FKS =?  
    StatistalResult  sr = new StatistalResult();
    这里为啥要加 ?
      

  3.   

    那个  是html代码中不小心加上的 
    语句为:
    String sql = "SELECT ? FROM  test  t where t.FKS =?"
    其中第二个?可以正常传入参数,select 后面的查询内容用?赋值后无用
      

  4.   

    那个  是html代码中不小心加上的 
    语句为:
    String sql = "SELECT ? FROM  test  t where t.FKS =?"
    其中第二个?可以正常传入参数,select 后面的查询内容用?赋值后无用