select * from aaa where (name=? or name is null) and (code=? or code is null)sql如上
参数来自request.getParameter
参数name和code都有可能为空
写法1:
for (int t=0;t<paras.length;t++)
{
String strPara = null;
if (!paras[t].equals(""))
{
strPara = paras[t];
}
out.println(strPara);
pstmt.setObject(t+1,strPara,Types.VARCHAR);
}
写法2:
for (int t=0;t<paras.length;t++)
{
if (!paras[t].equals(""))
{
pstmt.setString(t+1,paras[t]);
}
else
{
pstmt.setNull(t+1,Types.VARCHAR);
}
}都不能出结果,为啥?
参数来自request.getParameter
参数name和code都有可能为空
写法1:
for (int t=0;t<paras.length;t++)
{
String strPara = null;
if (!paras[t].equals(""))
{
strPara = paras[t];
}
out.println(strPara);
pstmt.setObject(t+1,strPara,Types.VARCHAR);
}
写法2:
for (int t=0;t<paras.length;t++)
{
if (!paras[t].equals(""))
{
pstmt.setString(t+1,paras[t]);
}
else
{
pstmt.setNull(t+1,Types.VARCHAR);
}
}都不能出结果,为啥?
可能是aaa,null,或者null ,bbb,或者aaa,bbb,或者null,null
但是除非aaa,bbb进去可以查出对应记录,其他有null的情况下,都不出记录