Не удается получить ввод от сканера в моем коде JDBC

#date #java.util.scanner #localdate #mssql-jdbc

Вопрос:

Проблема в том, что я получаю исключение в основном потоке, когда пытаюсь получить данные со сканера в своем коде JDBC, иначе, если я удалю сканер и введу данные вручную, код будет работать идеально. Вот код :

 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.ZoneId; import java.util.Date; import java.util.Scanner;  public class InsertDataToSql {   public void insertInDatabase(Employee employee) {  Scanner scanner = new Scanner("System.in");   Connection connection = null;  PreparedStatement prepareStatement = null;  try {  connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/employee",  

«корень», «азбука»); prepareStatement = соединение .prepareStatement(«вставить в emp_tbl(ино,имя,зарплата,createad_by,created_on) значения(?,?,?,?,?) «);

 // Date date = new Date(); // java.sql.Date todayDate = new java.sql.Date(date.getTime());   ZoneId defaultZoneID = ZoneId.systemDefault();   System.out.println("Enter date **");   System.out.println("Enter Day : ");  int date_Day = scanner.nextInt();   System.out.println("Enter Month : ");  int date_Month = scanner.nextInt();   System.out.println("Enter Year : ");  int date_Year = scanner.nextInt();   LocalDate localDate = LocalDate.of(date_Year, date_Month, date_Day);   SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");   Date date = Date.from(localDate.atStartOfDay(defaultZoneID).toInstant());   System.out.println(date);   java.sql.Date todayDate = new java.sql.Date(date.getTime());   prepareStatement.setInt(1, employee.getEno());  prepareStatement.setString(2, employee.getName());  prepareStatement.setDouble(3, employee.getSalary());  prepareStatement.setString(4, employee.getUsername());  prepareStatement.setDate(5, todayDate);   int executeUpdate = prepareStatement.executeUpdate();   if (executeUpdate gt; 0) {  System.out.println("insertion done");  } else {  System.out.println("insertion failed");  }   } catch (SQLException e) {  e.printStackTrace();  } finally {  try {  prepareStatement.close();  } catch (SQLException e) {  e.printStackTrace();  }  try {  connection.close();  } catch (SQLException e) {  e.printStackTrace();  }  }  } }  

Это вывод на консоль. пожалуйста, Помогите

 Enter date ** Enter Day :  Exception in thread "main" java.util.InputMismatchException  at java.base/java.util.Scanner.throwFor(Scanner.java:939)  at java.base/java.util.Scanner.next(Scanner.java:1594)  at java.base/java.util.Scanner.nextInt(Scanner.java:2258)  at java.base/java.util.Scanner.nextInt(Scanner.java:2212)  at audit/com.greyCampus.InsertDataToSql.insertInDatabase(InsertDataToSql.java:33)  at audit/com.greyCampus.MainDatabaseExecuterOfEmployee.main(MainDatabaseExecuterOfEmployee.java:15)