All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.diboot.framework.service.mapper.MetadataMapper.xml Maven / Gradle / Ivy

The newest version!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
		"./mybatis-3-mapper.dtd">
<mapper namespace="com.diboot.framework.service.mapper.MetadataMapper">
	<!--<cache type="org.mybatis.caches.redis.RedisCache" />-->
	<!-- 通用CRUD: begin  -->
	<!-- 指定Select需要返回的列 -->
	<sql id="columns">
		<trim suffixOverrides=",">
			<if test="f == null or f.id != null">self.id,</if>
			<if test="f == null or f.parentId != null">self.parent_id,</if>
			<if test="f == null or f.type != null">self.type,</if>
			<if test="f == null or f.itemName != null">self.item_name,</if>
			<if test="f == null or f.itemValue != null">self.item_value,</if>
			<if test="f == null or f.sortId != null">self.sort_id,</if>
			<if test="f == null or f.comment != null">self.comment,</if>
			<if test="f == null or f.system != null">self.system,</if>
			<if test="f == null or f.editable != null">self.editable,</if>
			<if test="f == null or f.active != null">self.active,</if>
		</trim>
	</sql>

    <!-- 构建查询条件 -->
    <sql id="conditions">
		<choose>
			<when test="c.parentId_GT != null">
				AND self.parent_id > #{c.parentId_GT}
			</when>
			<when test="c.parentId != null">
				AND self.parent_id=#{c.parentId}
			</when>
		</choose>
		<if test="c.type != null">AND self.type=#{c.type}</if>
		<if test="c.itemValue != null">AND self.item_value=#{c.itemValue}</if>
		<if test="c.itemName != null">AND self.item_name=#{c.itemName}</if>
		<if test="c.system != null">AND self.system=#{c.system}</if>
		<if test="c.editable != null">AND self.editable=#{c.editable}</if>
        AND self.active=1
    </sql>

    <!-- 构建set条件 -->
    <sql id="setValues">
        <set>
            <if test="f == null or f.parentId != null">parent_id=#{m.parentId},</if>
            <if test="f == null or f.type != null">type=#{m.type},</if>
            <if test="f == null or f.itemName != null">item_name=#{m.itemName},</if>
            <if test="f == null or f.itemValue != null">item_value=#{m.itemValue},</if>
            <if test="f == null or f.sortId != null">sort_id=#{m.sortId},</if>
            <if test="f == null or f.comment != null">comment=#{m.comment},</if>
			<if test="f == null or f.editable != null">editable=#{m.editable},</if>
			<if test="f == null or f.active != null">active=#{m.active},</if>
        </set>
    </sql>

    <!-- 添加记录 -->
	<insert id="create" parameterType="com.diboot.framework.model.Metadata" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO metadata(
			parent_id, type, item_name, item_value, comment, sort_id, system, editable, active, create_by
		)
		VALUES(
			#{parentId}, #{type}, #{itemName}, #{itemValue}, #{comment}, #{sortId}, #{system}, #{editable}, #{active}, #{createBy}
		)
	</insert>

    <!-- 更新记录 -->
	<update id="update">
		UPDATE metadata
        <include refid="setValues" />
		WHERE id=#{m.id, jdbcType=BIGINT}
	</update>

    <!-- 删除记录 -->
	<update id="delete" parameterType="Long">
		UPDATE metadata SET active=0 WHERE id=#{id, jdbcType=BIGINT} OR parent_id=#{id, jdbcType=BIGINT}
	</update>

    <!-- 查询一条记录 -->
    <select id="get" parameterType="Long" resultType="com.diboot.framework.model.Metadata">
        SELECT self.*
        FROM metadata self
        WHERE self.id=#{id, jdbcType=BIGINT}
    </select>

    <!-- 查询符合条件的记录总数 -->
    <select id="getListCount" parameterType="Map" resultType="Integer">
		SELECT count(self.id)
	    FROM metadata self
	    <where>
            <include refid="conditions" />
	    </where>
	</select>

    <!-- 查询符合条件的记录 -->
	<select id="getList" resultType="com.diboot.framework.model.Metadata">
		SELECT self.*
	    FROM metadata self
	    <where>
	    	<include refid="conditions" />
	    </where>
		ORDER BY self.id DESC
		<if test="c.COUNT != null">
			LIMIT <if test="c.OFFSET != null">#{c.OFFSET}, </if>#{c.COUNT}
		</if>
	</select>

	<!-- 查询符合条件的记录,返回Map -->
	<select id="getMapList" resultType="java.util.Map">
		SELECT <include refid="columns" />
		FROM metadata self
		<where>
			<include refid="conditions" />
		</where>
		ORDER BY self.id DESC
		<if test="c.COUNT != null">
			LIMIT <if test="c.OFFSET != null">#{c.OFFSET}, </if>#{c.COUNT}
		</if>
	</select>

	<!-- 批量创建 -->
	<insert id="batchCreate" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
		INSERT INTO metadata(
			parent_id, type, item_name, item_value, comment, sort_id, system, editable, active, create_by
		)
		VALUES
		<foreach collection="list" item="m" separator=",">
			(#{m.parentId}, #{m.type}, #{m.itemName}, #{m.itemValue}, #{m.comment}, #{m.sortId}, #{m.system}, #{m.editable}, #{m.active}, #{m.createBy})
		</foreach>
	</insert>

	<!-- 通用CRUD: end -->
	
	<!-- 扩展SQL: -->
	<select id="getNameTypePairList" resultType="java.util.HashMap">
		SELECT self.type as v, self.item_name as k
		FROM metadata self
		WHERE self.parent_id=0 AND self.active=1
		ORDER BY self.id ASC
	</select>

</mapper>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy