下面的这个恒等1=1,我见到过这样写但是不是特别理解这个是什么意思。为什么不能直接
写下面中的内容非要在前面加上一个1=1?
第二个问题是:parametype="map"这是以前就没有见过这么写过。这么写,接口中的参数怎么写?前端网后端传的时候怎么传呢?后台怎么接收呢?求解啊????
下面的这个恒等1=1,我见到过这样写但是不是特别理解这个是什么意思。为什么不能直接
写下面中的内容非要在前面加上一个1=1?
第二个问题是:parametype="map"这是以前就没有见过这么写过。这么写,接口中的参数怎么写?前端网后端传的时候怎么传呢?后台怎么接收呢?求解啊????
先来讲解一下第一个红色框:这个表示的是在下面使用#{变量名} 的来源是一个Map对象。这里的Map对象是参入的参数,而这个Map对象里面存放了
下面的bnId 、bnName、bnPId这些变量,这些变量就是Map里面放入的key,下面的这个例子:
Map map = new HashMap<>();
map.put("bnId", "a");
map.put("bnName", "b");
map.put("bnPId", "c");
dao.getBSNetTree(map);
第二个问题:
SELECT * FROM T_BUS_NET WHERE 1=1
AND BN_ID = #{bnId}
AND BN_NAME = #{bnName}
AND BN_PID = #{bnPId}
ORDER BY BN_PID
当: bnId、bnName、bnPId这几个变量值都为null的时候,sql语句就变成了:
SELECT * FROM T_BUS_NET WHERE 1=1 ORDER BY BN_PID
如果没有这个1=1作为where的条件,那么sql将变更成下面这个样子,那么这个sql的语法就是错误的,程序就会出现异常:
SELECT * FROM T_BUS_NET WHERE ORDER BY BN_PID
应该能明白了吧?