读书人

请教,这样数据库参数化查询为什么不成

发布时间: 2012-02-28 13:06:35 作者: rapoo

请问,这样数据库参数化查询为什么不成.
最近编了一个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
{
resultCount = 0;
}



dbHandler.close();
}
没办法!请问是什么原因,在保证安全的前提下还有没有其他方法完成类似的问题.谢谢

[解决办法]
preparedStatement
[解决办法]
executeQuery(null);
这是什么意思?
查询条件之间也没有and .
我是一点不懂mysql.

读书人网 >Java Web开发

热点推荐