JDBC防注入攻击


  
  
  1. package cn.huhui.jdbc;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.util.Scanner;
  10. //注入攻击案列
  11. //防止注入攻击
  12. //Statement接口实现类,作用执行sql语句,返回结果集
  13. //有一个子接口PreparedStatement (Sql语句预编译存储,多次高效执行SQL语句)
  14. //PrepareStatement的实现类数据库的驱动中,如何获接口的是实现类
  15. //是Conection数据库链接对象的方法
  16. //PreparedStatement preparedStaement(String SQl)
  17. public class JdbcDemo03 {
  18.  
  19. public static void main(String[] args) throws ClassNotFoundException, SQLException {
  20. // TODO Auto-generated method stub
  21. // TODO Auto-generated method stub
  22. // 1.注册驱动
  23. Class.forName("com.mysql.jdbc.Driver");
  24. // 2.获取连接对象
  25. String url = "jdbc:mysql://localhost:3306/mybase";
  26. String username = "root";
  27. String password = "root";
  28. Connection con = DriverManager.getConnection(url, username, password);
  29. // 3.获取执行则对象
  30. Statement stat = con.createStatement();
  31. // 4.使用执行者对象执行Sql语句
  32. // ResultSet executeQuery(String sql)
  33. // 返回ResultSet实现类对象
  34. Scanner sc = new Scanner(System.in);
  35. String user = sc.nextLine();
  36. String pass = sc.nextLine();
  37. String Sql = "SELECT * FROM users WHERE username=? AND PASSWORD=?";
  38. PreparedStatement pre = con.prepareStatement(Sql);
  39. pre.setObject(1, user);
  40. pre.setObject(2, pass);
  41. ResultSet rs = pre.executeQuery();
  42. while(rs.next()) {
  43. System.out.println(rs.getString("username")+" "+rs.getString("password"));
  44. }
  45. rs.close();
  46. pre.close();
  47. con.close();
  48.  
  49.  
  50. }
  51.  
  52. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值