用户登录界面(存在SQl注入问题)

功能实现:

​ 1、需求

​ 模拟用用户登录功能的实现。

​ 2、业务描述

​ 程序运行的时候,提供一个输入的入口,可以让用户输入用户名和密码

​ 用户输入用户名和密码之后,提交信息,java程序收到采集到用户信息

​ java程序连接数据库验证用户名和密码是否合法

​ 合法,显示登录成功

​ 不合法,显示登录失败

​ 3、数据的准备

​ 在实际开发中,表的设计会使用专业的建模工具,例如:PowerDesigner

​ 使用PD工具进行数据库表的设计。

package com.lsj.jdbc;
import java.sql *;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class JDBCTest
{
   
    public static void main(String[] args)
    {
   
        //初始化一个界面
       Map<String,String> userLoginInfo = initUI();
        //验证用户名和密码
       boolean loginSuccess = login(userLoginInfo);
        //最后输出结果
        System.out.println(loginSuccess 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现JAVA连接SQL Server并实现登录功能,需要按照以下步骤进行操作: 1. 下载并安装SQL Server JDBC驱动程序:从Microsoft官网下载最新版本的SQL Server JDBC驱动程序,并将其添加到Java项目中。 2. 创建数据库表:在SQL Server中创建一个用户表,包含用户名和密码列。 3. 编写Java代码:在Java中编写代码以连接到SQL Server并验证用户输入的用户名和密码。 以下是连接SQL Server并实现登录功能的示例代码: ``` import java.sql.*; public class Login { public static void main(String[] args) { String url = "jdbc:sqlserver://localhost:1433;databaseName=mydb"; String user = "sa"; String password = "password"; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); String username = "testuser"; String password = "testpass"; String query = "SELECT COUNT(*) FROM users WHERE username = '" + username + "' AND password = '" + password + "'"; ResultSet rs = stmt.executeQuery(query); if (rs.next()) { int count = rs.getInt(1); if (count == 1) { System.out.println("Login successful."); } else { System.out.println("Invalid username or password."); } } con.close(); } catch (Exception e) { System.out.println(e); } } } ``` 在上面的代码中,我们首先定义了连接到SQL Server所需的URL、用户名和密码。然后,我们使用JDBC驱动程序加载类并创建数据库连接。接下来,我们使用创建的Statement对象执行查询,以检查用户输入的用户名和密码是否正确。如果查询返回一个计数值为1,表示用户已验证成功,否则用户验证失败。 请注意,上述代码中的查询语句存在SQL注入漏洞,为了避免这种漏洞,建议使用参数化查询。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值