[Java练习]简单的登录系统

本文介绍了一个简单的用户管理系统的设计与实现过程,包括用户登录、注册、信息修改等功能,并详细展示了系统架构及核心代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

main

package com.company;

import java.sql.SQLException;


public class Main
{

    public static void main(String[] args) throws SQLException
    {
        mainInterface();
    }

    public static void mainInterface() throws SQLException
    {
        System.out.println("欢迎使用用户管理系统!");
        System.out.println("=========================");
        System.out.println("用户登录--------------------1");
        System.out.println("用户注册--------------------2");
        System.out.println("退出程序--------------------3");


        int input = Io.inputn();
        switch (input)
        {
            case 1:
                login();
                break;
            case 2:
                register();
                break;
            case 3:
                return;
            default:
                System.out.println("输入错误,请重新输入!");
                mainInterface();
        }
    }

    public static void login() throws SQLException
    {

        Users u1 = new Users();
        System.out.println("请输入您的用户名:");
        u1.setUsername(Io.input());
        System.out.println("请输入您的密码:");
        u1.setPassword(Io.input());
        if (Dbutil.query(u1))
        {
            System.out.println("登录成功!");
            System.out.println(u1.getUsername() + "您好:\t\t\t您的权限是:\t" + u1.getPer());
            UserInterface ui =new UserInterface();
            if (u1.getPermissions() == 0) ui.useri(u1);
            else ui.admini();


        } else
        {
            System.out.println("用户名或密码不正确!请重新输入!");
            login();
        }

    }

    public static void register() throws SQLException
    {

        Users u1 = new Users();
        System.out.println("请输入您的用户名:");
        u1.setUsername(Io.input());
        System.out.println("请输入您的密码:");
        u1.setPassword(Io.input());
        System.out.println("请输入您的E-mail:");
        u1.setEmail(Io.input());
        Dbutil.insert(u1);
        System.out.println("注册成功!");
        mainInterface();

    }
}

UserInterface 

package com.company;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


/**
 * Created by ttc on 16-10-31.
 */
public class UserInterface
{


    public static void useri(Users u) throws SQLException
    {
        System.out.println("1.修改自己的信息");
        System.out.println("2.查询自己的信息");
        System.out.println("3.退出");

        int i = Io.inputn();
        switch (i)
        {
            case 1:
                System.out.println("您当前的信息是:");
                Io.output(u);
                System.out.println("请输入要修改的姓名:");

                u.setUsername(Io.input());
                System.out.println("请输入要修改的密码:");
                u.setPassword(Io.input());
                System.out.println("请输入要修改的邮箱:");
                u.setEmail(Io.input());
                Dbutil.update(u);
                System.out.println("修改成功!");
                useri(u);
                break;
            case 2:
                System.out.println("您当前的信息是:");
                Io.output(u);
                useri(u);
                break;
            case 3:
                break;
            default:
                System.out.println("输入错误!请重新输入!");
                useri(u);
        }


    }

    public static void admini() throws SQLException
    {
        System.out.println("1.添加用户");
        System.out.println("2.删除用户");
        System.out.println("3.修改用户");
        System.out.println("4.查询用户");
        System.out.println("5.程序退出");
        int i = Io.inputn();
        switch (i)
        {
            case 1:

                Users u1 = new Users();
                System.out.println("请输入用户名:");
                u1.setUsername(Io.input());
                System.out.println("请输入密码:");
                u1.setPassword(Io.input());
                System.out.println("请输入E-mail:");
                u1.setEmail(Io.input());
                u1.setPermissions(1);
                Dbutil.insert(u1);
                System.out.println("添加用户成功!");
                admini();
                break;
            case 2:
                System.out.println("请输入要删除的用户ID:");

                Dbutil.delete(Io.inputn());
                admini();
                break;


            case 3:

                System.out.println("请输入要修改的用户ID:");
                Users u3 = new Users();
                u3.setId(Io.inputn());
                System.out.println("请输入要修改的用户名:");
                u3.setUsername(Io.input());
                System.out.println("请输入要修改的用户密码:");
                u3.setPassword(Io.input());
                System.out.println("请输入要修改的用户邮箱:");
                u3.setEmail(Io.input());
                System.out.println("权限:");
                u3.setPermissions(Io.inputn());
                Dbutil.update(u3);
                System.out.println("修改成功!");
                admini();
                break;

            case 4:
                adminquery();
                break;
            case 5:
                break;

            default:
                System.out.println("输入错误!请重新输入!");
                admini();
        }

    }

