线程“awteventque0”java中的mysql异常。lang.NullPointerException登录表单错误
我的代码的目的是打开“Gestionnaire”窗口或返回错误消息“无效用户名/密码”,但是当我在登录表单中单击登录而不是发送错误“无效用户名/密码”时,它返回错误:
java线程“AWT-EventQueue-0”中出现异常。lang.NullPointerException 在javaapplicationhotel2。登录表单。jButton_LoginActionPerformed(Login_Form.java:426) 在javaapplicationhotel2。登入表格$8。已执行操作(登录表单java:206) 在爪哇。桌面/javax。摆动抽象按钮。fireActionPerformed(AbstractButton.java:1967) 在爪哇。桌面/javax。摆动AbstractButton$Handler。actionPerformed(AbstractButton.java:2308) 在爪哇。桌面/javax。摆动DefaultButtonModel。fireActionPerformed(DefaultButtonModel.java:405) 在爪哇。桌面/javax。摆动DefaultButtonModel。setPressed(DefaultButtonModel.java:262) 在爪哇。桌面/javax。摆动普拉夫。基本的基本按钮列表。mouseReleased(BasicButtonListener.java:279) 在爪哇。桌面/java。awt。AWTEventMulticaster。鼠标释放(AWTEventMulticaster.java:297) 在爪哇。桌面/java。awt。组成部分ProcessMouseeEvent(Component.java:6636) 在爪哇。桌面/javax。摆动JComponent。processMouseEvent(JComponent.java:3342) 在爪哇。桌面/java。awt。组成部分processEvent(Component.java:6401) 在爪哇。桌面/java。awt。容器processEvent(Container.java:2263) 在爪哇。桌面/java。awt。组成部分dispatchEventImpl(Component.java:5012) 在爪哇。桌面/java。awt。容器dispatchEventImpl(Container.java:2321) 在爪哇。桌面/java。awt。组成部分dispatchEvent(Component.java:4844) 在爪哇。桌面/java。awt。轻量级调度员。retargetMouseEvent(Container.java:4918) 在爪哇。桌面/java。awt。轻量级调度员。ProcessMouseeEvent(Container.java:4547) 在爪哇。桌面/java。awt。轻量级调度员。dispatchEvent(Container.java:4488) 在爪哇。桌面/java。awt。容器dispatchEventImpl(Container.java:2307) 在爪哇。桌面/java。awt。窗dispatchEventImpl(Window.java:2762) 在爪哇。桌面/java。awt。组成部分dispatchEvent(Component.java:4844) 在爪哇。桌面/java。awt。事件队列。dispatchEventImpl(EventQueue.java:772) 在爪哇。桌面/java。awt。事件队列4美元。运行(EventQueue.java:721) 在爪哇。桌面/java。awt。事件队列4美元。运行(EventQueue.java:715) 在爪哇。base/java。安全访问控制器。doPrivileged(AccessController.java:391) 在爪哇。base/java。安全ProtectionDomain$JavaSecurityAccessImpl。doIntersectionPrivilege(ProtectionDomain.java:85) 在爪哇。base/java。安全ProtectionDomain$JavaSecurityAccessImpl。doIntersectionPrivilege(ProtectionDomain.java:95) 在爪哇。桌面/java。awt。事件队列5美元。运行(EventQueue.java:745) 在爪哇。桌面/java。awt。事件队列5美元。运行(EventQueue.java:743) 在爪哇。base/java。安全访问控制器。doPrivileged(AccessController.java:391) 在爪哇。base/java。安全ProtectionDomain$JavaSecurityAccessImpl。doIntersectionPrivilege(ProtectionDomain.java:85) 在爪哇。桌面/java。awt。事件队列。dispatchEvent(EventQueue.java:742) 在爪哇。桌面/java。awt。EventDispatchThread。pumpOneEventForFilters(EventDispatchThread.java:203) 在爪哇。桌面/java。awt。EventDispatchThread。pumpEventsForFilter(EventDispatchThread.java:124) 在爪哇。桌面/java。awt。EventDispatchThread。pumpEventsForHierarchy(EventDispatchThread.java:113) 在爪哇。桌面/java。awt。EventDispatchThread。pumpEvents(EventDispatchThread.java:109) 在爪哇。桌面/java。awt。EventDispatchThread。pumpEvents(EventDispatchThread.java:101) 在爪哇。桌面/java。awt。EventDispatchThread。运行(EventDispatchThread.java:90)
这是我的代码:
PreparedStatement st;
ResultSet rs;
// donnez l'username et le password
String username = jTextField_Username.getText();
String password = String.valueOf(jPasswordField.getPassword());
// requete indiquant si les identifiants existent
String query = "SELECT * FROM 'users' WHERE 'username' = ? AND 'password' = ?";
try {
st = (PreparedStatement) Connecter.getConnection().prepareStatement(query);
st.setString(1, username);
st.setString(2, password);
rs = st.executeQuery();
if(rs.next())
{
//ouvrir le gestionnaire
Gestionnaire form = new Gestionnaire();
form.setVisible(true);
form.pack();
form.setLocationRelativeTo(null);
this.dispose();
}else{
//erreur
JOptionPane.showMessageDialog(null, " Invalid Username / Password", "Login Error",2);
}
} catch (SQLException ex) {
java.util.logging.Logger.getLogger(Login_Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
这是我的连接器:
package javaapplicationhotel2;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.sql.*;
/**
*
* @author camil
*/
public class Connecter {
public static Connection getConnection() {
return con;
}
static Connection con;
public Connecter() {
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}catch(ClassNotFoundException e){
System.err.println(e);
}
try{
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/hotel","root","");
}catch(SQLException e){System.err.println(e);}
}
Connection obtenirconnexion(){return con;}
PreparedStatement prepareStatement(String select__from_classe) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
# 1 楼答案
应该是
或者