Mysql-connector-java-3.1.10 é um conector de JDBC para a base de dados MYSQL. O MYSQL fornece a utilidade Load Data Infile para importar os dados de arquivos csv, txt ou xls para tabelas de banco de dados.

O exemplo abaixo importa os dados de um arquivo .txt para uma tabela.

O arquivo temp.txt tem seus dados separados por tab:


"1 string"      100
"2 string"      102
"3 string"      104
"4 string"      106
testtable structure
CREATE TABLE testtable
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
text varchar(45) NOT NULL,
price integer not null);
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class automateImport
{
    public static void main(String[] args) 
    {
        DBase db = new DBase();
        Connection conn = 
               db.connect("jdbc:mysql://localhost:3306/test","root","caspian");
        db.importData(conn,args[0]);
    }

}

class DBase
{
    public DBase()
    {
    }

    public Connection connect(String db_connect_str, 
                              String db_userid, String db_password)
    {
        Connection conn;
        try 
        {
            Class.forName("com.mysql.jdbc.Driver").newInstance();

            conn = DriverManager.getConnection(db_connect_str, 
                                               db_userid, db_password);

        }
        catch(Exception e)
        {
            e.printStackTrace();
            conn = null;
        }

        return conn;    
    }
    
    public void importData(Connection conn,String filename)
    {
        Statement stmt;
        String query;

        try
        {
            stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                        ResultSet.CONCUR_UPDATABLE);

            query = "LOAD DATA INFILE '"+filename+ 
                    "' INTO TABLE testtable (text,price);";

            stmt.executeUpdate(query);
                
        }
        catch(Exception e)
        {
            e.printStackTrace();
            stmt = null;
        }
    }
}; 

Se você quiser importar arquivos CSV, você pode utilizar a seguinte query:


query = "LOAD DATA INFILE '"+filename+"' INTO TABLE testtable  FIELDS
 TERMINATED BY ',' (text,price)";