分享牛,分享牛原创。有这样一个需求,文本文件中的数据批量的插入mysql,怎么用jdbc方式批量插入呢?

jdbc默认提供了批量插入的方法,可能用一次就忘记了,这里做笔记记录一下jdbc批量插入吧。

1.1.1. 代码

Connection conn = null;

     try {

Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/cxjc", "root", "");
conn.setAutoCommit(false);
String sql = "insert into accout(id,NAME,money) values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
for(int i=1; i<3000; i++){

    ps.setString(1, i+"");
    ps.setString(2, i+"");
    ps.setString(3, i+"");
    //添加
    ps.addBatch();

}
//执行
 ps.executeBatch();
conn.commit();
}catch(Exception e){
}
}

1.1.2. 注意的地方

conn.setAutoCommit(条sql的时候,就插入到数据库,这样保证每次插入的记录数就是批量插入一定的数量,而不是一次性非常多,代码的演变如下:

public static void main(String[] args) {
Connection conn = null;

     try {

Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/cxjc", "root", "");
conn.setAutoCommit(false);
String sql = "insert into accout(id,NAME,money) values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
for(int i=1; i<3000; i++){

    ps.setString(1, i+"");
    ps.setString(2, i+"");
    ps.setString(3, i+"");
    ps.addBatch();
    //添加
    if (i%1000==0) {
    	 ps.executeBatch();
    	conn.commit();
}
}
//执行剩余的数据
 ps.executeBatch();
conn.commit();
}catch(Exception e){
}

分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519)

jdbc批量插入的更多相关文章

  1. 三种JDBC批量插入编程方法的比较

    JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等. 我用Mysql 5.1.5的JDBC driver 分别对三种比较常用的方法做了测试 方法一,使用PreparedStat ...

  2. Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案

    转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1      背景 系统中需要批量生成单据数据到数据库表,所以采用 ...

  3. JDBC批量插入数据优化,使用addBatch和executeBatch

    JDBC批量插入数据优化,使用addBatch和executeBatch SQL的批量插入的问题,如果来个for循环,执行上万次,肯定会很慢,那么,如何去优化呢? 解决方案:用 preparedSta ...

  4. JDBC批量插入数据效率分析

    对于需要批量插入数据库操作JDBC有多重方式,本利从三个角度对Statement和PreparedStatement两种执行方式进行分析,总结较优的方案. 当前实现由如下条件: 执行数据库:Mysql ...

  5. JDBC批量插入优化addbatch

    // 获取要设置的Arp基准的List后,插入Arp基准表中 public boolean insertArpStandardList(List<ArpTable> list) { Con ...

  6. JDBC批量插入blob数据

    图片从接口读取后是base64的字符串,所以转成byte数组进行保存. 我们一般保存数据的话,都是基本数据,对于这些图片数据大部分会将图片保存成Blob,Clob等. Blob存储的是二进制对象数据( ...

  7. MySQL:JDBC批量插入数据的效率

    平时使用mysql插入.查询数据都没有注意过效率,今天在for循环中使用JDBC插入1000条数据居然等待了一会儿 就来探索一下JDBC的批量插入语句对效率的提高 首先进行建表 create tabl ...

  8. jdbc批量插入数据

    //插入很多书(批量插入用法) public void insertBooks(List<Book> book) {   final List<Book> tempBook=b ...

  9. 关于 MyBatis MyBatis-Spring Jdbc 批量插入的各种比较分析

    因为目前SME项目中编写了一套蜘蛛爬虫程序,所以导致插入数据库的数据量剧增.就项目中使用到的3种DB插入方式进行了一个Demo分析: 具体代码如下: 1: MyBatis 开启Batch方式,最普通的 ...

随机推荐

  1. 一次完败的Release

    一次完败的Release 去年8月份加入一家创业公司,和原同事做VR相关的产品开发,到18年正月初七,总共release过两次,真正经理了一次从0到1的过程.第一次release产品初步成型,大概在1 ...

  2. 【Android】Mac下Android Studio设置App启动页

    先将启动页放到项目资源中,图片一般是1080*1920的jpg. 新建一个activity,如图: 创建成功之后,打开刚刚创建的activity,来进行代码的编写: public class BZLa ...

  3. [LeetCode] Max Area of Island 岛的最大面积

    Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) conn ...

  4. 初学Servlet之实现Servlet接口

    package app01a;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Servlet;im ...

  5. python 虚拟环境的搭建

    1.python3.6 2.MySQL 3.安装虚拟环境 1.pip install virtualenv  -i  https://pypi.douban.com/simple/ 2.pip ins ...

  6. 机器学习技法:11 Gradient Boosted Decision Tree

    Roadmap Adaptive Boosted Decision Tree Optimization View of AdaBoost Gradient Boosting Summary of Ag ...

  7. Multipath在OpenStack中的faulty device的成因及解决(part 2)

    | 版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.如有问题,可以邮件:wangxu198709@gmail.com 简介 在上次的文章M ...

  8. [JSOI 2007]麻将

    Description 题库链接 给你一副麻将,胡牌的条件是一对将和若干顺子和刻子组成.现在给你 \(m\) 张牌,牌共 \(n\) 种,问你听哪一张牌. \(1\leq n\leq 400,1\le ...

  9. [HNOI 2001]求正整数

    Description 对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m.例如:n=4,则m=6,因为6有4个不同整数因子1,2,3,6:而且是最小的有4个因子的整数. Input n ...

  10. [USACO09FEB]改造路Revamping Trails

    题目描述 Farmer John dutifully checks on the cows every day. He traverses some of the M (1 <= M <= ...