<resultMap type="TbActivity" id="TbActivityResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="channel" column="channel" />
<result property="info" column="info" />
<result property="type" column="type" />
<result property="discount" column="discount" />
<result property="vouchers" column="vouchers" />
<result property="status" column="status" />
<result property="createTime" column="create_time" />
<result property="beginTime" column="begin_time" />
<result property="endTime" column="end_time" />
<result property="code" column="code" />
</resultMap>
<resultMap>
是 MyBatis 框架中的一个标签,用于定义查询结果映射的规则,将数据库查询结果映射到 Java 对象的属性上。
1.<resultMap type="TbActivity" id="TbActivityResult">
定义了一个名为 "TbActivityResult" 的结果映射。具体作用如下:
-
type="TbActivity"
指定了映射的目标类型为 TbActivity,即将查询结果映射到 TbActivity 类型的对象上。
-
id="TbActivityResult"
指定了该结果映射的唯一标识符为 "TbActivityResult",以便在后续的查询语句中引用。
2. <result>
标签用于定义每个列与属性之间的映射关系。例如,<result property="id" column="id" />
表示将查询结果中的 "id" 列的值映射到 TbActivity 对象的 id 属性上。
具体的映射规则如下:
-
<result property="属性名" column="列名" />
表示将查询结果中的指定列的值映射到指定属性上。其中,"属性名" 是 TbActivity 对象的属性名,"列名" 是数据库表中的列名。
通过这样的结果映射规则,MyBatis 可以根据查询结果中的列名和属性名进行匹配,并将对应的值赋给对象的属性。这样,我们可以方便地将查询结果转化为 Java 对象,并进行后续的操作和处理。
<insert id="insertTbActivity" parameterType="TbActivity" useGeneratedKeys="true" keyProperty="id">
insert into tb_activity
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null">name,</if>
<if test="channel != null">channel,</if>
<if test="info != null and info != ''">info,</if>
<if test="type != null">type,</if>
<if test="discount != null">discount,</if>
<if test="vouchers != null">vouchers,</if>
<if test="status != null">status,</if>
<if test="createTime != null">create_time,</if>
<if test="beginTime != null">begin_time,</if>
<if test="endTime != null">end_time,</if>
<if test="code != null">code,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null">#{name},</if>
<if test="channel != null">#{channel},</if>
<if test="info != null and info != ''">#{info},</if>
<if test="type != null">#{type},</if>
<if test="discount != null">#{discount},</if>
<if test="vouchers != null">#{vouchers},</if>
<if test="status != null">#{status},</if>
<if test="createTime != null">#{createTime},</if>
<if test="beginTime != null">#{beginTime},</if>
<if test="endTime != null">#{endTime},</if>
<if test="code != null">#{code},</if>
</trim>
</insert>
1.<trim prefix="(" suffix=")" suffixOverrides=",">
是 MyBatis 框架中的一个标签,用于修整 SQL 语句中的前缀、后缀和后缀覆盖。
2.<trim>
标签被用于修整 INSERT 语句中列名部分的括号。具体作用如下:
-
prefix="("
指定了插入语句中列名部分的前缀为 "(",即在列名部分的最前面加上一个左括号 "("。
-
suffix=")"
指定了插入语句中列名部分的后缀为 ")",即在列名部分的最后面加上一个右括号 ")"。
-
suffixOverrides=","
指定了如果列名部分最后一个字符是逗号 ",",则将逗号删除。这样可以确保在最后一个列名之后不会出现多余的逗号。
例如,假设 TbActivity 对象中有三个非空属性,对应的列名分别是 "name"、"channel" 和 "info",那么经过 <trim prefix="("
suffix=")" suffixOverrides=",">` 的修整后,列名部分的结果将是 "(name, channel, info)"。其中,列名之间用逗号分隔,并被包裹在左右括号中。