https://bbs.csdn.net/topics/395083582之前发错板块了,求路过的大神帮我看看

解决方案 »

  1.   

    比原始语句如:
    String sql =  select * from student where 1=1
    // 模糊匹配就用    like
    if( // 学号对应的值不为空 ){
        sql+=" and 学号=?";
    }if( // 科目对应的值不为空 ){
        sql+=" and 科目=?";
    }if ( //排序方式的值不为空){
         // 前端最好不要直接传字段名,如果直接拼接sql,有注入风险。这里我就省略了
         sql += " order by  " +  排序对应字段名  + " asc 或者 desc";
    }
      

  2.   

    你不提醒我还真忘了考虑sql注入问题,谢谢
      

  3.   

    String sql = "select  ";
    // 例如  科目的值为0:全部,1:语文,2:数学。
    if(//科目==0){
    sql+=" * ";
    } else {
       sql+=" 学号 ";
    }
    if(//科目==1){
    sql+=",语文";
    }
    if(//科目==2){
    sql+=",数学";
    }

    sql+=“ from student where 1=1 ”if( // 学号对应的值不为空 ){
        sql+=" and 学号=?";
    }if ( //排序方式的值不为空){
         // 前端最好不要直接传字段名,如果直接拼接sql,有注入风险。这里我就省略了
         sql += " order by  " +  排序对应字段名  + " asc 或者 desc";
    }
      

  4.   

    是关于多条件筛选查找java 一般用PreperedStatement语句多重筛选吧