PreparedStatement解決sql注入問題


總結 PreparedStatement解決sql注入問題
:sql中使用?做占位符
2.得到PreparedStatement對象
PreparedStatement pst=conn.prepareStatement(String sql);
pst.setString(1,"aaa");//設置 第一個?的占位符賦值
pst.setString(2,"bbb");
 
 
 
// 查找用戶 使用PreparedStatement 解決了 sql注入問題
      public User findUser(User user) {
           String sql = "select * from user where username='?' and password='?'" ;
           Connection conn = null ;
           PreparedStatement pst = null ;
           ResultSet rs = null ;
            try {
                conn = jdbcUtils. getConnection();
                pst = conn.prepareStatement(sql);
                pst.setString(1, user.getUsername());
                pst.setString(2, user.getPassword());
                rs = pst.executeQuery();
                 if (rs.next()) {
                     User u = new User();
                     u.setId(rs.getInt( "id" ));
                     u.setUsername(rs.getString( "username" ));
                     u.setPassword(rs.getString( "password" ));
                     u.setEmail(rs.getString( "email" ));
                      return u;
                }
           } catch (Exception e) {
                 // TODO Auto-generated catch block
                e.printStackTrace();
           }
            return null ;
     }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM