永发信息网

java后台根据条件查询怎么写呀

答案:2  悬赏:30  手机版
解决时间 2021-11-10 20:29
  • 提问者网友:王者佥
  • 2021-11-10 08:25
java后台根据条件查询怎么写呀
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-11-10 08:34
如果是动态查询,也就是上面的条件个数不确定时,你在后台先做判断哪个条件是需要用的,然后先定义一个String类型的参数,把你需要的条件拼接出来。sql的话就这样写select * from 表明 where 1=1 后面拼接你的条件
全部回答
  • 1楼网友:洎扰庸人
  • 2021-11-10 10:03
具体看你的传参方式。

一般用request.getParameter得到参数
用if else 判断是否有值
如果有 添加sql就可以。
用StringBuffer的话,可以直接append
用String的话 直接+就可以

后台一般是先写好基础sql 比如 select * from a where 1>0 ,
然后添加 and条件追问传json值不过现在前台没做先做后台,有相关代码看看嘛追答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。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