<?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="ProductPopAttrDao"> <resultMap type="productPopAttr" id="productPopAttr"> <result property="pid" column="pid" /> <result property="attrId" column="attr_id" /> <result property="attrType" column="attrType" /> <result property="ctime" column="ctime" /> <result property="alias" column="alias"/> <result property="name" column="name"/> <result property="inputType" column="inputtype"/> <result property="status" column="attrStatus"/> <collection property="attrValueList" ofType="productPopAttrValue" javaType="ArrayList" > <result property="attrId" column="attr_id" /> <result property="valueId" column="value_id" /> <result property="ctime" column="ctime" /> <result property="valueName" column="value_name" /> <result property="value" column="value"/> <result property="show" column="show"/> <result property="order" column="order"/> <result property="status" column="status"/> </collection> </resultMap> <resultMap type="productPopAttr" id="popAttrResultMapCollection"> <id property="id" column="id"/> <result property="pid" column="pid"/> <result property="attrId" column="attrId"/> <result property="attrType" column="attr_type"/> <result property="ctime" column="ctime"/> <collection property="attrValueList" ofType="productPopAttrValue" javaType="ArrayList" column="{attrId=attrId,pid=pid}" select="ProductPopAttrValueDao.findByAttrId"> <result property="attrId" column="attr_id"/> <result property="valueId" column="value_id"/> <result property="ctime" column="ctime"/> <result property="valueName" column="value_name"/> <result property="value" column="value"/> <result property="status" column="status"/> <result property="order" column="order"/> <result property="show" column="show"/> </collection> </resultMap> <!-- product_pop_attr 所有查询列 --> <sql id="QUERY_COLUMN_LIST"> <![CDATA[id,pid,attr_id AS attrId,attr_type AS attrType,ctime]]> </sql> <!-- product_pop_attr 插入 --> <sql id="INSERT"> <![CDATA[INSERT INTO product_pop_attr (pid,attr_id,attr_type,ctime)]]> </sql> <!-- product_pop_attr 查询列来源表--> <sql id="QUERY_FROM_TABLE"><![CDATA[FROM product_pop_attr]]></sql> <!-- 全部条件(更多功能可以通过queryData扩展实现) --> <sql id="QUERY_WHERE_CLAUSE"> <where> <if test="pid != null and pid != ''"><![CDATA[AND pid = #{pid}]]></if> <if test="attrType != null and attrType != ''"><![CDATA[AND attr_type = #{attrType}]]></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 >= 0 and pageSize != null and pageSize > 0"><![CDATA[LIMIT #{startIndex},#{pageSize}]]></if> </sql> <!-- 更新列字段,只要不为NULL则更新,除开主键列 --> <sql id="UPDATE_COLUMN_SET"> <set> <if test="pid != null"><![CDATA[pid = #{pid},]]></if> <if test="attrId != null"><![CDATA[attr_id = #{attrId},]]></if> </set> </sql> <!-- 插入product_pop_attr记录 --> <insert id="insertEntry" parameterType="productAttr" > <![CDATA[ INSERT INTO product_pop_attr (id,pid,attr_id,attr_type,ctime) VALUES (#{id},#{pid},#{attrId},#{attrType},now()) ]]> </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_pop_attr WHERE id IN]]> <foreach collection="array" item="id" open="(" separator="," close=")"> <![CDATA[#{id}]]> </foreach> </delete> <!-- 删除,通过条件 --> <update id="deleteByCondtion" parameterType="productAttr" > <![CDATA[DELETE FROM product_pop_attr]]> <include refid="QUERY_WHERE_CLAUSE"/> </update> <!-- 修改记录通过主键 --> <update id="updateByKey" parameterType="productAttr" > <![CDATA[UPDATE product_pop_attr]]> <include refid="UPDATE_COLUMN_SET"/> <![CDATA[WHERE id = #{id}]]> </update> <!-- 查询,通过主键IN(array) --> <select id="selectEntryArray" parameterType="java.lang.reflect.Array" resultType="productAttr"> <![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="productAttr" resultType="productAttr"> <![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="productAttr" resultType="int"> <![CDATA[SELECT COUNT(id) AS dataCount]]> <include refid="QUERY_FROM_TABLE"/> <include refid="QUERY_WHERE_CLAUSE"/> </select> <!-- 其它SQL语句 --> <insert id="batchInsert" parameterType="productAttr"> <include refid="INSERT"/> VALUES <foreach collection="list" item="item" index="index" separator=","> <![CDATA[(#{item.pid},#{item.attrId},#{item.attrType},now())]]> </foreach> </insert> <delete id="deleteByPid" parameterType="Long"> <![CDATA[DELETE FROM product_pop_attr WHERE pid=#{pid}]]> </delete> <select id="findByPid" parameterType="java.lang.Long" resultMap="popAttrResultMapCollection"> <![CDATA[SELECT]]> <include refid="QUERY_COLUMN_LIST"/> <include refid="QUERY_FROM_TABLE"/> <![CDATA[WHERE pid=#{pid}]]> </select> </mapper>