mapper.xml中的标签记录

xiaoxiao2021-02-28  18

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- mapper 为根元素节点, 一个namespace对应一个dao --> <mapper namespace="com.lianjia.home.customer.dao.ServiceChangeRecordDao"> <!-- type:resultMap最终所映射的Java对象类型,可以使用别名. id:对resultMap的唯一标识 --> <resultMap id="serviceChangeRecordMap" type="com.lianjia.home.customer.domain.ServiceChangeRecord"> <!-- id表示查询结果集中唯一标识 column:查询出的列名 property:type所指定的POJO中的属性名 最终reslutMap对column和property做一个映射关系(对应关系) --> <id column="id" property="id" /> <!-- 对普通列的映射定义 --> <result column="customer_id" property="customerId" /><!--数据库列名 -- 对象中的属性名--> <result column="change_type" property="changeType" /> <result column="change_uc_id" property="changeUcId" /> <result column="change_reason" property="changeReason" /> <result column="change_desc" property="changeDesc" /> <result column="created_time" property="createdTime" /> </resultMap> <sql id ="serviceChangeRecordColumn"> <!-- <sql>用来封装SQL语句 , <include>来调用--> <!-- --> <trim suffix="" suffixOverrides=","> <!--trim标记是一个格式化的标记,可以完成set或者是where标记的功能等--> <if test="id != null">id,</if> <if test="customerId != null">customer_id,</if> <if test="changeType != null">change_type,</if> <if test="changeUcId != null">change_uc_id,</if> <if test="changeReason != null">change_reason,</if> <if test="changeDesc != null">change_desc,</if> <if test="createdTime != null">created_time,</if> </trim> </sql> <sql id="serviceChangeRecordValue"> <trim suffix="" suffixOverrides=","> <if test="id != null">#{id},</if> <if test="customerId != null">#{customerId},</if> <if test="changeType != null">#{changeType},</if> <if test="changeUcId != null">#{changeUcId},</if> <if test="changeReason != null">#{changeReason},</if> <if test="changeDesc != null">#{changeDesc},</if> <if test="createdTime != null">#{createdTime},</if> </trim> </sql> <sql id="serviceChangeRecordBaseColumn"> <trim suffix="" suffixOverrides=","> id, customer_id, change_type, change_uc_id, change_reason, change_desc, created_time, </trim> </sql> <!-- 保存ServiceChangeRecord记录 ,keyProperty直接指明了主键是哪一个字段,useGeneratedKeys与keyProperty连用,上面指定了主键,这里就指定它自增。 --> <insert id="insert" parameterType="com.lianjia.home.customer.domain.ServiceChangeRecord" useGeneratedKeys="true" keyProperty="id"> insert into service_change_record (<include refid="serviceChangeRecordColumn"/>) <!--调用 id为serviceChangeRecordColumn的<sql>,类似于将其代码放入此处 --> values (<include refid="serviceChangeRecordValue"/>) </insert> <!-- 保存ServiceChangeRecord记录 parameterType 传入参数。此处是一个list,存储了对象--> <insert id="insertBatch" parameterType="java.util.Collection" > insert into service_change_record ( <include refid="serviceChangeRecordBaseColumn"/> ) values <foreach collection="list" item="item" separator=","> <trim prefix="(" suffix=")" suffixOverrides=","> #{item.id}, #{item.customerId}, #{item.changeType}, #{item.changeUcId}, #{item.changeReason}, #{item.changeDesc}, #{item.createdTime}, </trim> </foreach> </insert> <!-- 更新ServiceChangeRecord记录 --> <update id="update" parameterType="map"> update service_change_record <set> <if test="entity.customerId != null"> customer_id=#{entity.customerId} ,</if> <if test="entity.changeType != null"> change_type=#{entity.changeType} ,</if> <if test="entity.changeUcId != null"> change_uc_id=#{entity.changeUcId} ,</if> <if test="entity.changeReason != null"> change_reason=#{entity.changeReason} ,</if> <if test="entity.changeDesc != null"> change_desc=#{entity.changeDesc} ,</if> <if test="entity.createdTime != null"> created_time=#{entity.createdTime} ,</if> <if test="includes !=null "> <!-- 使用foreach遍历传入ids collection指定输入对象中集合属性 item每次遍历生成的对象名 open开始遍历时要拼接的串 close结束遍历时要拼接的串 separator遍历的两个对象中间需要拼接的串 --> <foreach collection="includes" item="field" open="" close="" separator=","> ${field.tname} = #{entity.${field.name}} </foreach> </if> </set> where id = #{entity.id} </update> <!-- 根据id删除ServiceChangeRecord记录 --> <delete id="deleteByPk" parameterType="java.lang.Long"> delete from service_change_record where id = #{id} </delete> </mapper> insert update delete select 的id 的设置要跟方法名称保持一致。
转载请注明原文地址: https://www.6miu.com/read-2499980.html

最新回复(0)