一,在 where 中 加入 1=1
select * from table where 1=1与select * from table 看上去时没有什么区别的,在普通的查询的时候的确没有什么区别,但是如果你的sql语句是 String sql=sql + string1 这种加上一个或几个字符串变量的时候就要注意了。这种时候很有可能会被SQL注入。 比如 select * from table where name="luck" or 1=1 如果注入了or 后面这一段代码的话那么整个查询语句就变成了无约束的了。
if(!name.equals("")){ sql=sql+"name='"+name+"'"; }
如果不写1=1那么在每一个不为空的查询条件前,都要判断有没有where字句。否走要在第一个出现的地方加上
where 1=1 的 写法是为了简化程序中对条件的检测