`
liuzhiqiang19890403
  • 浏览: 61053 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

jdbc批量导入数据

 
阅读更多
/**
  * 设置数据库连接工具类
  * 包括(连接、注册驱动、释放连接)
  * 
  * 
  */
public final class DBUtils {
    private static String mysqlurl = "jdbc:mysql://....../mytest";
    private static String accessurl = "jdbc:mysql://...../mytest";
    private static String user = "root";
    private static String password = "root";
  
    // 获得连接
    public static Connection getAccessConn() throws SQLException {
        return DriverManager.getConnection(accessurl, user, password);
    }
      
    public static Connection getMySqlConn() throws SQLException {
        return DriverManager.getConnection(mysqlurl, user, password);
    }
  
    // 释放连接
    public static void free(ResultSet rs, PreparedStatement ps, Connection conn) {
        try {
            if (rs != null) {
                rs.close();
            }
        catch (SQLException e) {
            e.printStackTrace();
        finally {
            try {
                if (ps != null) {
                    ps.close();
                }
            catch (SQLException e) {
                e.printStackTrace();
            finally {
  
                try {
                    if (conn != null) {
                        conn.close();
                    }
                catch (SQLException e) {
                    e.printStackTrace();
                }
  
            }
  
        }
  
    }
  
    // 加载驱动
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        catch (ClassNotFoundException e) {
            System.out.println("驱动加载出错");
        }
    }
}


 

 

 

使用测试类

public class BatchExample {
    private static Connection mysqlConn = null;
    private static ResultSet rs = null;
    // 总条数
    private static int allCount = 10000;
    // 分批条数
    private static int preCount = 1000;
    // 计数器
    private static int count = 0;
  
    private static String insertSQL = "insert into users(firstname, lastname, age) values(?, ?, ?)";
  
    private static PreparedStatement mysqlPs = null;
  
    public static void main(String[] args) throws SQLException {
        try {
            mysqlConn = DBUtils.getMySqlConn();
            mysqlPs = mysqlConn.prepareStatement(insertSQL);
                        //执行操作不提交,最后通过手动进行提交事务
            mysqlConn.setAutoCommit(false);
            long start = System.currentTimeMillis();
              
            for (int i = 1; i <= allCount; i++) {
                mysqlPs.setString(1"firstname" + i);
                mysqlPs.setString(2"lastname" + i);
                mysqlPs.setInt(323);
                               //先将数据暂存起来
                mysqlPs.addBatch();        
                if ((i % preCount) == 0){
                                      //将暂存的数据进行批量执行
                    mysqlPs.executeBatch();
                    System.out.println("当前进行完毕===>" + (++count) * preCount + "条");
                }
            }        
            long end = System.currentTimeMillis();
            System.out.println("数据导入完毕,所用时间为: " + (end - start) + " ms");
  
        catch (Exception e) {
            mysqlConn.rollback();
            System.out.println("数据出错,已进行回滚");
            throw new RuntimeException();
        finally {
                        //进行事务提交
            mysqlConn.commit();
            DBUtils.free(rs, mysqlPs, mysqlConn);
        }
    }
  
}


 

分享到:
评论

相关推荐

    JDBC批量插入 更新 删除等操作

    例如,在日志系统中,通常会将日志信息先写入到文件中,然后再定期批量导入到数据库中进行存储和分析。下面详细介绍JDBC批量插入的具体实现方式: 1. **使用PreparedStatement加批量的方法** 使用`...

    jdbc-批量插入数据

    对于大型数据集,可能需要考虑使用数据库特定的批量插入优化,例如MySQL的LOAD DATA INFILE命令,或者通过BULK INSERT在SQL Server中进行批量导入。这些方法通常比JDBC的批量处理更快,但不适用于所有情况。 在实际...

    批量导入数据库中数据

    在数据库管理中,批量导入数据是一项常见的操作,尤其在处理大量结构化信息时,它可以显著提高工作效率。批量导入数据能够避免手动逐条插入的繁琐,节约时间并减少人为错误。以下将详细介绍批量导入数据库中数据的...

    图片批量导入oracle数据库

    本话题聚焦于如何批量导入图片到Oracle数据库,这是一种常见的需求,特别是在处理大量图像数据的项目中。Oracle数据库作为一款强大的关系型数据库管理系统,支持多种类型的数据存储,包括BLOB(Binary Large Object...

    Java 实现从Excel批量导入数据到MySQL

    本文将详细介绍如何利用Java实现从Excel批量导入数据到MySQL数据库。 首先,我们需要了解两个关键的库:Apache POI 和 JDBC。Apache POI 是一个开源的Java库,用于读写Microsoft Office格式的文件,包括Excel。JDBC...

    照片批量导入导出

    在IT行业中,照片批量导入导出是一项常见的任务,特别是在数据管理、媒体库建设或网站维护等领域。本场景涉及的关键技术主要是数据库操作、图像处理以及批处理能力。以下将详细阐述这些知识点: 1. **Oracle数据库*...

    excel批量导入数据库

    在IT行业中,Excel批量导入数据库是一项常见的数据处理任务,尤其在企业后台管理系统中,它能够高效地处理大量数据,提高工作效率。本知识点主要涉及以下几个方面: 1. **Excel数据处理**:Excel是一款强大的电子...

    基于SpringBoot、JDBC、Mybatis和EasyExcel的Java Excel批量导入导出设计源码

    该项目是一款基于SpringBoot、JDBC、Mybatis和EasyExcel的Java Excel批量导入导出解决方案源码,包含22个文件,其中包括10个Java源文件、2个Markdown文件、2个XML文件、1个Git忽略文件、1个JAR包文件、1个属性文件、...

    JDBC创建触发器 JDBC存储过程 JDBC创建表 数据备份 java备份数据库/JAVA恢复数据、java导入sql脚本

    **JAVA恢复数据** 和**导入SQL脚本** 是数据备份的逆过程。一旦需要恢复,Java程序可以连接到数据库,读取备份文件,然后使用`Statement`执行`INSERT INTO`、`UPDATE`或`DELETE`语句来恢复数据。此外,如果备份是SQL...

    java 批量导入excel数据

    在Java平台上,批量导入Excel数据是一项常见的任务,特别是在数据分析、数据迁移或系统集成等场景下。这个过程涉及读取Excel文件、处理数据并将其有效地存入数据库。以下是一些关键的知识点,涵盖了从读取Excel到...

    excl批量导入

    通过以上步骤,我们便可以利用Java和Apache POI库实现从Excel文件批量导入数据到数据库的功能。这在数据迁移、数据同步、报表导入等场景下非常实用。在处理大量数据时,批量导入不仅提高了效率,也降低了单条插入...

    数据导入插件elasticsearch-jdbc2.2

    - **批量导入**:为提高效率,Elasticsearch-JDBC使用批量导入机制,将多条数据作为一个批次提交。 4. **使用步骤** - **安装**:下载elasticsearch-jdbc-2.2.0.0压缩包,将其解压至Elasticsearch的plugins目录下...

    利用poi把excel数据批量导入mysql

    在IT行业中,将Excel数据...通过上述步骤,你可以成功地使用Apache POI和JDBC将Excel数据批量导入到MySQL数据库。这个过程在数据迁移、数据分析以及系统集成等场景下非常实用,提高了工作效率并减少了手动操作的错误。

    Hive几种数据导入方式

    除了从本地文件系统导入数据外,还可以直接从 HDFS 中导入数据。这种方式避免了数据的额外拷贝过程,提高了效率。 **示例**: 假设 HDFS 中存在一个名为 `rcth0.txt` 的文件,内容如下: ```plaintext 4 wyp11 23...

    数据的批量导入之java实现

    在软件开发与数据库管理过程中,批量导入数据是一项常见的任务。特别是在进行系统测试时,为了确保系统的稳定性和性能,通常需要大量的测试数据。手动创建这些数据既费时又容易出错,因此,开发一种自动化的批量数据...

    读取txt-jdbc导入百万级数据.rar

    本示例以"读取txt-jdbc导入百万级数据.rar"为主题,探讨了如何利用Spring的JdbcTemplate工具处理百万级别的文本数据并将其导入数据库。以下是对这个主题的详细解释: 1. **JDBC (Java Database Connectivity)**:...

    spring3.0 MVC Poi操作excel批量导入数据库和导出数据

    在本主题中,我们将讨论如何利用Spring 3.0 MVC和Apache POI库来处理Excel文件,实现批量导入数据库和导出数据的功能。 Apache POI是一个强大的开源库,专门用于读写Microsoft Office格式的文件,特别是Excel(....

    使用javaJDBC连接hive数据,实现简单的操作!

    Java JDBC(Java Database ...通过这种方式,你可以构建更复杂的数据处理应用程序,如数据导入、ETL流程或数据分析任务。在实际项目中,为了提高性能和可维护性,可以考虑使用Spring JdbcTemplate或MyBatis等ORM框架。

    JDBC实现MYSQL数据库迁徙

    对于数据类型不匹配,需要根据具体情况转换数据类型,确保数据能正确导入。 文件名为"ImportUserData"可能代表了一个用于迁移用户数据的类或方法。在实现这个功能时,我们可能需要读取用户表,处理每一行数据,然后...

Global site tag (gtag.js) - Google Analytics