mybatis映射和条件查询
mybatis
mybatis绑定接口
<mapper namespace="com.ruoyi.web.practice.mapper.CmsLinkMapper">
mybatis映射(数据库的字段与实体类的映射)
<resultMap type="CmsLink" id="CmsLinkResult">
<result property="linkId" column="link_id" />
<result property="siteId" column="site_id" />
<result property="linkName" column="link_name" />
<result property="linkUrl" column="link_url" />
<result property="linkImage" column="link_image" />
<result property="clicks" column="clicks" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
<result property="sort" column="sort" />
<result property="isShow" column="is_show" />
<result property="status" column="status" />
<result property="remark" column="remark" />
</resultMap>
把公共的的sql语句提取出来
<sql id="selectCmsLinkVo">
select link_id, site_id, link_name, link_url, link_image, clicks, create_time, update_time, sort, is_show, status, remark from cms_link
</sql>
把公共的的sql语句通过Id引过来
<select id="selectCmsLinkList" parameterType="CmsLink" resultMap="CmsLinkResult">
<include refid="selectCmsLinkVo"/>
<where>
<if test="siteId != null "> and site_id = #{siteId}</if>
<if test="linkName != null and linkName != ''"> and link_name like concat('%', #{linkName}, '%')</if>
<if test="linkUrl != null and linkUrl != ''"> and link_url = #{linkUrl}</if>
<if test="linkImage != null and linkImage != ''"> and link_image = #{linkImage}</if>
<if test="clicks != null "> and clicks = #{clicks}</if>
<if test="sort != null and sort != ''"> and sort = #{sort}</if>
<if test="isShow != null and isShow != ''"> and is_show = #{isShow}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
</where>
</select>
插入语句设置条件
<insert id="insertCmsLink" parameterType="CmsLink" useGeneratedKeys="true" keyProperty="linkId">
insert into cms_link
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="siteId != null">site_id,</if>
<if test="linkName != null and linkName != ''">link_name,</if>
<if test="linkUrl != null">link_url,</if>
<if test="linkImage != null">link_image,</if>
<if test="clicks != null">clicks,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="sort != null">sort,</if>
<if test="isShow != null">is_show,</if>
<if test="status != null">status,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="siteId != null">#{siteId},</if>
<if test="linkName != null and linkName != ''">#{linkName},</if>
<if test="linkUrl != null">#{linkUrl},</if>
<if test="linkImage != null">#{linkImage},</if>
<if test="clicks != null">#{clicks},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="sort != null">#{sort},</if>
<if test="isShow != null">#{isShow},</if>
<if test="status != null">#{status},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
修改语句设置条件
<update id="updateCmsLink" parameterType="CmsLink">
update cms_link
<trim prefix="SET" suffixOverrides=",">
<if test="siteId != null">site_id = #{siteId},</if>
<if test="linkName != null and linkName != ''">link_name = #{linkName},</if>
<if test="linkUrl != null">link_url = #{linkUrl},</if>
<if test="linkImage != null">link_image = #{linkImage},</if>
<if test="clicks != null">clicks = #{clicks},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="sort != null">sort = #{sort},</if>
<if test="isShow != null">is_show = #{isShow},</if>
<if test="status != null">status = #{status},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where link_id = #{linkId}
</update>
删除语句
<delete id="deleteCmsLinkByIds" parameterType="String">
delete from cms_link where link_id in
<foreach item="linkId" collection="array" open="(" separator="," close=")">
#{linkId}
</foreach>
</delete>
<!--foreach元素的属性主要有item,index,collection,open,separator,close-->
<!--collection该属性指定你要遍历的集合名称,然后在调用该方法的时候,通过参数的方式传递过来-->
<!--item用来临时存放迭代集合中当前元素的值,便于在foreach中使用-->
<!--index这个属性用来指定用来访问迭代集合下标的名称。如:index="myIndex",则#{myIndex}用来访问当前迭代的下标。下标从0开始。-->
<!--open将该属性指定的值添加到foreach迭代后拼出字符串的开始。如:拼凑in子语句的开始部分“(”-->
<!--close: 将该属性指定的值添加到foreach迭代拼出字符串的结尾。如:拼凑in子语句的介绍部分")"。-->
<!--separator用来分割foreach元素迭代的每个元素-->