2017-05-26 108 views
-6
try{ 
    Class.forName("com.mysql.jdbc.Driver"); 
    con=DriverManager.getConnection("jdbc:mysql://localhost/phpMyAdmin/Database_Name","root",""); 
    stmt=con.createStatement(); 
    } 

這是我的代碼,以建立連接的B/W我的電腦和數據庫,並在此之後我接收來自用戶的用戶名和密碼,然後我執行此查詢SQL查詢返回「顯示java.lang.NullPointerException」

try { 
     rs=stmt.executeQuery("SELECT * FROM d 
     teacher_info WHERE UserName 
     = '"+userName+"' AND teacher_info.password 
     ="+password); 
    } 

的問題是,每當我執行查詢,我得到 顯示java.lang.NullPointerException 3次連續 任何想法,這可能是爲什麼發生?

+1

單引號'瞭解準備好的發言,以防止SQL注入 – Jens

+0

閱讀[問]和改善你的問題。添加[MCVE]那是不是你如何編寫查詢在2017年,開放式SQL注入 – Jens

+1

,http://bobby-tables.com/ https://en.wikipedia.org/wiki/SQL_injection – luk2302

回答

4

沒有與您的查詢和代碼在這裏

  1. 缺少空間= '"+userName+"' AND teacher_info

  2. 多的問題,你不能與訪問另一個表列teacher_info.password一樣,如果沒有某種JOINjoin說表)

  3. 不將用戶輸入一樣,而使用參數化查詢,以避免SQL注入攻擊

  4. 也缺少這一個.password ="+password);

+2

還缺少兩個'''在這一個'。密碼=「+密碼);' – Luke

+0

1.哪兒是缺少空間2? 。@Luke只有在密碼是一個字符串。如果只是數字,那麼它的橡木 – XtremeBaumer

+0

@Luke,漂亮的抓...列入答案。謝謝 – Rahul