[英]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() 。
(您可能希望將username
和password
字段包裝到單獨的對象Credentials
或類似對象中,但稍后會出現這種情況)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.