ProductImg.xml 5.69 KB
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dili.titan.dao.ProductImgDao">

	<!-- product_img 所有查询列 -->
	<sql id="QUERY_COLUMN_LIST">
		<![CDATA[id,pid,img_url AS imgUrl,img_title AS imgTitle,`order`,`desc`,ctime,utime]]>
	</sql>
	
	<!-- product_img 插入 -->
	<sql id="INSERT">
		<![CDATA[INSERT INTO product_img (pid,img_url,img_title,`order`,`desc`,ctime,utime)]]>
	</sql>

	<!-- product_img 查询列来源表-->
	<sql id="QUERY_FROM_TABLE"><![CDATA[FROM product_img]]></sql>
	
	<!-- 全部条件(更多功能可以通过queryData扩展实现)  -->
	<sql id="QUERY_WHERE_CLAUSE">
		<where>
			<if test="id != null and id != ''"><![CDATA[AND id = #{id}]]></if>
			<if test="pid != null and pid != ''"><![CDATA[AND pid = #{pid}]]></if>
			<if test="imgUrl != null and imgUrl != ''"><![CDATA[AND img_url = #{imgUrl}]]></if>
			<if test="imgTitle != null and imgTitle != ''"><![CDATA[AND imgTitle = #{imgTitle}]]></if>
			<if test="order != null and order != ''"><![CDATA[AND `order` = #{order}]]></if>
			<if test="desc != null and desc != ''"><![CDATA[AND desc = #{desc}]]></if>
			<if test="ctime != null and ctime != ''"><![CDATA[AND ctime = #{ctime}]]></if>
			<if test="utime != null and utime != ''"><![CDATA[AND utime = #{utime}]]></if>
		</where>
	</sql>
	
	<!-- 智能排序与分页 -->
	<sql id="QUERY_ORDER_LIMIT_CONDTION">
		<if test="orderField != null and orderField != '' and orderFieldType != null and orderFieldType != ''"><![CDATA[ORDER BY ${orderField} ${orderFieldType}]]></if>
		<if test="startIndex != null and startIndex &gt;= 0 and pageSize != null and pageSize &gt; 0"><![CDATA[LIMIT #{startIndex},#{pageSize}]]></if>
	</sql>

	<!-- 更新列字段,只要不为NULL则更新,除开主键列 -->
	<sql id="UPDATE_COLUMN_SET">
		<set>
			<if test="pid != null"><![CDATA[pid = #{pid},]]></if>
			<if test="imgUrl != null"><![CDATA[img_url = #{imgUrl},]]></if>
			<if test="imgTitle != null"><![CDATA[img_title = #{imgTitle,]]></if>
			<if test="order != null"><![CDATA[`order` = #{order},]]></if>
			<if test="desc != null"><![CDATA[desc = #{desc},]]></if>
			<if test="ctime != null"><![CDATA[ctime = #{ctime},]]></if>
			<if test="utime != null"><![CDATA[utime = #{utime},]]></if>
		</set>
	</sql>

	<!-- 插入product_img记录 -->
	<insert id="insertEntry" parameterType="productImg" >
		<![CDATA[
			INSERT INTO product_img (id,pid,img_url,img_title,`order`,desc,ctime,utime)
			VALUES (#{id},#{pid},#{imgUrl},#{imgTitle},#{order},#{desc},now(),#{utime})
		]]>
	</insert>
	
	<!-- 返回插入的编号,在事务开启状态下有效 -->
	<select id="lastSequence" resultType="int"><![CDATA[SELECT LAST_INSERT_ID() AS id]]></select>

	<!-- 删除记录,主键IN(array) -->
	<delete id="deleteByArrayKey" parameterType="java.lang.reflect.Array" >
		<![CDATA[DELETE FROM product_img WHERE id IN]]>
		<foreach collection="array" item="id" open="(" separator="," close=")">
			<![CDATA[#{id}]]>
		</foreach>
	</delete>

	<!-- 删除,通过条件 -->
	<update id="deleteByCondtion" parameterType="productImg" >
		<![CDATA[DELETE FROM product_img]]>
		<include refid="QUERY_WHERE_CLAUSE"/>
	</update>

	<!-- 修改记录通过主键 -->
	<update id="updateByKey" parameterType="productImg" >
		<![CDATA[UPDATE product_img]]>
		<include refid="UPDATE_COLUMN_SET"/>
		<![CDATA[WHERE id = #{id}]]>
	</update>

	<!-- 查询,通过主键IN(array) -->
	<select id="selectEntryArray" parameterType="java.lang.reflect.Array" resultType="productImg">
		<![CDATA[SELECT]]>
		<include refid="QUERY_COLUMN_LIST"/>
		<include refid="QUERY_FROM_TABLE"/>
		<![CDATA[WHERE id IN]]>
		<foreach collection="array" item="id" open="(" separator="," close=")">
			<![CDATA[#{id}]]>
		</foreach>
	</select>

	<!-- 查询,通过条件 -->
	<select id="selectEntryList" parameterType="productImg" resultType="productImg">
		<![CDATA[SELECT]]>
		<include refid="QUERY_COLUMN_LIST"/>
		<include refid="QUERY_FROM_TABLE"/>
		<include refid="QUERY_WHERE_CLAUSE"/>
		<include refid="QUERY_ORDER_LIMIT_CONDTION"/>
	</select>

	<!-- 总数查询,通过条件 -->
	<select id="selectEntryListCount" parameterType="productImg" resultType="int">
		<![CDATA[SELECT COUNT(id) AS dataCount]]>
		<include refid="QUERY_FROM_TABLE"/>
		<include refid="QUERY_WHERE_CLAUSE"/>
	</select>
	
	<!-- 其它SQL语句 -->
	<!-- 批量添加图片 -->
	<insert id="batchInsert" parameterType="productImg">
		<include refid="INSERT"/>
		VALUES 
		<foreach collection="list" item="item" index="index" separator=",">
			<![CDATA[(#{item.pid},#{item.imgUrl},#{item.imgTitle},#{item.order},#{item.desc},now(),#{item.utime})]]>
		</foreach>
	</insert>
	
	<!-- 通过pid,查询图片 -->
	<select id="selectByPid" parameterType="Long" resultType="productImg">
		<![CDATA[SELECT]]>
		<include refid="QUERY_COLUMN_LIST"/>
		<include refid="QUERY_FROM_TABLE"/>
		<![CDATA[WHERE pid=#{pid}]]>
		<![CDATA[ORDER BY `order` asc]]>
	</select>
	
	<!-- 通过id,删除图片 -->
	<delete id="deleteById" parameterType="Long">
		<![CDATA[DELETE FROM product_img WHERE id=#{id}]]>
	</delete>
	
	<!-- 通过pid,删除图片 -->
	<delete id="deleteByPid" parameterType="Long">
		<![CDATA[DELETE FROM product_img WHERE pid=#{pid}]]>
	</delete>
		
	<select id="getBySupplyId" parameterType="Long" resultType="productImg">
		<![CDATA[SELECT]]>
		<include refid="QUERY_COLUMN_LIST"/>
		<include refid="QUERY_FROM_TABLE"/>
		<![CDATA[WHERE pid=#{supplyId} order by 'order']]> 
	</select>
		
		<select id="getByPurchaseId" parameterType="Long" resultType="productImg">
		<![CDATA[SELECT]]>
		<include refid="QUERY_COLUMN_LIST"/>
		<include refid="QUERY_FROM_TABLE"/>
		<![CDATA[WHERE pid=#{purchaseId} order by 'order']]> 
	</select>
		
</mapper>