zoukankan      html  css  js  c++  java
  • Java 读取txt文件,读取结果保存到数据库

    需求:有一个很大的txt文件(1,000,000条数据),从txt中读取有用数据库后保存到Oracle数据库中

    利用Java实现:

    1、加载文件后一行一行读取

    2、数据库连接后按行插入到数据库

    package com.test.IF.service;
    
    import java.io.File;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    import org.apache.commons.io.FileUtils;
    import org.apache.commons.io.LineIterator;
    
    public class ReadCustomerFile {
        
        int idx;
        Connection conn = null;
        PreparedStatement pstmt = null;    
        
        // 使用commons-io.jar包的FileUtils的类进行读取
        public void readTxtFileByFileUtils(String fileName) {
            File file = new File(fileName);
            
            dbConnection();
            
            try {
                LineIterator lineIterator = FileUtils.lineIterator(file, "GB2312");
                while (lineIterator.hasNext()) {
                    String line = lineIterator.nextLine();
                    
                    // 行数据转换成数组
                    String[] custArray = line.split("\|");
                    insertCustInfo(custArray);
                    Thread.sleep(10);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            } finally {
                dbDisConnection();
            }
        }
        
        // 插入到数据库中
        public void insertCustInfo(String[] strArray) {         
            try {
                StringBuffer sqlBf = new StringBuffer();
                sqlBf.setLength(0);
                
                sqlBf.append("INSERT INTO TEMP_CUST_INFO(CUST_NO, CUST_NM, MOB_NO1)                
    ");
                sqlBf.append("          VALUES(?                                                    
    ");
                sqlBf.append("               , ?                                                    
    ");
                sqlBf.append("               , ?)                                                   
    ");
                
                pstmt = conn.prepareStatement(sqlBf.toString());
                idx = 1;
                pstmt.clearParameters();
                pstmt.setInt(idx++, Integer.parseInt(strArray[0]));
                pstmt.setString(idx++, strArray[1]);
                pstmt.setString(idx++, strArray[2]);
                
                pstmt.executeUpdate();            
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                if (pstmt != null) {
                    try {
                        pstmt.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
        
        // 连接数据库
        public Connection dbConnection() {
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                
                String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";  
                String user = "scott";  
                String password = "goodluck"; 
                
                conn = DriverManager.getConnection(url, user, password);    
                System.out.println("Connection 开启!");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            
            return conn;
        }
        
        // 关闭数据库
        public void dbDisConnection() {
            if (conn != null) {
                try {
                    conn.close();
                    System.out.println("Connection 关闭!");
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
        public static void main(String[] args) {
            ReadCustomerFile rcf = new ReadCustomerFile();
            rcf.readTxtFileByFileUtils("D:\test\customer_info.txt");
        }
    }

    确认数据库数据:

  • 相关阅读:
    [更新]一份包含: 采用RSA JWT(Json Web Token, RSA加密)的OAUTH2.0,HTTP BASIC,本地数据库验证,Windows域验证,单点登录的Spring Security配置文件
    fstab文件详解
    Struts2与Spring的Maven依赖冲突
    maven正确的集成命令-U -B 等
    CentOS6安装Jenkins
    CentOS6下Jenkins连接Git服务器出错的问题
    GitLab备份的创建与恢复
    开发App到上架应用市场需要经历什么?
    阅读笔记:A Few useful things to Know About machine Learning
    Feature Tools 简介
  • 原文地址:https://www.cnblogs.com/seabird1979/p/4876682.html
Copyright © 2011-2022 走看看