stmt=conn.prepareStatement("select * from table where type_field=?");
stmt.setString(1, "U");
rs=stmt.executeQuery();
查询不到任何数据
如果直接写stmt=conn.prepareStatement("select * from table where type_field='U'");不使用stmt.setString(1, "U");就能正常查询到结果,这是怎么回事呀?
我用的class12jdbc驱动。

解决方案 »

  1.   

    stmt.executeQuery()中去执行的只是一个’U‘而不是一个有效的语句来着。你可以把要执行的语句response.write出来看一下。
      

  2.   

    自己搞定
    oracle真弱智。type_field列定义为char(2),所以改成stmt.setString(1,"U ");注意,U后面有一个空格。就可以查询到相映结果。在SQL Server中就没有这个问题。
    如果我定义了个char(10)写判断的时候就要写setString(1,"U+10个空格")哭死!!