在MyBatis中,可以使用动态SQL来插入动态表数据。首先,需要在插入语句中使用<trim>标签来动态生成插入的列和对应的值。

示例代码如下:

<insert id="insertDynamicData" parameterType="java.util.Map">
  INSERT INTO ${tableName}
  <trim prefix="(" suffix=")" suffixOverrides=",">
    <foreach collection="columns" item="column">
      ${column}
    </foreach>
  </trim>
  VALUES
  <trim prefix="(" suffix=")" suffixOverrides=",">
    <foreach collection="values" item="value">
      #{value}
    </foreach>
  </trim>
</insert>

在上述示例中,${tableName}是动态传入的表名,columnsvalues是动态传入的列名和对应的值。

在Java代码中,可以通过创建一个Map来传递动态数据,示例代码如下:

Map<String, Object> data = new HashMap<>();
data.put("tableName", "dynamic_table");
data.put("columns", Arrays.asList("column1", "column2"));
data.put("values", Arrays.asList("value1", "value2"));

sqlSession.insert("insertDynamicData", data);

通过上述代码,可以将动态表数据插入到指定的表中


原文地址: https://www.cveoy.top/t/topic/ingN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录