JDBC-防止sql注入漏洞
使用预编译可有效防止sql的注入漏洞。
原因:在statement中不能够有效的防止sql的注入漏洞,在于用户传入参数的时候可能会传入一些特殊字符,比如单引号' ' ,或者是– 这种会影响到我们的sql语句.
所以使用预编译中的占位符,也就是?,可以有效的处理这一问题.
public class Prepared {@Testpublic void papa(){Connection conn = null;PreparedStatement pstmt = null;ResultSet rs = null;try{//注册驱动// Class.forName("com.mysql.jdbc.Driver");//建立连接// conn = DriverManager.getConnection("jdb<i style="color:transparent">本文来源gaodai$ma#com搞$代*码*网(</i>c:mysql://localhost:3306/user","root","dumy");conn =JDBCUtils.getConnection();//编写sql代码//String sql = "select * from administer where id = ?";String sql = "select * from administer where username = ? and password =?";//预编译pstmt = conn.prepareStatement(sql);//给? 赋值pstmt.setString(1, "ddd");pstmt.setString(2, "123");rs= pstmt.executeQuery();while(rs.next()){System.out.println("登录成功");}}catch(Exception e){e.printStackTrace();}finally{JDBCUtils.release(pstmt, conn, rs);}}}
以上就是jdbc怎么防止sql注入?的详细内容,更多请关注搞代码gaodaima其它相关文章!