前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >登录页面JDBC案例

登录页面JDBC案例

作者头像
GeekLiHua
发布2025-01-21 15:09:47
发布2025-01-21 15:09:47
7500
代码可运行
举报
文章被收录于专栏:JavaJava
运行总次数:0
代码可运行

登录页面底层逻辑原理

简介:本文讲解,登录页面网页之下,如何使用java来设计账号的登录,与账号的注册的底层实现。

文件结构

User类

代码语言:javascript
代码运行次数:0
复制
package com.study;

public class User {
    private String username;
    private String password;

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public User() {
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

druid.properties配置文件

代码语言:javascript
代码运行次数:0
复制
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/db?serverTimezone=GMT%2B8&useOldAliasMetadataBehavior=true
username=root
password=12345
# ???????
initialSize=5
# ?????
maxActive=10
# ??????
maxWait=3000

Login

代码语言:javascript
代码运行次数:0
复制
package com.study;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.Scanner;

public class Login {

    // 查询所有用户
    public static ArrayList<User> SelectAll(Connection conn) throws Exception {
        //2. 定义SQL
        String sql = "select * from users;";
        //3. 获取pstmt对象
        PreparedStatement pstmt = conn.prepareStatement(sql);
        //4. 设置参数
        //5. 执行SQL
        ResultSet rs = pstmt.executeQuery();
        //6. 处理结果 List<User> 封装User对象,装载List集合
        User user = null;
        ArrayList<User> users = new ArrayList<>();

        while (rs.next()){
            // 获取数据
            String username = rs.getString("username");
            String userpwd = rs.getString("userpwd");
//            System.out.println(username + " " + userpwd);

            users.add(new User(username, userpwd)); // 每次都需要创建一个新对象
            // 不然就是浅拷贝了 会导致每次的数据一样的
        }
//         System.out.println(users);
//        System.out.println(users.size());
        //7. 释放资源
        rs.close();
        pstmt.close();
        return users;
    }

    public static void Add(Connection conn, User user) throws Exception {
        // 接收页面提交的参数
        String username = user.getUsername();
        String password = user.getPassword();

        //2. 定义SQL
        String sql = "insert into users(username, userpwd) values(?,?);";
        //3. 获取pstmt对象
        PreparedStatement pstmt = conn.prepareStatement(sql);
        //4. 设置参数
        pstmt.setString(1,username);
        pstmt.setString(2,password);


        //5. 执行SQL
        int count = pstmt.executeUpdate(); // 影响的行数
        //6. 处理结果
        System.out.println(count > 0);

        //7. 释放资源
        pstmt.close();
    }

    public static void main(String[] args) throws Exception{
        Properties prop = new Properties();
        prop.load(new FileInputStream("src/druid.properties"));
        //4. 获取连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        //5. 获取数据库连接 Connection
        Connection conn = dataSource.getConnection();
        ArrayList<User> users = SelectAll(conn);

        boolean flag = false; // 判断是否登录成功
        System.out.println("首先演示登录");
        Scanner in = new Scanner(System.in);
        System.out.print("请输入你的账号:");
        String username = in.nextLine();
//        System.out.println(username);
        System.out.print("请输入你的密码:");
        String password = in.nextLine();
//        System.out.println(password);
        for (int i = 0; i < users.size(); i++) {
            User user = users.get(i);
//            System.out.println(user.getUsername() + " " + user.getPassword());
            if (username.equals(user.getUsername()) && password.equals(user.getPassword())){
                System.out.println("登录成功");
                flag = true;
                break;
            }
        }
        if (flag == false){
            System.out.println("登录失败");
        }
        System.out.println("现在演示注册");
        System.out.print("请输入你的新账号:");
        username = in.nextLine();
        System.out.print("请输入你的新密码:");
        password = in.nextLine();
        User user = new User(username, password);
        Add(conn, user);

    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 登录页面底层逻辑原理
    • 文件结构
    • User类
  • druid.properties配置文件
    • Login
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档