MySQL中問號傳值是一種常見的SQL參數化查詢方式,它可以在執行SQL語句時,將參數值以問號的形式傳遞進來,從而避免了SQL注入攻擊和提升了查詢效率。
try { //連接數據庫 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_test", "root", "123456"); //定義SQL語句 String sql = "SELECT * FROM user WHERE username=? AND password=?"; //創建PreparedStatement對象 PreparedStatement pstmt = conn.prepareStatement(sql); //設置參數值 pstmt.setString(1, "tom"); pstmt.setString(2, "123"); //執行查詢 ResultSet rs = pstmt.executeQuery(); //遍歷結果集 while(rs.next()) { System.out.println(rs.getString("username") + " " + rs.getString("password")); } //關閉資源 rs.close(); pstmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); }
上述代碼中,通過Connection對象獲取PreparedStatement對象后,使用setString方法設置參數值,其中數字1和2表示問號的順序,即第一個問號和第二個問號,最后通過executeQuery方法執行查詢,遍歷結果集獲取數據。