日期:2014-05-18  浏览次数:20687 次

请问,这样数据库参数化查询为什么不成.
最近编了一个bean,是根据参数来动态的设置数据库参数.代码如下.
为了防止sql注入漏洞,所以用的了参数化查询.可是,一旦参数生效,查询结果肯定为零.可数据库中确实有符合条件的记录.我的   mysql   .
  private   void   queryByLocationTotal(String   type,String   address)
        {


                String   sql= " "   ;
                if   (!   type.equals( "-1 "))
{
sql=sql   +   "(   type=   ?   ) ";
}
if   (!   address.equals( "-1 "))
{
sql=sql   +   "(   location   =   ?   ) ";
}

if   (!   sql.equals( " "))  
    sql=   "   where   "   +   sql;
String   sql1= "select   count(*)   from   friend   "   +   sql;

                dbHandler.open();
                dbHandler.setQueryString(sql1);

        Vector   params   =   new   Vector();

  if   (!   type.equals( "-1 "))
{
  params.addElement(type);
}

                              if   (!   address.equals( "-1 "))
{
  params.addElement(address);
}

                ResultSet   rs   =   dbHandler.executeQuery(null);

                //System.out.println(sql);
                if   (rs   !=   null)
                {
                        try
                        {
                                if   (rs.next())
                                        resultCount   =   rs.getInt(1);
                                if   (rs!=null)
                                        rs.close();
                        }catch(SQLException   e)
                        {
                                e.printStackTrace();
                        }
                }
                else
                {
  &nbs