发布网友 发布时间:2022-04-29 17:49
共2个回答
热心网友 时间:2022-05-22 19:57
如果是动态查询,也就是上面的条件个数不确定时,你在后台先做判断哪个条件是需要用的,然后先定义一个String类型的参数,把你需要的条件拼接出来。sql的话就这样写select * from 表明 where 1=1 后面拼接你的条件热心网友 时间:2022-05-22 21:15
具体看你的传参方式。追答AuthUser auth= (AuthUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
String orgids = (String) auth.getUnitInfo().get("UNITSEQ");
StringBuffer sql = new StringBuffer(" SELECT PM.ID ,PM.AREA, PM.DIR_TYPE ,PM.DIR_NAME,PM.PARENT_DIR_ID,PM.ORG_ID FROM PMA_F_PARAM_MENU PM ");
sql.append(" WHERE STAT_FLAG '" + PmaConstantDefine.STST_FLAG_UNEFFECT + "' " );
sql.append(" AND ((PM.AREA = '0' AND PM.ORG_ID = '"+auth.getUnitId()+"') OR (PM.AREA = '1' AND PM.ORG_ID IN ("+orgids+")))");
//如果是中后台,则查询所有条线
if ("99".equals(bussNos.toString())) {//如果是中后台条线,可以查看所有条线
bussNos = new StringBuffer("");
bussNos.append("01,02,98,99");
}
sql.append(" and PM.BUSS_SYS_NO in('"+bussNos.toString().replace(",", "','")+"') ");
setPrimaryKey(" PM.id");
datasource = ds;
SQL = sql.toString();
我这这样的代码太多了,不过并没有专门的例子。 这是查询方法里的一段代码,你可以参考如何根据条件判断添加SQL。