【发布时间】:2017-05-02 16:08:51
【问题描述】:
似乎语法很好但不知道该怎么做?请弄清楚。
这是要插入的行之一:INSERT INTO SmartMiner ( Outlook VARCHAR(64),Temp VARCHAR(64),Humidity VARCHAR(64),Windy VARCHAR(64),Play VARCHAR(64) ) VALUES ('sunny,hot,high,false,no')
异常: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();
}
【问题讨论】:
标签: java mysql sql-server