Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

mysql - Using "LOAD DATA LOCAL INFILE" in Java

I have a cvs file which schema is, every field is surrounded with ", and seperated by , and every tuple is a newline with

So in my Java file, I wrote

                String path = "o.csv";
                String esquel = " LOAD DATA LOCAL INFILE " + path +
                            " INTO TABLE recommendations " +
                            " FIELDS TERMINATED BY ',' ENCLOSED BY '"'" +
                            " LINES TERMINATED BY '\n'";

And I execute the statement with the following statement

statement.executeUpdate(esquel);

But it throws an SQLException which says:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'o.csv INTO TABLE recommendations FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES' at line 1

What is my error ?

I would be appreciate if you can help me.

Thanks

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Here is working code which I tested:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class LoadTRPLog2MySql {

    public static void main(String[] args) {

        Class driver_class = null;
        try {
            driver_class = Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return;
        }
        System.out.println("found driver" + driver_class);


        Connection connection = null;
        try {
            connection = DriverManager.getConnection("jdbc:mysql://mysqlserver.com:3306/dbname", "myid","pwd");
        } catch (SQLException e) {
            e.printStackTrace();
        }

        try {
            System.out.println("Established connection to " + connection.getMetaData().getURL());
        } catch (SQLException e1) {
            e1.printStackTrace();
        }

        Statement statement = null;
        try {
            statement = connection.createStatement();
            Statement statement1 = connection.createStatement();
            //windows
            //statement1.executeUpdate( "LOAD DATA LOCAL INFILE 'C:\Users\senthil_sivasamy\Documents\Projects\messageprocessing\log.txt' INTO TABLE  trpwatchlog_tb FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n'");
            //linux  ( " LOAD DATA LOCAL INFILE '/home/username/logname.log' INTO TABLE  logname.log FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n'");
            statement.executeUpdate( "LOAD DATA LOCAL INFILE '/home/username/avail30trplog' INTO TABLE  logname.log FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n'");

            statement1.execute("select * from dbname.tablelog_tb");
            ResultSet rs = statement1.getResultSet();
            System.out.println("Row hostname and timestamp");
            while(rs.next()) {
                System.out.println("Row hostname and timestamp");
                System.out.println(rs.getRow());
                System.out.println(""+rs.getString("hostname"));
                System.out.println(""+rs.getString("timestamp"));
            }
            rs.close();
        } catch(SQLException e) {
        } finally {
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...