Answer the question
In order to leave comments, you need to log in
Recall of a line, duplication of request, how to solve?
There is a loop that iterates through the rows in the database and compares them with the entered row.
If the line repeats, then writes "Email is busy". Otherwise, the line is entered into the database.
There is a problem, if you first enter the mail that is already in the database, and then a new one, then the request of the first will be duplicated, after the second is completed.
private static String checkemail(Connection emailconnect) {
String query = "SELECT COUNT(*) FROM testdatabase.signup;";// Задаем параметр запроса - количество строк
String email = null;// Задаем переменную email, которая будет возвращена в случаи, если он уникален
try {
email = Signup.reademail(email);// считываем с клавиатуры email
Statement statement = emailconnect.createStatement();//создал статемент
ResultSet resultSet = statement.executeQuery(query);//сделал запрос, ответ записал в переменную
int id = 0;
while (resultSet.next()){
id = resultSet.getInt(1); // считываю по стокам и перевожу количество строк в ID
}
int x = 0;// нумерация запроса
int y = 1;// нумерация строки
while (x < id){
String emailid = "SELECT * FROM testdatabase.signup where id = " + y + ";";// строка запроса
Statement statementemail = emailconnect.createStatement();//создание статемента
ResultSet resultSetemail = statementemail.executeQuery(emailid);//получение результатов
resultSetemail.next();// хз зачем эта строка, но без нее не работает (я знаю, что это для того чтоб читать построчно)
String emailres = resultSetemail.getString(2);//записываем результат в строку
System.out.println("Это строка " + email);
System.out.println("Это результат с БД " + y + " " + emailres);
if(email.equals(emailres)){ //сравниваем результат из БД и результат введенный с клавиатуры
System.out.println("E-mail занят");
Signup.checkemail(emailconnect);// если повторяется вызываем метод снова
}
x = x + 1;
y = y + 1;
}
} catch (SQLException e) {
e.printStackTrace();
}
return email;// иначе возвращаем значение email
}
private static String reademail(String email) {
System.out.println("Введите E-mail:");//Объявил
Scanner scanneremail = new Scanner(System.in);//метод
email = scanneremail.nextLine();//scanner() для считывания строки
return email;//вернул его значение
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question