jdbc-实现用户登录业务(存在sql注入)

package com.cqust;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

//模拟用户登录,验证成功还是失败
public class JDBCTest05 {
public static void main(String[] args) throws Exception {
//初始化界面,返回用户输入的信息,使用map集合存储
Map

}

/**
 * 用户登录界面
 * @return 返回用户的信息,存在集合中
 */
public static Map<string,string> initLogin(){
    Map<string,string> userInfo = new HashMap<>();
    System.out.print("&#x8BF7;&#x8F93;&#x5165;&#x4F60;&#x7684;&#x7528;&#x6237;&#x540D;:");
    Scanner scanner = new Scanner(System.in);
    String username =  scanner.next();
    System.out.print("&#x8BF7;&#x8F93;&#x5165;&#x4F60;&#x7684;&#x5BC6;&#x7801;:");
    String userpwd = scanner.next();
    userInfo.put("username",username);
    userInfo.put("userpwd",userpwd);

    return userInfo;
}

/**
 * &#x4F7F;&#x7528;jdbc&#x6280;&#x672F;&#x5B8C;&#x6210;&#x767B;&#x5F55;&#x68C0;&#x6D4B;
 * @param map &#x7528;&#x6237;&#x7684;&#x4FE1;&#x606F;&#x5B58;&#x50A8;&#x5728;&#x96C6;&#x5408;map&#x4E2D;
 * @return  &#x6700;&#x540E;&#x8FD4;&#x56DE;&#x767B;&#x5F55;&#x6210;&#x529F;&#x8FD8;&#x662F;&#x5931;&#x8D25;
 * @throws Exception &#x8FD9;&#x91CC;&#x4E3A;&#x4E86;&#x7701;&#x70B9;&#x52B2;&#x76F4;&#x63A5;throws
 */
public static boolean login(Map<string,string> map) throws Exception{
    String username = map.get("username");
    String userpwd = map.get("userpwd");
    boolean loginInfo = false;
    //1.&#x6CE8;&#x518C;&#x9A71;&#x52A8;
    Class.forName("com.mysql.jdbc.Driver");
    //2.&#x83B7;&#x53D6;&#x8FDE;&#x63A5;
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/cqust_db",
            "root","hch1");
    //3.&#x83B7;&#x53D6;&#x6570;&#x636E;&#x5E93;&#x64CD;&#x4F5C;&#x5BF9;&#x8C61;
    Statement statement = connection.createStatement();

    //4.&#x5199;sql&#xFF0C;&#x6267;&#x884C;sql
    String sql = "select username,userpwd from t_user_login where username = '"+username+"' and userpwd = '"+userpwd+"'";

    ResultSet resultSet = statement.executeQuery(sql);
    //5.&#x8FD9;&#x91CC;&#x53EA;&#x9700;&#x8981;&#x770B;&#x662F;&#x5426;&#x6709;&#x6570;&#x636E;&#xFF0C;&#x5982;&#x679C;&#x67E5;&#x8BE2;&#x5230;&#x6570;&#x636E;&#xFF0C;&#x5219;&#x767B;&#x5F55;&#x6210;&#x529F;&#xFF0C;&#x76F4;&#x63A5;loginInfo = true;
    if (resultSet.next()){
        loginInfo = true;

    }

    //6.&#x5173;&#x95ED;&#x8D44;&#x6E90;
    if (resultSet!=null){
        resultSet.close();
    }
    if (statement!=null){
        statement.close();
    }

    if (connection!=null){
        connection.close();
    }

    return loginInfo;
}
</string,string></string,string></string,string>

}

