習慣了ssh,一開始還有點不喜歡寫sql,但在找工作的途中,讓我充分認識到sql的重要性,這讓我更加對ssm或者說手寫sql是多麼重要的的一件事。其它的不說了,分享下項目中的使用的sql,什麼通用mapper就讓成爲過去吧!!
1.mapper裏面的list查詢方法
<select id="list" parameterType="xxxxx.AppLittleTodoVo"
resultType="xxxxxx.AppLittleTodoEntity">
select
<include refid="selectColumn"/>,c.cust_name as custName,c.main_mobile as mainMobile,
p.property_name propertyName
from t_app_little_todo as t
LEFT JOIN t_crm_customer c on t.request_cust_code = c.cust_code
left join t_crm_property p on p.property_code=t.request_property_code
<trim prefix="WHERE" prefixOverrides="AND |OR ">
<include refid="queryCondition"/>
</trim>
</select>
2.查詢字段
<sql id="selectColumn">
t.id as id,
t.request_cust_code as requestCustCode,
t.request_property_code as requestPropertyCode,
t.status as status,
t.handle_cust_code as handleCustCode,
DATE_FORMAT(t.handle_time,'%Y-%m-%d %H:%i:%s') as handleTime,
t.remarks as remarks,
DATE_FORMAT(t.operate_date,'%Y-%m-%d %H:%i:%s') as operateDate,
t.operate_user as operateUser
</sql>
3.動態加載查詢條件,無需關注具體哪一個字段,前端傳過來的是一個對象
<sql id="queryCondition">
<if test="id != null and id != ''">
AND t.id = #{id}
</if>
<if test="requestCustCode != null and requestCustCode != ''">
AND t.request_cust_code = #{requestCustCode}
</if>
<if test="requestPropertyCode != null and requestPropertyCode != ''">
AND t.request_property_code = #{requestPropertyCode}
</if>
<if test="status != null and status == 0">
AND t.status = #{status}
</if>
<if test="status != null and status == 1">
AND t.status > #{status}
</if>
<if test="handleCustCode != null and handleCustCode != ''">
AND t.handle_cust_code = #{handleCustCode}
</if>
<if test="handleTime != null and handleTime != ''">
AND t.handle_time = #{handleTime}
</if>
<if test="remarks != null and remarks != ''">
AND t.remarks = #{remarks}
</if>
<if test="operateDate != null and operateDate != ''">
AND t.operate_date = #{operateDate}
</if>
<if test="operateUser != null and operateUser != ''">
AND t.operate_user = #{operateUser}
</if>
<if test="custCode != null and custCode != ''">
AND (t.request_cust_code = #{custCode} or t.handle_cust_code = #{custCode})
</if>
</sql>
總結:在這裏我要說一下,越來越多的項目中的藉口,傳的並不是一個固定的參數,而是一個可變參數(即對象),所以,通過不同的參數,可以獲取想要的數據,同理,這種好處,這可以極大提高接口的利用率。