35 JDBC批量插入数据二

package MYSQK;
import java.sql.*;

/**
 * PreparedStatement 对象可以对sql语句进行预编译,预编译的信息会存在存储该对象中,当相同的sql语句再次执行时,程序
 *   会使用PrepareStatement对象中,而不需再次编译去查询数据库,大大提高了数据的访问效率
 */

public class Insert {
    public  static  void main(String[] args) throws SQLException{
        Connection conn=null;
        PreparedStatement pst =null;

        try {
            // 1 加载驱动类
            Class.forName("com.mysql.jdbc.Driver");
            // 2 通过DriverManager获取connection对象
             String url="jdbc:mysql://192.168.64.129:3306/jdbc?" +
                      "user=root&password=815qza&useUnicode=true&characterEncoding=UTF8";
             conn = DriverManager.getConnection(url);
             if (!conn.isClosed()){
                 System.out.println("Succeeded connecting to the Database!");
             }else{
                 System.out.println("Sorry,failed  connecting to the Database");
             }
             // 3 获取pre对象
              String sql = "insert INTO  USERS(name,PASSWORD,email,birthday)  VALUES (?,?,?,?)" ;
              pst = conn.prepareStatement(sql);

             //4  使用prepare对象执行sql语句
              System.out.println("开始插入数据");
              long starttime = System.currentTimeMillis();
              int count = 0;
              for(int i=8;i<=100;i++) {
                  pst.setString(1,"bowen"+i);
                  pst.setString(2,"815qza");
                  pst.setString(3,"bowen"+i+"@126.com");
                  pst.setString(4,"1990-01-01");
                  pst.executeUpdate();
                  count++;
              }
              long endtime = System.currentTimeMillis();
              System.out.println("插入结束!耗费时间为"+(endtime-starttime)/1000+"s");
              System.out.println("共插入"+count+"条数据");

        }catch (ClassNotFoundException e){
            e.printStackTrace();
        }finally {
            // 6 关闭连接
             pst.close();
             conn.close();
        }
    }
}

原文地址:https://www.cnblogs.com/sunnybowen/p/9880135.html

时间: 2024-08-03 06:34:37

35 JDBC批量插入数据二的相关文章

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

>>.在之前的玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入中其实忽略了一点,那就是SQL的批量插入的问题,如果来个for循环,执行上万次,肯定会很慢,那么,如何去优化呢? https://www.awaimai.com/841.html 一.用 preparedStatement.addBatch()配合preparedStatement.executeBatch()去批量插入 1 /** 2 * 执行数据库插入操作 4 *

【实践】jdbc批量插入数据

参考文献:http://my.oschina.net/u/1452675/blog/203670 http://superjavason.iteye.com/blog/255423 1 /*测试批量写入数据*/ 2 long start = System.currentTimeMillis(); 3 DaoRecord daoRecord = new DaoRecord(); 4 List<T> list = new ArrayList<T>(); 5 for(int i = 1;

jdbc批量插入数据

//插入很多书(批量插入用法) public void insertBooks(List<Book> book) {   final List<Book> tempBook=book;   String sql="insert into book(name,pbYear) values(?,?)";   jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter()   {    public v

jdbc批量插入实现大批量数据快速插入

今天在做一个将excel数据导入数据库的程序时,由于数据量大,准备采用jdbc的批量插入.于是用了preparedStatement.addBatch();当加入1w条数据时,再执行插入操作,preparedStatement.executeBatch().我原以为这样会很快,结果插入65536条数据一共花30多分钟,完全出乎我的意料.于是问了一下同事,他们在处理这种大批量数据导入的时候是如何处理的,发现他们也是用的jdbc批量插入处理,但与我不同是:他们使用了con.setAutoCommit

Django框架进阶6 多对多三种创建方式, Ajax, Content-Type前后端传输数据编码格式, Ajax发送文件数据, django内置的序列化功能, Ajax结合sweetalert实现删除二次确认, 批量插入数据, 自定义分页器, ajax结合sweetalert实现删除二次确认

多对多三种创建方式 1.全自动(较为常用) class Book(models.Model): title = models.CharField(max_length=32) authors = models.ManyToManyField(to='Author') # orm就会自动帮你创建第三张表 class Author(models.Model): name = models.CharField(max_length=32) ''' 好处:第三张表自己创建 不足之处:第三张表无法扩展额外

批量插入数据(基于Mybatis的实现-Oracle)

前言:做一个数据同步项目,要求:同步数据不丢失的情况下,提高插入性能. 项目DB框架:Mybatis.DataBase:Oracle. ---------------------------------------------------------------------------- 批量插入数据方式: 一.Mybatis 全局设置批处理: 二.Mybatis 局部设置批处理: 三.Mybatis foreach批量插入: ①SELECT UNION ALL: ②BEGIN INSERT I

MyBatis直接执行SQL查询及批量插入数据

MyBatis直接执行SQL查询及批量插入数据 一.直接执行SQL查询: 1.mappers文件节选 <resultMap id="AcModelResultMap" type="com.izumi.InstanceModel">  <result column="instanceid" property="instanceID" jdbcType="VARCHAR" />  <

Java通过Mybatis实现批量插入数据到Oracle中

最近项目中遇到一个问题:导入数据到后台并将数据插入到数据库中,导入的数据量有上万条数据,考虑采用批量插入数据的方式: 结合网上资料,写了个小demo,文章末尾附上demo下载地址 1.新建项目:项目目录结构如下图所示,添加相应的jar包 2.新建数据库表:ACCOUNT_INFO 1 CREATE TABLE ACCOUNT_INFO ( 2 "ID" NUMBER(12) NOT NULL , 3 "USERNAME" VARCHAR2(64 BYTE) NULL

MySQL批量插入数据的几种方法

最近公司要求测试数据库的性能,就上网查了一些批量插入数据的代码,发现有好几种不同的用法,插入同样数据的耗时也有区别 别的先不说,先上一段代码与君共享 方法一: package com.bigdata; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.PreparedStatement; public class TestBigData { /**