jdbc中使用PreperedStatement避免SQL注入

PreperedStatement可以避免SQL注入的问题。
如:String sql=“select * from admin where loginname=’”+loginName+"’ and loginpwd=’"+loginPwd+"’";

    在应用中:

        -》请输入账号:
             333
        -》请输入密码:
              wer'or'1'='1
    实际上发送:select * from admin where loginname='333' and loginpwd='wer'or'1'='1',登录成功!
 
 通过PreperedStatement,如下:

PreperedStatement st = null;
String sql = “select * from users where name=? and password=?”;
//获取用于向数据库发送sql语句的Preperedstatement
st = conn.preparedStatement(sql);//在此次传入,进行预编译
st.setString(1, username);
st.setString(2, password);
//向数据库发sql
st.executeQuery();//

发布了37 篇原创文章 · 获赞 2 · 访问量 3217

猜你喜欢

转载自blog.csdn.net/paocai_2019/article/details/102969731