美文网首页
JDBC_Avoid_Injection 避免sql注入

JDBC_Avoid_Injection 避免sql注入

作者: 勇者与王者 | 来源:发表于2019-10-03 00:02 被阅读0次
package Java_JDBC;

import java.sql.*;
import java.util.Scanner;

/**
 * @Author quzheng
 * @Date 2019/10/2 23:41
 * @Version 1.0
 * 防止注入攻击:使用 PreparedStatement接口预编译SQL语句
 */
public class JDBC_Avoid_Injection {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {

        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://192.168.8.14:3306/day22_JDBC";
        String user = "root";
        String password = "123456";
        Connection con = DriverManager.getConnection(url,user,password);


        Scanner sc = new Scanner(System.in);
        String username = sc.nextLine();
        String passwd = sc.nextLine();

        String sql = "select * from users where username=? and PASSWORD=?";
        //调用connection接口方法 PrePareStatement
        // SQL语句中参数全部使用? 占位符
        PreparedStatement pst = con.prepareStatement(sql);
//        Statement st = con.createStatement();

        //调用PreapareStatement接口实现类对象的set方法,设置
        // 占位符的参数
        pst.setObject(1,username);
        pst.setObject(2,passwd);

        // 调用方法,执行sql,参数没有sql
        ResultSet rs = pst.executeQuery();

        while (rs.next()){
            System.out.println(rs.getString("username")+ "   "+rs.getString("PASSWORD"));
        }


        rs.close();
        pst.close();
        con.close();

    }
}

相关文章

网友评论

      本文标题:JDBC_Avoid_Injection 避免sql注入

      本文链接:https://www.haomeiwen.com/subject/hjarpctx.html