学无先后,达者为师

网站首页 编程语言 正文

Mapper.xml文件中SQL新增数据的简便写法

作者:玉满堂_YTM 更新时间: 2023-12-26 编程语言
<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)"。其中,列名之间用逗号分隔,并被包裹在左右括号中。

原文链接:https://blog.csdn.net/A2029292473/article/details/134653421

  • 上一篇:没有了
  • 下一篇:没有了
栏目分类
最近更新