# liteBatch **Repository Path**: paul_xiong/liteBatch ## Basic Information - **Project Name**: liteBatch - **Description**: 一个超轻量级,高性能的快速批插工具,可以和mybatis,hibernate任何orm框架结合使用 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 39 - **Created**: 2017-02-26 - **Last Updated**: 2021-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##liteBatch liteBatch是一个轻量级,高性能,高通用的批插框架。 * 能够像普通insert一样在循环中插入PO * 异步执行,无阻塞 * 维护一个缓冲的队列,到达配置的阀值之后批次提交 * 可以和各种ORM结合使用 * 适应所有的VO,自动生成脚本 * 性能高效,测试机上测试大概4w+/秒 * 自动处理各种基础类型的数据 * 支持自定义的映射和过滤字段 ##快速使用 也可以参考test工程的testUnit ```java RowBatchListener rowBatchListener = new RowBatchListener<>(jdbcTemplate, 5000, Person.class);//申明一个监听器 try{ Random random = new Random(); Person person = null; for(int i=0;i<500500;i++){ person = new Person(); person.setAge(random.nextInt(100)); person.setAddress("XX马路1号"); person.setCompany("XX科技有限公司"); person.setName("张三"); person.setCreateTime(new Date()); rowBatchListener.insertOneWithBatch(person);//可以在循环中进行插入 } }catch(Exception e){ e.printStackTrace(); }finally{ rowBatchListener.closeListener();//一定要关闭监听,建议在finally里关闭 } ``` ##注意 在mysql数据库下,需要注意以下几点 * 驱动包一定得5.1.13版本以上(含) * 在jdbc连接url里得加上rewriteBatchedStatements=true参数