Java SSM框架里面,Mapper.xml文件
(一)#符號生成的sql語句是作為傳參的
<!-- 獲得數據列表(包括課程相關信息) --> <select id="GetListByUidAndType" resultMap="BaseResultMap" parameterType="Map"> select <include refid="Base_Column_List" /> from my_favorites where uid=#{uid} and type=#{type} <if test="strWhere !=''"> and #{strWhere} </if> <if test="filedOrder!=''"> order by #{filedOrder} </if> limit #{page.startPos},#{page.pageSize} </select>
DEBUG - ==> Preparing: select nid, uid, title,brief, key_value, type, addtime from my_favorites where uid=? and type=? order by ? limit ?,?
DEBUG - ==> Parameters: 1(String), 1(Integer), addtime desc(String), 0(Integer), 10(Integer)
(二)而$符號生成的sql語句是作為占位符顯示的
<!-- 獲得數據列表(包括課程相關信息) --> <select id="GetListByUidAndType" resultMap="BaseResultMap" parameterType="Map"> select <include refid="Base_Column_List" /> from my_favorites where uid=${uid} and type=${type} <if test="strWhere !=''"> and ${strWhere} </if> <if test="filedOrder!=''"> order by ${filedOrder} </if> limit ${page.startPos},${page.pageSize} </select>
DEBUG - ==> Preparing: select nid, uid, title,brief, key_value, type, addtime from my_favorites where uid=1 and type=1 order by addtime desc limit 0,10
DEBUG - ==> Parameters:
(三)需要注意的是:當strWhere為拼接sql語句字符串時,如status=1,這時候使用#號會查不出結果,必須使用$號作為變量
<select id="GetRecordCount" resultType="java.lang.Integer" parameterType="Map"> select count(*) from course_books <if test="strWhere !=''"> where ${strWhere} </if> <if test="filedOrder!=''"> order by #{filedOrder} </if> </select>