Original: https://www.cnblogs.com/journeyhch/p/15573926.html
Author: journeyhch
Title: jdbc-实现用户登录业务(存在sql注入)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/508024/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 关系型、非关系型数据库存储选型盘点大全

    工作中总是遇到数据存储相关的 Bug 工单,新需求开发设计中也多多少少会有数据模型设计和存储相关的问题。经过几次存储方案设计选型和讨论后发现需要有更全面的思考框架。 日常开发中常用…

    数据库 2023年6月14日
    0158
  • JavaWeb 05_JDBC入门及连接MySQL

    一、概念 *概念: Java DataBase Connectivity Java数据库连接, Java语言操作数据库* JDBC本质:其实是官方(sun公司)定义的一套操作所有关…

    数据库 2023年5月24日
    0151
  • MySQL学习(4)—MySQL索引

    ps:没有特殊说明,此随笔中默认采用innoDB存储引擎中的索引,且索引都是指B+树(多路平衡搜索树)结构组织的索引。其中聚集索引、复合索引、前缀索引、唯一索引默认都是使用B+树,…

    数据库 2023年6月14日
    0115
  • 4. 事务和锁

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

    数据库 2023年5月24日
    0126
  • 如何识别 SQL Server 的版本

    本文介绍如何识别当前的Microsoft SQL Server 版本号和相应的产品或Service Pack 级别。同时介绍如何识别正在使用的SQL Server 具体版本。 如何…

    数据库 2023年6月11日
    098
  • JavaWeb核心篇(6)——Ajax

    JavaWeb核心篇(6)——Ajax Ajax(Asynchronous JavaScript And XML):异步的 JavaScript 和 XML。 我们先来说概念中的 …

    数据库 2023年6月14日
    0103
  • Python–异常

    1 # -*- coding:utf-8 -*- 2 name = ‘tj’ 3 try: 4 int(name) 5 except (IndexError,KeyError) a…

    数据库 2023年6月9日
    0113
  • 汇编实验十编写子程序

    第一题,显示字符串,8行3列显示Welcome to masm! assume cs:codedata segmentdb ‘Welcome to masm!&#821…

    数据库 2023年6月11日
    0111
  • go interface{}使用

    先上代码 为什么会报错? 因为空接口拥有两个指针,内存布局上会占用两个机器字长。 对于长度为n的空接口切片而言,它的每个元素都是以2机器字长为单位的连续空间,因此总共会占用 2n个…

    数据库 2023年6月9日
    088
  • Linux 守护进程

    1. 守护进程是什么 2. 怎么用守护进程 2.1 有趣小例子 2.2 man daemon 3. 源码解析 3.1 GUN C daemon.c 3.2 daemon.c 解析 …

    数据库 2023年6月9日
    0112
  • MariaDB主从备份

    MariaDB主从备份 修改my.ini的参数 注释第30行左右的bind-address bind-address=127.0.0.1 注释61行左右的log-bin=mysql…

    数据库 2023年6月9日
    0106
  • 安装node、npm、vue cli脚手架

    1、node https://www.runoob.com/nodejs/nodejs-install-setup.html 2、npm 安装好node就默认安装好npm 不需要单…

    数据库 2023年6月9日
    0119
  • 正则表达式

    1.正则表达式分类 正则表达式:REGEXP,REGular EXPression。正则表达式分为两类: Basic REGEXP(基本正则表达式) Extended REGEXP…

    数据库 2023年6月15日
    0140
  • 第十九章 基于注解的AOP编程

    组装切面 将2 3 4步放在切面类中: 定义切面类: @Aspect 定义额外功能: @Around 原始方法的运行: ProceedingJoinPoint.proceed() …

    数据库 2023年6月14日
    0119
  • 11、lombok日志记录

    一、添加依赖: org.projectlombok lombok 1.16.18 true 二、改YML: #声明日志配置文件 #日志级别依次为【从高到低】:FATAL > …

    数据库 2023年6月6日
    0139
  • MySQL8.0 DDL原子性特性

    1. DDL原子性概述 8.0之前并没有统一的数据字典dd,server层和引擎层各有一套元数据,sever层的元数据包括(.frm,.opt,.par,.trg等),用于存储表定…

    数据库 2023年6月9日
    0102
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球