構文は問題ないようですが、何をすべきかわかりません。親切にそれを理解してください。 INSERT INTO SmartMiner(Outlook VARCHAR(64)、Temp VARCHAR(64)、Humidity VARCHAR(64)、Windy VARCHAR(64)、Play VARCHAR(64))VALUEこれらの値は、 ( 'sunny、hot、high、false、no')バッチ更新例外、1行目のINSERT文の近くで使用される構文が間違っています
例外:java.sql.BatchUpdateException:SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、正しい構文が1行目の「VARCHAR(64)、Temp VARCHAR(64)、Humidity VARCHAR(64)、Windy VARCHAR(64)、Play VARCHAR」の近くにあることを確認してください。
public void FileRead(String st, String tableName) {
Statement stmt = null;
String sql = null;
BufferedReader br = null;
try {
FileReader fr = new FileReader(st);
br = new BufferedReader(fr);
String line = br.readLine();
System.out.println(line);
String[] tokens = line.split(",");
for(int x=0;x<tokens.length;x++){
System.out.println(tokens[x]);
}
setConnection();
//connection.setAutoCommit(false);
stmt = connection.createStatement();
DatabaseMetaData metadata = connection.getMetaData();
ResultSet resultSet;
resultSet = metadata.getTables(null, null, "tableName", null);
if(resultSet!=null){
// next() checks if the next table exists ...
System.out.println("Table exists");
sql = "DROP TABLE IF EXISTS " + tableName;
System.out.println("sql :" + sql);
stmt.executeUpdate(sql);
}
String query = "";
String comma = "";
for (String token : tokens) {
query += comma + token;
comma = ",";
}
sql = "CREATE TABLE SmartMiner (" + query + ")";
System.out.println("sql :" + sql);
stmt.executeUpdate(sql);
line = br.readLine();
if(line != null){
System.out.println(line);
}
while (line != null) {
sql = "INSERT INTO "+tableName+"("+query+")"+"VALUES("+line+")";
System.out.println("sql :" + sql);
stmt.addBatch(sql);
line = br.readLine();
}
stmt.executeBatch();
//connection.commit();
closeConnection();
}