java uses javacsv to read the csv file and import it into the Mysql database

The package and test files have been uploaded:

package csv;

import java.io.IOException;
import java.nio.charset.Charset;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;

public class DB2ExportCsv   
{   
    /**  
    * Read CSV file  
     * @param con database access
     * @param csvFilePath file path
    */  
    public static void  readCsv(String csvFilePath, Connection con){   
        try {       
        		String sql="INSERT INTO app_stock_news(title,external_links,create_time,news_time,stock_code,stock_name,content) VALUES(?,?,?,?,?,?,?)";
        		PreparedStatement pStatement=con.prepareStatement(sql);
        		
        		ArrayList<String[]> csvList = new ArrayList<String[]>(); //Used to save data
        		//Generate a CsvReader object, with , as the delimiter, GBK encoding
        		CsvReader reader = new CsvReader(csvFilePath,',',Charset.forName("gbk")); //Generally you can use this code to read     
                reader.readHeaders(); // Skip headers If you need headers, don't write this.  
                //Read records one by one until finished
                while(reader.readRecord()){
                    csvList.add(reader.getValues());   
                }               
                reader.close();   
                for(int row=0;row<csvList.size();row++){   
                     String cell = csvList.get(row)[0]; //Get the data of row row and column 0  
                     System.out.println(cell+"    "+ csvList.get(row)[1]+"    "+ csvList.get(row)[2]+"   "+ csvList.get(row)[3]+"    "+ csvList.get(row)[4]);   
                 	if( csvList.get(row)[0]!=null||csvList.get(row)[1]!=null||csvList.get(row)[2]!=null||csvList.get(row)[3]!=null||csvList.get(row)[4]!=null||csvList.get(row)[5]!=null&&csvList.get(row)[6]!=null){
        				pStatement.setString(1, csvList.get(row)[1]);//title
        				pStatement.setString(2, csvList.get(row)[2]);//external_links
        				pStatement.setString(3, csvList.get(row)[0]);
        				pStatement.setString(4, csvList.get(row)[5]);
        				pStatement.setString(5, csvList.get(row)[4]);
        				pStatement.setString(6, csvList.get(row)[3]);
        				pStatement.setString(7, csvList.get(row)[6]);
        				pStatement.execute();
        			}else{
        				System.out.println("This data is incomplete, discard..");
        			}
                }        
            } catch (Exception ex) {   
                    System.out.println(ex);   
              }   
    }   
       
// Write to CSV file, no append function, so you have to rewrite every time (including the header):
//
//    1 CsvWriter wr =new CsvWriter("F://Eclipse//Test//src//info.csv",',',Charset.forName("GBK"));
//    2         String[] contents = {"Lily","五一","90","女"};                    
//    3         wr.writeRecord(contents);
//    4         wr.close();
    
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
    	String csvFilePath = "D://jiangwan//jrj_ssgs_11_content11_1.csv";  
    	Class.forName("com.mysql.jdbc.Driver");
		Connection con=DriverManager.getConnection("jdbc:mysql://LocalHost:3306/tradergem_news", "root","123456");
		System.out.println("Database connection is successful!");
    	readCsv(csvFilePath,con);
    	System.out.println("Data import complete!");
	}
    
}

 

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326507563&siteId=291194637