中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

?mybatis批量insert的幾種方式

小億
201
2023-12-20 21:40:32
欄目: 編程語言

MyBatis 提供了多種方式來實現批量插入操作:

  1. 使用 foreach 標簽:
    在 Mapper XML 文件中使用 foreach 標簽,通過遍歷集合來執行批量插入操作。示例代碼如下:

    <insert id="batchInsert" parameterType="java.util.List">
        INSERT INTO my_table (column1, column2)
        VALUES
        <foreach collection="list" item="item" separator=",">
            (#{item.column1}, #{item.column2})
        </foreach>
    </insert>
    

    這里的 list 是一個包含插入數據的集合。

  2. 使用 MyBatisBatchExecutor 批量執行器:
    在 Java 代碼中使用 BatchExecutor 批量執行器來執行批量插入操作。示例代碼如下:

    SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
    try {
        MyMapper mapper = sqlSession.getMapper(MyMapper.class);
        for (MyObject obj : list) {
            mapper.insert(obj);
        }
        sqlSession.commit();
    } catch (Exception e) {
        sqlSession.rollback();
    } finally {
        sqlSession.close();
    }
    

    這里的 list 是一個包含插入數據的集合,MyObject 是對應表的實體類。

  3. 使用 JDBC 的批處理:
    直接使用 JDBC 的批處理來執行批量插入操作。示例代碼如下:

    Connection connection = dataSource.getConnection();
    try {
        PreparedStatement ps = connection.prepareStatement("INSERT INTO my_table (column1, column2) VALUES (?, ?)");
        for (MyObject obj : list) {
            ps.setString(1, obj.getColumn1());
            ps.setString(2, obj.getColumn2());
            ps.addBatch();
        }
        ps.executeBatch();
        connection.commit();
    } catch (Exception e) {
        connection.rollback();
    } finally {
        connection.close();
    }
    

    這里的 list 是一個包含插入數據的集合,MyObject 是對應表的實體類。

0
丹寨县| 普格县| 登封市| 张家港市| 德安县| 兴仁县| 蓝田县| 宁明县| 益阳市| 通辽市| 海原县| 耒阳市| 沧州市| 比如县| 新沂市| 毕节市| 晋中市| 竹溪县| 仪陇县| 静宁县| 磴口县| 茌平县| 奈曼旗| 京山县| 常宁市| 平度市| 岱山县| 沾化县| 额济纳旗| 公安县| 昌邑市| 恭城| 贺州市| 泰兴市| 昌图县| 克拉玛依市| 蒙城县| 辽阳市| 会宁县| 徐闻县| 陇西县|