    private static void adminquery() throws SQLException
    {
        System.out.println("1.查询全部用户");
        System.out.println("2.根据ID查询用户");
        System.out.println("3.根据姓名查询用户");
        System.out.println("请输入要做的操作:");
        int i = Io.inputn();
        switch (i)
        {
            case 1:
                List<Users> l = new ArrayList<>();
                Dbutil.query(l);

                for (Users u : l)
                {
                    Io.output(u);
                    System.out.println("==================================================================");
                }

                admini();
                break;
            case 2:
                System.out.println("请输入要查询的ID:");

                Users u2 = new Users();
                u2.setId(Io.inputn());
                Dbutil.query(u2.getId(),u2);
                Io.output(u2);
                System.out.println("==================================================================");
                admini();
                break;
            case 3:
                System.out.println("请输入要查询的用户名(支持模糊查询):");

                List<Users> l3 = new ArrayList<>();
                Dbutil.query(Io.input(), l3);

                for (Users u : l3)
                {
                    Io.output(u);
                    System.out.println("==================================================================");
                }

                admini();
                break;
        }

    }
}


Dbutil

package com.company;

import java.sql.*;
import java.util.List;

/**
 * Created by ttc on 16-10-31.
 */
public class Dbutil
{
    private static String strUrl = "jdbc:oracle:thin:@localhost:1521:orcl1";

    static
    {
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }
    }

    private static Connection connect() throws SQLException
    {
        Connection con = DriverManager.getConnection(strUrl, "scott", "a123");
        return con;

    }

    private static void close(PreparedStatement ps, Connection con, ResultSet rs) throws SQLException
    {
        rs.close();
        ps.close();
        con.close();
    }

    private static void close(PreparedStatement ps, Connection con) throws SQLException
    {
        ps.close();
        con.close();
    }

    public static void insert(Users u) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("INSERT INTO USERS VALUES (ID_seq.nextval,?,?,?,?)");
        ps.setString(1, u.getUsername());
        ps.setString(2, u.getPassword());
        ps.setString(3, u.getEmail());
        ps.setInt(4, u.getPermissions());
        ps.executeUpdate();
        close(ps, con);

    }

    public static boolean query(Users u) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("SELECT * FROM users WHERE username = ? and password = ?");
        ps.setString(1, u.getUsername());
        ps.setString(2, u.getPassword());
        ResultSet rs = ps.executeQuery();
        boolean flag = rs.next();
        if (flag)
        {
            u.setId(rs.getInt("id"));
            u.setEmail(rs.getString("email"));
            u.setPermissions(rs.getInt("permissions"));
        }
        close(ps,con,rs);
        return flag;
    }

    public static void query(List<Users> l) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("SELECT * FROM users ");
        ResultSet rs = ps.executeQuery();


        while (rs.next())
        {
            Users u = new Users();
            u.setId(rs.getInt("id"));
            u.setUsername(rs.getString("username"));
            u.setPassword(rs.getString("password"));
            u.setEmail(rs.getString("email"));
            u.setPermissions(rs.getInt("permissions"));
            l.add(u);
        }
        close(ps,con,rs);
    }
    public static boolean query(int id,Users u) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("SELECT * FROM users WHERE id = ? ");
        ps.setInt(1, id);

        ResultSet rs = ps.executeQuery();
        boolean flag = rs.next();
        if (flag)
        {
            u.setId(rs.getInt("id"));
            u.setUsername(rs.getString("username"));
            u.setPassword(rs.getString("password"));
            u.setEmail(rs.getString("email"));
            u.setPermissions(rs.getInt("permissions"));
        }
        close(ps,con,rs);
        return flag;
    }

    public static void query(String un, List<Users> l) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("SELECT * FROM users where username like ?");

        ps.setString(1, "%"+un+"%");
        ResultSet rs = ps.executeQuery();
        while (rs.next())
        {
            Users u = new Users();
            u.setId(rs.getInt("id"));
            u.setUsername(rs.getString("username"));
            u.setPassword(rs.getString("password"));
            u.setEmail(rs.getString("email"));
            u.setPermissions(rs.getInt("permissions"));
            l.add(u);
            rs.next();
        }
        close(ps,con,rs);
    }

    public static void update(Users u) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement
                ("UPDATE users SET username = ?, password = ?, email = ? where id = ?");
        ps.setString(1, u.getUsername());
        ps.setString(2, u.getPassword());
        ps.setString(3, u.getEmail());
        ps.setInt(4, u.getId());
        ps.executeUpdate();
        close(ps,con);
    }

    public static void delete(int id) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("DELETE FROM users WHERE id = ?");
        ps.setInt(1,id);
        ps.executeUpdate();
        close(ps,con);

    }
}


Users

package com.company;

import java.sql.*;
import java.util.List;

/**
 * Created by ttc on 16-10-31.
 */
public class Dbutil
{
    private static String strUrl = "jdbc:oracle:thin:@localhost:1521:orcl1";

