так у меня есть файл CSV, и хотят импортировать его в MySQL, до сих пор в PHPMyAdmin я могу импортировать его с помощью следующей строки:импорт CSV в MySQL с Java
LOAD DATA INFILE 'C:\\Users\\Angel Silva\\Documents\\test.csv' INTO TABLE registros FIELDS ENCLOSED BY '"' TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n'
моей ява программы является:
public class recover {
public static void main(String[] args){
try {
String filename ="C:\\Users\\Angel Silva\\Documents\\test.csv";
String query=null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/gg", "root", "");
Statement stmt = conn.createStatement();
query = "LOAD DATA INFILE 'C:\\Users\\Angel Silva\\Documents\\test.csv' INTO TABLE registros FIELDS ENCLOSED BY '\"' TERMINATED BY ',' ESCAPED BY '\"' LINES TERMINATED BY '\\n'";
stmt.executeQuery(query);
ResultSet rs = stmt.executeQuery(query);
} catch (ClassNotFoundException ex) {
Logger.getLogger(recover.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(recover.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(recover.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(recover.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
я получаю следующие ошибки:
ene 24, 2016 1:28:33 PM recover main
SEVERE: null
java.sql.SQLException: Row 1 was truncated; it contained more data tha there were input columns
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3206)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:1232)
at recover.main(recover.java:29)
как я уже сказал, если я ввел предложение из запроса непосредственно в phpymyadmin, я могу восстановить таблицу, но в java не работает
любая идея, что я делаю неправильно?
Ivan Skalauh thx, но теперь только восстанавливает первую строку таблицы, как я могу восстановить всю таблицу? thx –
Хмм, проблема по-прежнему связана с терминаторами линий. Попробуйте просто \ r или полностью удалите оператор LINES TERMINATED BY (MySQL может обнаружить его автоматически). –