藉助先行編譯防止sql注入攻擊

來源:互聯網
上載者:User

標籤:注入   size   添加使用者   更新   href   prepare   update   cep   添加   

可重用的sql操作類

 1 public ResultSet doQuery(String sql,Object[] params){ 2         ResultSet rs = null; 3         conn = this.getConnection(); 4         try{ 5             PreparedStatement pstmt = conn.prepareStatement(sql); 6             for(int i =0;i<params.length;i++){ 7                 pstmt.setObject(i+1, params[i]); 8             } 9             rs = pstmt.executeQuery();10         }catch(Exception e){11             e.printStackTrace();12         }13         return rs;14     }

 

 1 public int doUpdate(String sql,Object[] params){ 2         int res = 0; 3         conn  = this.getConnection(); 4         try{ 5             PreparedStatement pstmt = conn.prepareStatement(sql); 6             for(int i=0;i<params.length;i++){ 7                 pstmt.setObject(i+1, params[i]); 8             } 9             res = pstmt.executeUpdate();10         }catch(Exception e){11             e.printStackTrace();12         }13         return res;14     }

 

 1 public List<Object>  doQueryList(String sql,Object []params){ 2         List<Object> list = new ArrayList<Object>(); 3         ResultSet rs = this.doQuery(sql, params); 4         try{ 5             ResultSetMetaData rsmd  = rs.getMetaData(); 6             int columnLength = rsmd.getColumnCount(); 7             while(rs.next()){ 8                 Map<String,Object> map = new HashMap<String,Object>(); 9                 for(int i = 1;i<=columnLength;i++){10                     map.put(rsmd.getColumnLabel(i), rs.getObject(i));11                 }12                 list.add(map);13             }14         }catch(Exception e){ 15             e.printStackTrace();16         }17         return list;18     }

 

查詢所有資訊的jsp關鍵代碼如下

 1 <% 2     DBCon dbc = new DBCon(); 3     String sql  = "select * from schema.admin"; 4     List list = dbc.doQueryList(sql, new Object[]{}); 5      6     %> 7     <table border="1"> 8     <%for(int i =0;i<list.size();i++){ 9         Map<String,Object> map = (Map<String,Object>)list.get(i);10         %>11         <tr>12             <td><%=map.get("id") %></td>13             <td><%=map.get("username") %></td>14             <td><%=map.get("password") %></td>15             <td><a href="do_delete.jsp?id=<%=map.get("id")%>">刪除</a></td>16             <td><a href="do_edit.jsp?id=<%=map.get("id")%>">編輯</a></td>17         </tr>18     <%}19     dbc.close();20     %>21     </table>22     <a href="addAdmin.jsp">添加使用者</a>

更新、刪除登操作同理,不再列出。

 

藉助先行編譯防止sql注入攻擊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.