    static
    {
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }
    }

    private static Connection connect() throws SQLException
    {
        Connection con = DriverManager.getConnection(strUrl, "scott", "a123");
        return con;

    }

    private static void close(PreparedStatement ps, Connection con, ResultSet rs) throws SQLException
    {
        rs.close();
        ps.close();
        con.close();
    }

    private static void close(PreparedStatement ps, Connection con) throws SQLException
    {
        ps.close();
        con.close();
    }

    public static void insert(Users u) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("INSERT INTO USERS VALUES (ID_seq.nextval,?,?,?,?)");
        ps.setString(1, u.getUsername());
        ps.setString(2, u.getPassword());
        ps.setString(3, u.getEmail());
        ps.setInt(4, u.getPermissions());
        ps.executeUpdate();
        close(ps, con);

    }

    public static boolean query(Users u) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("SELECT * FROM users WHERE username = ? and password = ?");
        ps.setString(1, u.getUsername());
        ps.setString(2, u.getPassword());
        ResultSet rs = ps.executeQuery();
        boolean flag = rs.next();
        if (flag)
        {
            u.setId(rs.getInt("id"));
            u.setEmail(rs.getString("email"));
            u.setPermissions(rs.getInt("permissions"));
        }
        close(ps,con,rs);
        return flag;
    }

    public static void query(List<Users> l) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("SELECT * FROM users ");
        ResultSet rs = ps.executeQuery();


        while (rs.next())
        {
            Users u = new Users();
            u.setId(rs.getInt("id"));
            u.setUsername(rs.getString("username"));
            u.setPassword(rs.getString("password"));
            u.setEmail(rs.getString("email"));
            u.setPermissions(rs.getInt("permissions"));
            l.add(u);
        }
        close(ps,con,rs);
    }
    public static boolean query(int id,Users u) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("SELECT * FROM users WHERE id = ? ");
        ps.setInt(1, id);

        ResultSet rs = ps.executeQuery();
        boolean flag = rs.next();
        if (flag)
        {
            u.setId(rs.getInt("id"));
            u.setUsername(rs.getString("username"));
            u.setPassword(rs.getString("password"));
            u.setEmail(rs.getString("email"));
            u.setPermissions(rs.getInt("permissions"));
        }
        close(ps,con,rs);
        return flag;
    }

    public static void query(String un, List<Users> l) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("SELECT * FROM users where username like '%?%'");

        ps.setString(1, un);
        ResultSet rs = ps.executeQuery();
        while (rs.next())
        {
            Users u = new Users();
            u.setId(rs.getInt("id"));
            u.setUsername(rs.getString("username"));
            u.setPassword(rs.getString("password"));
            u.setEmail(rs.getString("email"));
            u.setPermissions(rs.getInt("permissions"));
            l.add(u);
            rs.next();
        }
        close(ps,con,rs);
    }

    public static void update(Users u) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement
                ("UPDATE users SET username = ?, password = ?, email = ? where id = ?");
        ps.setString(1, u.getUsername());
        ps.setString(2, u.getPassword());
        ps.setString(3, u.getEmail());
        ps.setInt(4, u.getId());
        ps.executeUpdate();
        close(ps,con);
    }

    public static void delete(int id) throws SQLException
    {
        Connection con = connect();
        PreparedStatement ps = con.prepareStatement("DELETE FROM users WHERE id = ?");
        ps.setInt(1,id);
        ps.executeUpdate();
        close(ps,con);

    }
}

Io

package com.company;

import java.sql.SQLException;
import java.util.Scanner;
import java.util.regex.Pattern;

/**
 * Created by ttc on 16-11-1.
 */
public class Io
{
    public static String input()
    {
        Scanner sc = new Scanner(System.in);
        return sc.nextLine();
    }

    public static int inputn() throws SQLException
    {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        if(isNum(str))  return Integer.decode(str);

        else
        {
            System.out.println("请输入数字!");
            Main.mainInterface();
        }
        return -1;
    }

    public static void output(Users u)
    {
        System.out.println(u);
    }

    private static boolean isNum(String str)
    {
        String reg = "^\\d+$";
        return Pattern.compile(reg).matcher(str).find();
    }
}

SQL语句:

CREATE TABLE USERS 
(
ID NUMBER(10) PRIMARY KEY,
username VARCHAR2(20) NOT NULL,
PASSWORD VARCHAR2(20)  NOT NULL,
email VARCHAR2(30)  NOT NULL,
permissions NUMBER(1) DEFAULT 0,
CONSTRAINT users_un_uk UNIQUE(username)
);
CREATE SEQUENCE id_seq INCREMENT BY 1 START WITH 1;

INSERT INTO USERS 
VALUES (id_seq.nextval,'ADMIN','123456','a@a.a',1);
COMMIT;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值