Я разрабатываю онлайн-приложение для банковских операций, и это 1 часть, где я застрял.Извлечь последнюю строку, вставленную в БД
-> Пользователям показана форма на HTML-странице, чтобы ввести их данные, чтобы создать учетную запись.
-> Затем данные вводятся в базу данных MySQL, и пользователь перенаправляется на страницу JSP, где ему должен быть указан номер его учетной записи (сгенерированный автоматически с использованием функции автоматического увеличения MySQL) и секретный 4-значный pin (генерируется случайным образом для каждого пользователя, а не путем автоматического увеличения).
Код sinppet из метода моего сервлета doPost() для вставки значений в БД и перенаправление JSP является здесь-
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/inb", "root", "root");
//The user's password has to be converted into a salted hash before storing in the database.
String hashed_password=CreateDigest.getPasswordDigest(request.getParameter("password"));
PreparedStatement ps=con.prepareStatement("insert into inb.users values (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
ps.setString(1, request.getParameter("name1"));
ps.setString(2, request.getParameter("name2"));
ps.setString(3, request.getParameter("name3"));
ps.setString(4, request.getParameter("dob"));
ps.setInt(5, Integer.parseInt(request.getParameter("age")));
ps.setString(6, request.getParameter("email"));
ps.setString(7, request.getParameter("mobnum"));
ps.setString(8, request.getParameter("address1"));
ps.setString(9, request.getParameter("address2"));
ps.setString(10, request.getParameter("pannum"));
ps.setString(11, request.getParameter("aadhar"));
ps.setString(12, hashed_password);
ps.setString(13, request.getParameter("acc_bal"));
ps.setInt(14, pin);
int i=ps.executeUpdate();
//Check if records have been actually been inserted or not.
if (i>0) {
response.sendRedirect("AccountOpened.jsp");
}
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Теперь это код JSP для отображения учетной записи нет. и штифт USER- (last_acc_no и last_pin статические переменные в моем Servlet класс, который я создан, чтобы держать последнюю вставленную счет нет и пин-код.)
<%
String acc_no=CreateAccount.last_acc_No;
int pin=CreateAccount.last_pin;
%>
<h3>Congratulations ! Your account has been created.</h3>.
<br/><br/>
Your Account Number Is : <b> <%= acc_no %> </b>
<br/><br/>
Your Secret PIN No. Is : <b> <%= pin %> </b>
Теперь я хочу, чтобы получить ACCOUNT_NO и пин-код последнего вставленного пользователя, чтобы я мог показать его на странице JSP. И я не могу найти способ для этого.
'static' переменные в классе сервлетов ** плохо **! Следующая вещь - не использовать sriptlets в JSP! Вопрос: почему вы используете 'redirect()' вместо 'RequestDispatcher'? – NINCOMPOOP
@TheNewIdiot, что еще хуже: OP создает соединение с базой данных вручную вместо использования пула соединений с базой данных, и нет никакой разницы между Model и Controller в этом приложении, а также показывает отсутствие знаний о разработке многоуровневых приложений для целей обслуживания. –