[英]Netbeans Java Desktop Database application with login connecting to users from mysql
[英]Connecting MySQL Workbench database to a Java application in NetBeans
我正在嘗試在 NetBeans 的 Java 應用程序中連接 MySQL 數據庫,該數據庫目前只有 1 個用戶名和密碼條目。 每當我在 MySQL Workbench 中執行 SQL 語句時,都會撤回正確的信息。
我將此作為我在 NetBeans 中的當前代碼,用於將數據庫連接到我創建的登錄頁面:
String userName = inputUsernameTextFrontPage.getText();
String password = inputPasswordTextFrontPage.getText();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","Password23");
String sql = "SELECT username,password FROM adminlogin WHERE username =? AND password =? AND ID =?";
PreparedStatement preparedStatement = conn.prepareStatement(sql);
preparedStatement.setString(1, userName);
preparedStatement.setString(2, password);
preparedStatement.setLong (3, 1);
ResultSet result = preparedStatement.executeQuery();
if(result.next()){
setVisible(false);
new adminLogin().setVisible(true);
}
else{
JOptionPane.showMessageDialog(null, "Incorrect Login Details");
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e.getStackTrace());
}
抱歉,我是新手,當數據庫在 NetBeans 中成功連接時,任何人都可以看到任何問題。 每次我運行程序時,它都會直接跳轉到捕獲部分並帶回“連接錯誤”。
任何幫助將非常感激。 如果您需要任何進一步的信息,請告訴我,因為我不確定這對其他人是否有意義。
添加 e.getStackTrace() 時收到的錯誤消息是使用 e.getStackTrace() 時的錯誤消息
正如其他人已經指出的那樣,您的代碼中有幾個問題。 首先檢查您的 sql 連接器版本,如果它是版本 5,然后避免在classForName()
使用.cj前綴。將其classForName()
為Class.forName("com.mysql.jdbc.Driver");
然后請使用 PreparedStatements 而不是 createStatements 來處理具有可變參數的查詢。
附加:在Java中命名變量時請使用駝峰式大小寫。例如:用戶名必須是用戶名
使用 PreparedStatement 而不是 createStatement 后的示例解決方案。
String username = inputUsernameTextFrontPage.getText();
String password = inputPasswordTextFrontPage.getText();
String sql = "SELECT username,password FROM adminlogin WHERE username =? AND password =? AND ID =?";
PreparedStatement preparedStatement =
connection.prepareStatement(sql);
preparedStatement.setString(1, username);
preparedStatement.setString(2, password);
preparedStatement.setLong (3, 1);
ResultSet result = preparedStatement.executeQuery();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.