php,pdo方式,没用任何框架。这是前提条件,不可改变。
比如,现在只有一张学生表student,包含了所有学生相关信息(id,学号,姓名,班级。。。)。
比如班级筛选,我可以选1班,2班,3班,或者选“任何班级”。
类似这样的筛选条件,非常多。
如果班级参数是”任何班级”,语句就是select from student;不是“任何班级”,语句就是select from student where class = ?。
关键是这样的筛选条件实在是太多了,每一个筛选条件都有“任何”这样一个选项。还有很多筛选选项是类似年龄10-20这样的范围,还有的是类似名字包含“飞”,就是like “%飞%”这样的形式。
如果我针对这么多筛选项一个个判断,那要写太多的判断代码,可能出现的sql语句形式也太多了,难道我要针对所有出现的情况去执行不同的sql语句吗?
1、组合拼接SQL语句,不需要每种情况写一次SQL。
2、String sql = "select from student where 1=1 ";
if(全选)
{
sql = sql + " and class in (1,2,3) ";
}else
{
sql = sql + " and class =? ";
}
3、对于Like,注意拼接时候,检查过滤参数,防止SQL注入。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。