Я использую подготовленный оператор для вставки в свою базу данных.Некоторые из значений, которые я вставляю, имеют значение ПУСТО (NULL), так как совпадения еще не воспроизведены, и поэтому счет равен NULL, NULL.
void insertFixtures(List<String[]> fixtures) throws SQLException{
String query = "REPLACE INTO games (team1_id, team2_id, score1, score2, created_at, winner) VALUES (? ,?, ?, ?, ?, ?)";
Connection con = DBConnector.connect();
PreparedStatement stmt = con.prepareStatement(query);
for (String[] s : fixtures) {
try{
stmt.setString(1,s[0]);
stmt.setString(2,s[1]);
Integer score1 = s[2] != null ? Integer.parseInt(s[2]) : null;
Integer score2 = s[3] != null ? Integer.parseInt(s[3]) : null;
stmt.setInt(3, score1);
stmt.setInt(4, score2);
stmt.setString(5,s[4]);
String date = s[4];
int winner;
int dateValue = Integer.parseInt(date);
if (score1 > score2 && dateValue != 0) {
winner = 1;
} else if (score2 > score1 && dateValue != 0) {
winner = 2;
} else if(dateValue != 0) {
winner = 0;
} else {
winner = 3;
}
String gameWinner = Integer.toString(winner);
} catch (NumberFormatException e) {
e.printStackTrace();
}
stmt.execute();
}
stmt.close();
con.close();
}
InsertFixtures принимает массив строк списка и вставляет их в мою базу данных, используя дляпетля.У меня проблема с:
This is the print stack trace of the NullPointerException i get.
java.lang.NumberFormatException: For input string: "null"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at footballresults.MashapeClient.insertFixtures(MashapeClient.java:130)
at footballresults.MashapeClient.main(MashapeClient.java:190)
в строке 130 код:
Integer score1 = s[2] != null ? Integer.parseInt(s[2]) : null;
Здесь я пытаюсь проанализировать строку из массива как целое число, если оно не равно нулюЯ хочу, чтобы он был вставлен в базу данных как ноль.Поскольку dateValue равно 0 для сыгранных игр, он не должен входить в число победителей, если в утверждениях.
Это пример строк, которые я пытаюсь вставить в мою базу данных:
Fixture 45 42 1 0 1554642300
Fixture 49 48 null null 0
Любойпомощь полезнаСпасибо