2017-07-18 81 views
0

這是我寫db查詢的方法。如何使用IO與JDBC連接

 public static void post() throws Exception{ 

     int clientMPNumber = Parcel.typeClientNumber(); 
     int orderPassword = Parcel.generatePass(); 

     try{ 
      Connection con = ConnectionDB.getConnection(); 
      PreparedStatement posted = con.prepareStatement("UPDATE `BankDB`.`Info` SET `Money`='77777' WHERE `ClientID`='77' AND `ClientPass`='1111';"); 

      posted.executeUpdate(); 
     }catch(Exception e){System.out.println(e);} 
    finally{  
     System.out.println("Insert completed"); 
    } 
    } 

我想要做類似ATM機的事情。所以我希望用戶輸入他的ID和密碼,然後用戶可以提款或存款。 所以我想檢查登錄數據的正確性。用戶需要輸入正確的ID /密碼[登錄/密碼放置在MySQL DB中]。

PreparedStatement posted = con.prepareStatement("UPDATE `BankDB`.`Info` SET `Money`='77777' WHERE `ClientID`='USER TYPES IT' AND `ClientPass`='USER TYPES IT';"); 

有一句話:「USER TYPES IT」,這是我的問題。我想在這裏使用掃描儀或類似的東西。我該怎麼做?

+0

你檢查[Java的掃描儀教程](HTTP ://javatutorialhq.com/java/util/scanner-class-tutorial/)已經?這是一個開始的好地方。另外,關於數據訪問:在現實生活中,您希望將綁定變量用於用戶輸入,並且永遠不應該以純文本形式存儲密碼;你存儲他們散列(用一些鹽)。 –

+0

你不應該在'finally'塊中打印'Insert completed'。它可能不完整。你應該在'try'塊中打印它。 – EJP

回答

2

一種你原型(只是舉個例子,你應該分手了部分獲取用戶ID,密碼,這個功能之外更好的做法):

public void post(){ 
    Scanner sc = new Scanner(System.in); 
    System.out.println ("please enter user id:"); 
    String userId = sc.nextLine(); 
    System.out.println("please enter password:"); 
    String pass = sc.nextLine(); 
    Connection con; 
    PreparedStatement posted; 
    try { 
     con = ConnectionDB.getConnection(); 
     String sql = "UPDATE `BankDB`.`Info` SET `Money`='77777' WHERE `ClientID`=? AND `ClientPass`=?"; 
     posted = con.prepareStatement(sql); 
     posted.setString(1, userId); 
     posted.setString(2, pass); 
     posted.executeUpdate(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     posted.close(); 
     con.close(); 
    } 
} 
+0

非常感謝你的回答。我在最後一塊中有一個小錯誤。 「發佈無法解析」和「無法解析」。你知道爲什麼嗎? :D – damianm

+0

,我不確定掃描儀爲什麼只能使用一次。不是兩次 – damianm

+0

我編輯了代碼,將'con'和''''從'try'塊移出,以便可以在'finally'塊中到達。你說'掃描儀只工作一次,不是兩次',你是什麼意思? –