http://www.amk.ca/python/writing/DB-API.html
Будьте осторожны, когда вы просто добавляете значения переменных в свои утверждения: Представьте себе пользователь называет себя ';DROP TABLE Users;'
- Вот почему вам нужно использовать sql escaping, который Python предоставляет вам, когда вы используете cursor.execute в приличном режиме. Пример в URL-адресе:
cursor.execute("insert into Attendees values (?, ?, ?)", (name,
seminar, paid) )
Это происходит из-за этой строки в конструкторе: -
enteredPassword = new String(masterPasswordField.getPassword());
Вы берете значение, когда оно только что создано, поэтому значение будет пустым.
Вы должны взять private JPasswordField masterPasswordField;
на уровне класса и затем получить значение при нажатии кнопки: -
public void actionPerformed(ActionEvent event)
{
if(new String(masterPasswordField.getPassword()).equals(masterPassword))
{
.
.
И вы можете избавиться от переменной enteredPassword
.
Вам нужно вызвать getPassword()
в методе actionPerformed()
.
public void actionPerformed(ActionEvent event)
{
enteredPassword = new String(masterPasswordField.getPassword());
if(enteredPassword.equals(masterPassword))
{
JOptionPane.showConfirmDialog(null, "Correct");
//close the masterPasswordFrame and take the user to the Password Vault
}
else
{
JOptionPane.showConfirmDialog(null, "Password Incorrect. Please Try Again.");
}
}