java - 对于 PreparedStatement ,executeQuery() 不能带有参数的错误
PHP中文网
PHP中文网 2017-04-18 09:23:18
0
4
610
PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(4)
洪涛

PrepareStatement的使用流程如下:

  1. 使用佔位符SQL實例化

  2. 呼叫bindXX方法完成參數綁定

  3. 呼叫executeUpdate或executeQuery方法,這裡不傳參數了,因為參數都在1、2步驟處理了

巴扎黑

你上面已經把sql傳給pst了 幹嘛還要傳給executQuery呢?

刘奇

你的psr.executeQuery(sql),已經傳了參數得到結果集了,,不用再傳參數了,,

巴扎黑

PreparedStatement 類別是用與預處理sql語句的。
例如:
`ResultSet rs = null;
PreparedStatement loginStatement =

           sqlDAO.sqlConnection().prepareStatement("SELECT username,password FROM user_table WHERE username = ? AND password = ?");
        loginStatement.setString(1, username);
        loginStatement.setString(2, password);
        rs = loginStatement.executeQuery();`

?表示佔位符,我們可以使用setString(int, String) 等方法來為佔位符設定值。其中int 參數為第幾個佔位符(注意不是從0開始,是數學的第幾個)第二個表示參數是我們將要把對應佔位符(?)替換的值。這樣做可以避免我們的資料庫被sql注入。值得注意的是,sql語句關鍵字不可以被佔位符取代,因為佔位符會自動為我們指定的String用單引號包裹導致sql語句執行失敗。手機碼的將就看看

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板