• 课时21 :使用MyBatis实现批量操作


    .1) 批量操作DML 方式一 推荐方式

      1.如果想提升处理速度可以加上这个代码 测试过实现差不多可以提升1.多倍的性能

     //打开一次会话
            SqlSession session=sessionFactory.openSession(ExecutorType.BATCH);

      2.BATCH:预编译一次,其余次数 只需要设置参数值即可

        <insert id="addStudent"  databaseId="mysql"  useGeneratedKeys="true" keyProperty="stuno">
            insert into student(stuNo,stuName,stuAge)
            values(#{stuno},#{stuName},#{stuAge})
        </insert>

      3.没有BATCCH:

             预编译N次,每次DML都需要执行完整的SQL

    .2)不推荐的方式:SQL拼接 (就是说把SQL语句拼接完成一次性插入)

      1.mysql:批量插入

      insert into student(stuno,stuName,stuAge) values (21,'asas',20), (22,'as',21)

      <insert id="addStudent"  databaseId="mysql"  useGeneratedKeys="true" keyProperty="stuno">
           insert  into student(stuno,stuName,stuAge) values
           <foreach collection="list" item="student" separator="," close=";">
               (#{student.stuno},#{student.stuName},#{student.stuAge})
           </foreach>
    
        </insert>

      2.核心:将SQL拼接成mysql或者其他数据库能够认识的SQL:collection的参数必须是collection或list

      3.这种方式不推荐

        3.1 没有用到mybatis对批量插入的支持 BATCH

        3.2 不适合数据库的迁移

        3.3 3.3 如果大量的数据,则会将 拼接的SQL拉的很长,而部分数据库对SQL语句的长度有限制

  • 相关阅读:
    kafka集群管理
    kafka server管理
    kafka 日志结构
    kafka消费者基本操作
    kafka 生产者基本操作
    kafka主题管理
    kafka基础知识
    centos7.0安装docker-18.06.1-ce不能启动问题
    spec 文件详解
    rpmbuild 源码打包clickhouse,附带打好的rpm包下载地址
  • 原文地址:https://www.cnblogs.com/thisHBZ/p/12511325.html
Copyright © 2020-2023  润新知