<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="gc">
<!-- 基础查询 -->
<select id="query" parameterType="Map" resultMap="gcMap.subplateMap">
SELECT PL.PLID,PL.PLNAME,PL.PLTYPE,PL.BRANCH,PL.PLICON,PL.PLFILE,
(SELECT ORG_CHINA_NAME FROM BMC_BRANCH WHERE BUSINESS_ORG = PL.BRANCH) BRANCHCHN,
(SELECT CODE_TYPE_DESC FROM CODE_STRING WHERE TRIM(CODE_TYPE) = 'plType' AND CODE_VALUE = PL.PLTYPE) PLTYPECHN,
(SELECT CODE_TYPE_DESC FROM CODE_STRING WHERE TRIM(CODE_TYPE) = 'plStatus' AND CODE_VALUE = PL.PLSTATUS) PLSTATUSCHN,
PL.DESCRIPTION,PL.PLSTATUS,PL.CREATEUSERID,PL.CREATEUSERNAME,PL.CREATEUSERDATE,
PL.LASTMODIFYUSERID,PL.LASTMODIFYUSERNAME,PL.LASTMODIFYTIME,
PL.PUBLISHUSERID,PL.PUBLISHUSERNAME,PL.PUBLISHTIME
FROM (
SELECT ROWNUM AS ROWNO,PO.*
FROM (
SELECT P.PLID,P.PLNAME,P.PLTYPE,P.BRANCH,P.PLICON,P.PLFILE,P.DESCRIPTION,P.PLSTATUS,
O.CREATEUSERID,O.CREATEUSERNAME, TO_CHAR(O.CREATEUSERDATE,'YYYY-MM-DD HH24:MI:SS') CREATEUSERDATE,
O.LASTMODIFYUSERID,O.LASTMODIFYUSERNAME, TO_CHAR(O.LASTMODIFYTIME,'YYYY-MM-DD HH24:MI:SS') LASTMODIFYTIME,
O.PUBLISHUSERID,O.PUBLISHUSERNAME, TO_CHAR(O.PUBLISHTIME,'YYYY-MM-DD') PUBLISHTIME
FROM BMC_SUBPLATE P LEFT JOIN BMC_SUBOPERATER O
ON P.PLID = O.PLID
WHERE 1=1
<!-- 以下配置是根据查询条件增添不同的sql -->
<if test="branch != null and branch != ''">
AND P.BRANCH = #{branch}
</if>
<if test="branchs != null and branchs != ''">
AND P.BRANCH = #{branchs}
</if>
<if test="plName != null and plName != ''">
AND P.PLNAME LIKE '%'||#{plName}||'%'
</if>
<if test="plType != null and plType != ''">
AND P.PLTYPE = #{plType}
</if>
<if test="plStatus != null and plStatus != ''">
AND P.PLSTATUS = #{plStatus}
</if>
<if test="createBeginDate != null and createBeginDate != ''">
AND O.CREATEUSERDATE >= TO_DATE(#{createBeginDate},'YYYY-MM-DD')
</if>
<if test="createEndDate != null and createEndDate != ''">
AND O.CREATEUSERDATE <= (TO_DATE(#{createEndDate},'YYYY-MM-DD')+1)
</if>
<if test="lastModifyBeginDate != null and lastModifyBeginDate != ''">
AND O.LASTMODIFYTIME >= TO_DATE(#{lastModifyBeginDate},'YYYY-MM-DD')
</if>
<if test="lastModifyEndDate != null and lastModifyEndDate != ''">
AND O.LASTMODIFYTIME <= (TO_DATE(#{lastModifyEndDate},'YYYY-MM-DD')+1)
</if>
<if test="publishBeginDate != null and publishBeginDate != ''">
AND O.PUBLISHTIME >= TO_DATE(#{publishBeginDate},'YYYY-MM-DD')
</if>
<if test="publishEndDate != null and publishEndDate != ''">
AND O.PUBLISHTIME <= (TO_DATE(#{publishEndDate},'YYYY-MM-DD')+1)
</if>
<if test="createUserID != null and createUserID != ''">
AND O.CREATEUSERID = #{createUserID}
</if>
<if test="createUserName != null and createUserName != ''">
AND O.CREATEUSERNAME = #{createUserName}
</if>
<if test="lastModifyUserID != null and lastModifyUserID != ''">
AND O.LASTMODIFYUSERID = #{lastModifyUserID}
</if>
<if test="lastModifyUserName != null and lastModifyUserName != ''">
AND O.LASTMODIFYUSERNAME = #{lastModifyUserName}
</if>
<if test="publishUserID != null and publishUserID != ''">
AND O.PUBLISHUSERID = #{publishUserID}
</if>
<if test="publishUserName != null and publishUserName != ''">
AND O.PUBLISHUSERNAME = #{publishUserName}
</if>
ORDER BY O.CREATEUSERDATE DESC,P.PLNAME ASC
) PO
WHERE ROWNUM <= #{endSet}
) PL
WHERE PL.ROWNO >= #{beginSet}
</select>
<!-- 分类码查询 -->
<select id="codeListByCode" parameterType="CodeString" resultType="CodeString">
SELECT TRIM(C.CODE_TYPE),C.CODE_VALUE,C.CODE_TYPE_DESC,C.CODE_DESC,C.CODE_FLAG
FROM CODE_STRING C
WHERE TRIM(C.CODE_TYPE) = #{code_type}
</select>
<!-- 记录数查询 -->
<select id="queryCount" parameterType="Map" resultType="int">
SELECT COUNT(*)
FROM BMC_SUBPLATE P LEFT JOIN BMC_SUBOPERATER O
ON P.PLID = O.PLID
WHERE 1=1
<!-- 以下配置是根据查询条件增添不同的sql -->
<if test="branch != null and branch != ''">
AND P.BRANCH = #{branch}
</if>
<if test="branchs != null and branchs != ''">
AND P.BRANCH = #{branchs}
</if>
<if test="plName != null and plName != ''">
AND P.PLNAME LIKE '%'||#{plName}||'%'
</if>
<if test="plType != null and plType != ''">
AND P.PLTYPE = #{plType}
</if>
<if test="plStatus != null and plStatus != ''">
AND P.PLSTATUS = #{plStatus}
</if>
<if test="createBeginDate != null and createBeginDate != ''">
AND O.CREATEUSERDATE >= TO_DATE(#{createBeginDate},'YYYY-MM-DD')
</if>
<if test="createEndDate != null and createEndDate != ''">
AND O.CREATEUSERDATE <= (TO_DATE(#{createEndDate},'YYYY-MM-DD')+1)
</if>
<if test="lastModifyBeginDate != null and lastModifyBeginDate != ''">
AND O.LASTMODIFYTIME >= TO_DATE(#{lastModifyBeginDate},'YYYY-MM-DD')
</if>
<if test="lastModifyEndDate != null and lastModifyEndDate != ''">
AND O.LASTMODIFYTIME <= (TO_DATE(#{lastModifyEndDate},'YYYY-MM-DD')+1)
</if>
<if test="publishBeginDate != null and publishBeginDate != ''">
AND O.PUBLISHTIME >= TO_DATE(#{publishBeginDate},'YYYY-MM-DD')
</if>
<if test="publishEndDate != null and publishEndDate != ''">
AND O.PUBLISHTIME <= (TO_DATE(#{publishEndDate},'YYYY-MM-DD')+1)
</if>
<if test="createUserID != null and createUserID != ''">
AND O.CREATEUSERID = #{createUserID}
</if>
<if test="createUserName != null and createUserName != ''">
AND O.CREATEUSERNAME = #{createUserName}
</if>
<if test="lastModifyUserID != null and lastModifyUserID != ''">
AND O.LASTMODIFYUSERID = #{lastModifyUserID}
</if>
<if test="lastModifyUserName != null and lastModifyUserName != ''">
AND O.LASTMODIFYUSERNAME = #{lastModifyUserName}
</if>
<if test="publishUserID != null and publishUserID != ''">
AND O.PUBLISHUSERID = #{publishUserID}
</if>
<if test="publishUserName != null and publishUserName != ''">
AND O.PUBLISHUSERNAME = #{publishUserName}
</if>
</select>
<!-- 直属机构查询 -->
<select id="branchs" resultType="Branch">
SELECT B.BUSINESS_ORG,B.ORG_CHINA_NAME
FROM BMC_BRANCH B
WHERE B.ORG_MANAGE_LEV = 1
</select>
<!-- 查询时检查用户是否存在 -->
<select id="checkUser" parameterType="Map" resultType="int">
SELECT COUNT(*)
FROM BMC_SUBOPERATER
WHERE 1=1
<if test="createUserName != null and createUserName != ''">
AND CREATEUSERNAME = #{createUserName}
</if>
<if test="createUserID != null and createUserID != ''">
AND CREATEUSERID = #{createUserID}
</if>
<if test="lastModifyUserID != null and lastModifyUserID != ''">
AND LASTMODIFYUSERID = #{lastModifyUserID}
</if>
<if test="lastModifyUserName != null and lastModifyUserName != ''">
AND LASTMODIFYUSERNAME = #{lastModifyUserName}
</if>
<if test="publishUserID != null and publishUserID != ''">
AND PUBLISHUSERID = #{publishUserID}
</if>
<if test="publishUserName != null and publishUserName != ''">
AND PUBLISHUSERNAME = #{publishUserName}
</if>
</select>
</mapper>
另外
LIKE 语句 %匹配一或多个字符 _匹配一个字符
CODE_VALUE LIKE '01%' 表示搜索CODE_VALUE以01开头的记录
但在mybatis的配置文件中,不能这样直接写, 要想实现动态 必须用到CONCAT函数 把两个参数连接成一个字符串
如 CODE_VALUE LIKE CONCAT(#{code_value},'%')