2013-07-01 15 views
-1

我是jsp頁面的新手,嘗試通過檢查數據庫中的用戶名和密碼來創建登錄頁面。下面是代碼:PreparedStatement在jsp頁面中未定義錯誤

protected void CheckUser(String username, String password) 
{ 

    try { 
     connect(); 
     PreparedStatement preparedStatement = con.PreparedStatement(
     "SELECT * Users WHERE username = ? AND password = ?"); 
preparedStatement.setString(1,username); 
preparedStatement.setString(2,password); 
ResultSet rs = (ResultSet) preparedStatement.executeQuery(); 

    } catch (Exception e) { 
     System.out.println("cannot connect"); 
     e.printStackTrace(); 
    } 

} 

我得到con.PreparedStatement

以下錯誤
The method PreparedStatement(String) is undefined for the type Connection 

誰能幫助我?

感謝

編輯:這是我的連接功能:

static String dbUrl="jdbc:mysql://localhost:3306/Bank"; 
    static String username="root"; 
    static String password=""; 

    static Connection con=null; 

    public static void connect() 
    { 
     try { 
     Class.forName("com.mysql.jdbc.Driver").newInstance(); 
     con=(Connection) DriverManager.getConnection(dbUrl,username,password); 
     System.out.println("Connected!"); 

     } 
     catch (Exception e) { 

      e.printStackTrace(); 
      System.out.println("not connected"); 

     } 

    } 
+1

你能告訴我們的Connection對象。它來自sql包嗎?你在哪裏創建Connection對象? – JHS

+0

@Junaid我編輯了這個問題,它連接並打印出連接成功 – yrazlik

+0

我在servlet中創建連接對象 – yrazlik

回答

1

不清楚其他的東西,但你的查詢是錯誤的考慮它不是一個錯字,將拋出SQLException

應該

"SELECT * FROM Users WHERE username = ? AND password = ?" 
      ^^^^ 
      |||| 
      here 
+0

我不明白,這與我的查詢不一樣嗎? – yrazlik

+0

@bigO檢查我已添加的部分的「^^^^」標記。你在querie中忘記了'from' – Smit

+0

哦,你是正確的 – yrazlik

4

你拼寫錯誤的方法Connection#prepareStatement(String sql) throws SQLException

它應該是con.prepareStatement而不是con.PreparedStatement

+0

看起來很棒。涼。 – JHS

+0

@BheshGurung你想編輯你的答案並提及'sql'查詢問題。然後,我將刪除我的答案作爲其問題問題的不正確答案,而不是即將到來的例外答案。 – Smit

+0

@Smit:答案並不需要當場正確,但它必須是有用的。而你的答案實際上是有幫助的。 +1。 –

2
  1. 你必須做PreparedStatement preparedStatement = con.prepareStatement("your Query");
  2. 您需要在您的查詢的from關鍵字來創建一個準備好的聲明。

因此,你的代碼應該看起來像

PreparedStatement preparedStatement = con.prepareStatement("SELECT * from Users WHERE username = ? AND password = ?");