簡體   English   中英

如何在另一個類中檢索用戶名和密碼?

[英]How to retrieve username and password in another class?

以下LOGINFORM類存儲用於登錄GUI的正確用戶名和密碼。

登錄課程....

public class LoginForm extends javax.swing.JFrame {

String username;
String password;

//rest of code here

如何檢索要在行中另一個類的預准備語句中使用的Loginform用戶名和密碼(“SELECT * FROM AcademicInfo,其中Email =?和Password =?”); 取代? ,這將使我能夠從sql數據庫中獲取特定字段?

檢索類......

public void retrieveAcademic() {

try {
pst = con.prepareStatement("SELECT * FROM AcademicInfo where Username=? and Password=?");
rs = pst.executeQuery();
while (rs.next()) {
          title = (rs.getString(2));
          forename = (rs.getString(3));
          surname = (rs.getString(4));
          role = (rs.getString(5));
          room = (rs.getString(6));
          page = (rs.getString(7));
          hours = (rs.getString(8));
          phone = (rs.getString(9));
          mobile = (rs.getString(10));
          email = (rs.getString(11));


         } //end while
  } 

Loginform需要引用包含retrieveAcademic()方法的類的實例。 如何創建/傳遞該引用在很大程度上取決於應用程序的結構(例如,通過依賴注入,簡單的構造等)。

請注意,替代方法是使您的db相關類具有對LoginForm的引用並調用適當的getter,例如getPassword()getUsername()

但我懷疑你想要某種包含這些憑證的模型對象,以便其他組件可以在需要時訪問它們。 您的登錄表格是暫時的,您將來可能還有其他登錄方式(例如,您可能有網絡服務或類似服務)。 我意識到這可能是遠遠領先的想法,但你明白了。

然后傳遞用戶名/密碼的最簡單方法是將它們作為2個參數傳遞,例如

db.retrieveAcademic(username, password);

並在該方法中為相應的字段調用PreparedStatement.setString()

(您可能希望將usernamepassword字段包裝到單獨的對象Credentials或類似對象中,但稍后會出現這種情況)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM