复杂SQLMAP
来源:互联网 发布:淘宝贷款不还会怎样 编辑:程序博客网 时间:2024/05/16 12:06
<sqlMap namespace="tt"> <sql id="ips_subcount_st"> (select count(*) from <iterate property="tableName" conjunction="union" open="(" close=")" > select * from $tableName[]$ </iterate> t11 where t11.$groupBy$=t1.$groupBy$ and serverity <![CDATA[ > ]]>${serverity_high}) as highServeCount , (select count(*) from <iterate property="tableName" conjunction="union" open="(" close=")" > select * from $tableName[]$ </iterate> t11 where t11.$groupBy$=t1.$groupBy$ and serverity <![CDATA[ > ]]>${serverity_low} and serverity <![CDATA[ <= ]]>${serverity_high}) as midServeCount , (select count(*) from <iterate property="tableName" conjunction="union" open="(" close=")" > select * from $tableName[]$ </iterate> t11 where t11.$groupBy$=t1.$groupBy$ and serverity <![CDATA[ <= ]]>${serverity_low}) as lowServeCount , </sql> <select id="t_Ips" parameterClass="java.util.HashMap" resultClass="com.***.Ips"> select t1.neId as neId, t2.neName as neName, t2.sn as sn, t3.name as ifName, t1.srcIp as srcIp, t1.dstIp as dstIp, t1.sigName as sigName, t1.serverity as serverity, <isEqual property="groupBy" compareValue="ifName"> (select count(*) from <iterate property="tableName" conjunction="union" open="(" close=")" > select * from $tableName[]$ </iterate> t11 where t11.ifId=t1.ifId and serverity <![CDATA[ > ]]>${serverity_high}) as highServeCount , (select count(*) from <iterate property="tableName" conjunction="union" open="(" close=")" > select * from $tableName[]$ </iterate> t11 where t11.ifId=t1.ifId and serverity <![CDATA[ > ]]>${serverity_low} and serverity <![CDATA[ <= ]]>${serverity_high}) as midServeCount , (select count(*) from <iterate property="tableName" conjunction="union" open="(" close=")" > select * from $tableName[]$ </iterate> t11 where t11.ifId=t1.ifId and serverity <![CDATA[ <= ]]>${serverity_low}) as lowServeCount , </isEqual> <isEqual property="groupBy" compareValue="neId"> <include refid="ips_subcount_st" /> </isEqual> <isEqual property="groupBy" compareValue="srcIp"> <include refid="ips_subcount_st" /> </isEqual> <isEqual property="groupBy" compareValue="dstIp"> <include refid="ips_subcount_st" /> </isEqual> <isNotEqual property="groupBy" compareValue="ifName"> <isNotEqual property="groupBy" compareValue="neId"> <isNotEqual property="groupBy" compareValue="srcIp"> <isNotEqual property="groupBy" compareValue="dstIp"><!-- 这个地方不这样搞一下的话,会导致resultClass中的三个属性没有值,会出错。 --> 0 as highServeCount, 0 as midServeCount, 0 as lowServeCount, </isNotEqual> </isNotEqual> </isNotEqual> </isNotEqual> sum(t1.sponsorNum) as sponsorNum , sum(t1.victimNum) as victimNum, t2.domainId as groupId, t6.domainName as groupName, t1.insertTstamp as timestamp from <iterate property="tableName" conjunction="union" open="(" close=")" > select * from $tableName[]$ </iterate> t1 left join ( select neId,neName,sn,domainId from h_db.t_NeInfo) t2 on (t1.neId=t2.neId ) left join (select neId,ifId,name from h_db.t_IfInfo) t3 on (t1.neId=t3.neid and t1.ifId=t3.ifId) left join (select domainId,domainName from h_db.t_Domain) t6 on t2.domainId=t6.domainId <dynamic prepend="WHERE"> <isGreaterThan prepend="AND" property="neId" compareValue="0"> t1.neId=#neId:INTEGER# </isGreaterThan> <isGreaterThan prepend="AND" property="groupId" compareValue="0"> t2.domainId=#groupId:INTEGER# </isGreaterThan> <isNotEmpty prepend="AND" property="ifName"> t3.name=#ifName# </isNotEmpty> <isNotEmpty prepend="AND" property="neList"> t1.neId in <iterate property="neList" conjunction="," open="(" close=")" > #neList[]# </iterate> </isNotEmpty> <isNotEmpty prepend="AND" property="groupList"> t2.domainId in <iterate property="groupList" conjunction="," open="(" close=")" > #groupList[]# </iterate> </isNotEmpty> <isNotEmpty prepend="AND" property="beginTime"> t1.insertTstamp<![CDATA[ >= ]]>#beginTime:TIMESTAMP# </isNotEmpty> <isNotEmpty prepend="AND" property="endTime"> t1.insertTstamp<![CDATA[ <= ]]>#endTime:TIMESTAMP# </isNotEmpty> </dynamic> <isNotEmpty property="groupBy"> group by $groupBy$ </isNotEmpty> <isNotEmpty property="orderBy"> order by $orderBy$ </isNotEmpty> <isGreaterThan property="topN" compareValue="0"> limit #topN:INTEGER# </isGreaterThan> </select></sqlMap>