zoukankan      html  css  js  c++  java
  • PreparedStatement 防止sql注入 练习

    使用的数据库 MariaDB 10.5.4版本   端口1054     数据库为jt_db,表 为user  

    数据库的建表和插入相关数据代码:

    create table user(
        id int primary key auto_increment,
        username varchar(50),
        password varchar(50)
    );
    
    insert into user values(null,"张三","123");
    insert into user values(null,"李四","234");
    

    其中使用到的JdbcUtil 类参见:https://www.cnblogs.com/lxsfve/p/13232402.html

    package day02;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.Scanner;
    
    /**
     * @author 小小的梦想丶
     * @create 2020-07-03 19:13:01
     * @desc 练习 prepareStatement 防止sql 注入
     */
    public class loginByPreparedSatementTest {
      public static void main(String[] args) throws Exception {
        // 根据用户名和密码查询用户信息
        // 提示用户输入  账号  密码
        Scanner sc = new Scanner(System.in);
        System.out.println("请登录!!");
        System.out.println("请输入账号>>>");
        String user = sc.nextLine();
        System.out.println("请输入密码>>>");
        String pwd = sc.nextLine();
    
        // 执行login  方法
        login(user, pwd);
      }
    
      private static void login(String user, String pwd) throws Exception {
        // 通过  jdbcutil  获取数据库连接
        Connection conn = JdbcUtil.getConn();
        // 获取 传输器  执行sql 语句
        String sql = "select * from user where username=? and password=?";
        PreparedStatement ps = conn.prepareStatement(sql);
        // 设置参数
        ps.setString(1, user);
        ps.setString(2, pwd);
        // 执行sql 语句    这里不需要传sql 语句  返回结果
        ResultSet rs = ps.executeQuery();
    
        // 处理结果
        // 如果  账号密码正确  则能在数据库中查询到相应得结果  也就是 rs里面有值
        if (rs.next()) {
          System.out.println("登录成功!!!");
        } else {
          System.out.println("账号密码错误,请重新输入!!!");
        }
      }
    }
    

      

  • 相关阅读:
    Linux curl命令添加参数
    postman无限循环执行接口用例
    xshell用root用户登录ubuntu
    centos5 yum源配置
    移动端布局方案
    vue + store2实现未提交信息自动保存
    sublime text里的terminal
    20180204
    2018.1.3 interview
    http协议
  • 原文地址:https://www.cnblogs.com/lxsfve/p/13232426.html
Copyright © 2011-2022 走看看