<?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="CategoryDao"> <!-- category 所有查询列 --> <sql id="QUERY_COLUMN_LIST"> <![CDATA[id,name,jp,parent,template,icon,status,activate, `order`, note,product_img as productImg, shop_id as shopId]]> </sql> <!-- category 查询列来源表--> <sql id="QUERY_FROM_TABLE"><![CDATA[FROM category]]></sql> <!-- 全部条件(更多功能可以通过queryData扩展实现) --> <sql id="QUERY_WHERE_CLAUSE"> <where> <if test="id != null and id != ''"><![CDATA[AND id = #{id}]]></if> <if test="name != null and name != ''"><![CDATA[AND name = #{name}]]></if> <if test="parent != null and parent != '' or parent==0"><![CDATA[AND parent = #{parent}]]></if> <if test="template != null and template != ''"><![CDATA[AND template = #{template}]]></if> <if test="status != null and status != ''"><![CDATA[AND status = #{status}]]></if> <if test="activate != null and activate != ''"><![CDATA[AND activate = #{activate}]]></if> <if test="order != null and order != ''"><![CDATA[AND `order` = #{order}]]></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="name != null"><![CDATA[name = #{name},]]></if> <if test="parent != null"><![CDATA[parent = #{parent},]]></if> <if test="template != null"><![CDATA[template = #{template},]]></if> <if test="status != null"><![CDATA[status = #{status},]]></if> <if test="activate != null"><![CDATA[activate = #{activate},]]></if> <if test="order != null"><![CDATA[`order` = #{order},]]></if> </set> </sql> <!-- 插入category记录 --> <insert id="insertEntry" parameterType="category" > <![CDATA[ INSERT INTO category (id,name,parent,icon,template,status,activate, `order`,ctime,shop_id,deal_type) VALUES (#{id},#{name},#{parent},#{icon},#{template},#{status},#{activate}, #{order} ,now(),#{shopId},#{dealType}) ]]> </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 category WHERE id IN]]> <foreach collection="array" item="id" open="(" separator="," close=")"> <![CDATA[#{id}]]> </foreach> </delete> <!-- 删除,通过条件 --> <update id="deleteByCondtion" parameterType="category" > <![CDATA[DELETE FROM category]]> <include refid="QUERY_WHERE_CLAUSE"/> </update> <!-- 修改记录通过主键 --> <update id="updateByKey" parameterType="category" > <![CDATA[UPDATE category]]> <include refid="UPDATE_COLUMN_SET"/> <![CDATA[WHERE id = #{id}]]> </update> <!-- 查询,通过主键IN(array) --> <select id="selectEntryArray" parameterType="java.lang.reflect.Array" resultType="category"> <![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> order by `order` </select> <!-- 查询,通过条件 --> <select id="selectEntryList" parameterType="category" resultType="category"> <![CDATA[SELECT]]> <include refid="QUERY_COLUMN_LIST"/> <include refid="QUERY_FROM_TABLE"/> <include refid="QUERY_WHERE_CLAUSE"/> <include refid="QUERY_ORDER_LIMIT_CONDTION"/> order by `order` </select> <!-- 总数查询,通过条件 --> <select id="selectEntryListCount" parameterType="category" resultType="int"> <![CDATA[SELECT COUNT(id) AS dataCount]]> <include refid="QUERY_FROM_TABLE"/> <include refid="QUERY_WHERE_CLAUSE"/> </select> <!-- ywd 以下保留 --> <select id="selectCateAttrById" parameterType="int" resultType="categoryAttr"> <![CDATA[SELECT id,cate_id AS catId,deal_type AS dealType,attr_id AS attrId,searchable,`order` from category_attr where cate_id = #{catId} order by `order`]]> </select> <select id="selectCateSeacherAttrById" parameterType="int" resultType="categoryAttr"> <![CDATA[SELECT id,cate_id AS catId,attr_id AS attrId,`order` FROM category_search_attr WHERE cate_id = #{catId} order by `order`]]> </select> </mapper>