#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)