1. 程式人生 > >[Java練習]簡單的登入系統

[Java練習]簡單的登入系統

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','[email protected]',1);
COMMIT;


相關推薦

[Java練習]簡單登入系統

main package com.company; import java.sql.SQLException; public class Main { public static void main(String[] args) throws SQLExc

Java實現註冊登入系統——基於Java Swing實現

技術簡介:Java Swing 介紹 Swing 是一個為Java設計的GUI工具包。 Swing是JAVA基礎類的一部分。 Swing包括了圖形使用者介面(GUI)器件如:文字框,按鈕,分隔窗格和表。 Swing提供許多比AWT更好的螢幕顯示元素。它們用純Java寫成,所以同J

JAVA簡單獲取系統時間程式碼 LocalDateTime( 以yyyy-MM-dd HH:mm:ss.SSS格式顯示)

直接上程式碼,簡單粗暴:   import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; /** * @Author : JCccc * @CreateTime : 2018-11-27

java 實現簡單登入頁面

通過java實現一個簡單登入介面 1.java的影象介面有兩種:awt和swing 2.swing的分類有:容器、獨立元件、佈局。 容器: JFrame (窗體類,不能在自身新增容器) JPanel (面板類,可以在自身新增容器) 獨立元件: JLabel 標籤類 JTextField 文字輸

Java練習——圖書借閱系統

自己一直在自學Java基礎,期望向JavaWeb方向發展。自學了好長時間,每次基本上都不會怎麼記錄,昨天看了GitChat的推送,覺著應當把自己每天的學習記錄下來,這樣可以做到監督的作用。 今天這個是一個Java小練習,一個圖書借閱系統,需要實現的功

簡單登入系統java+JFrame+Mysql)

連線資料庫 package 註冊資訊; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class con

java開發簡單的用戶管理系統

switch .get delete into etop rac stat 工具 property 學習完java基礎後,自己練了練用MySql作為數據存儲的簡單用戶管理系統,這是一個沒有界面的管理系統,看起來比較枯燥,先給出幾張截圖吧。 首先預覽一下包結構吧

Java練習 SDUT-1959_簡單枚舉類型——植物與顏色

枚舉 int blue 練習 gre 字符 枚舉類 about 植物 簡單枚舉類型——植物與顏色 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 請定義具有red, orange, yellow

Java練習 SDUT-3349_答答租車系統(面向物件綜合練習

答答租車系統(面向物件綜合練習) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 各位面向物件的小夥伴們,在學習了面向物件的核心概念——類的封裝、繼承、多型之後,答答租車系統開始營運了。 請你充分利用面向物件思想,為公司解

Java練習 SDUT-3349_答答租車系統(面向對象綜合練習

個人 body [1] clas int 保留 esc 根據 style 答答租車系統(面向對象綜合練習) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 各位面向對象的小夥伴們,在學習了面向對

java 購物車簡單練習

商品,購物車,測試類三個類,商品有價格,id,名稱,三個屬性,購物車有總價和車兩個屬性,有新增,刪除,清空,列印四個方法 商品類: //定義商品,三個屬性,名稱,價格(BigDecimal型別),id編號,重寫toString,hashCode,equals方法,構造方法 import j

基於java swing介面的簡單資料庫系統的設計

本系統是簡單型資料庫系統,其原理是操作mysql資料庫的,系統的介面採用swing介面來實現,其有以下資料規範: 1、資料庫的建立唯一,即一個數據庫的名稱唯一,如果已經建立了該名稱的資料庫就不能再建立同名的資料庫。 2、資料表唯一,即同一個資料庫中只能建立一

JAVA實現簡單的Session登入,登出功能

session常常用來儲存使用者的登入資訊。那麼伺服器是怎麼來實現的呢?這裡我簡單模擬一下。 第一步,編寫登入主頁: <!DOCTYPE html> <html> <head> <title>登陸頁面</ti

JAVA實現簡單登入介面

我本來是學C++的,然後課程上老師要求做一個登陸介面,用C++實現不限時,然後就選擇了JAVA,從零開始自學JAVA。好在網上很多大佬都寫了如何用JAVA編寫登陸介面的部落格,寫得很詳細,使得我第一次接觸JAVA也能看懂一二。 比較推薦這篇,博主真的很細心,我主要也是參考的

Java學習筆記之系統登入例項

Java學習已經有一陣了,咱們也應該真刀真槍幹一波試試。我們考慮做一個系統登入認證,就是輸入使用者名稱和密碼,程式返回是否驗證通過的結果。 咱們來分析一下這個程式,首先我們通過介面輸入帳號密碼,程式接收到這兩個引數,然後判斷是否驗證通過,通過則返回 “XXX,您好!”,不通過則返回“對不

Java WEB 簡單 de 登入註冊

登入註冊功能實現圖文教程 一、前言     近期寫了一個簡單地登入註冊,是基於 java web 的;涉及知識較簡單,主要是資料庫的連線,jsp 與 servlet 的使用等;實現效果在第二部分展示。     所用開發工具為Myeclipse(Eclipse),資料庫此

java 實現簡單的銀行登入註冊退出功能(未儲存資料)

RegisterAndLogin.java:package bao1;import java.util.Scanner;import java.util.regex.Pattern;import  bao1.Login;public class RegisterAndLogi

CCF計算機軟體能力認證試題練習-門禁系統Java參考答案學習記錄)

問題描述   濤濤最近要負責圖書館的管理工作,需要記錄下每天讀者的到訪情況。每位讀者有一個編號,每條記錄用讀者的編號來表示。給出讀者的來訪記錄,請問每一條記錄中的讀者是第幾次出現。 輸入格式

Python之實現簡單的註冊登入系統

        表單在網頁中主要負責資料採集功能。一個表單有三個基本組成部分: 表單標籤:這裡麵包含了處理表單資料所用CGI程式的URL以及資料提交到伺服器的方法。 表單域:包含了文字框、密碼框、隱藏域、多行文字框、複選框、單選框、下拉選擇框和檔案上傳框等。 表單按鈕:包括

Java程式---學生管理系統登入和註冊

/** * * 使用者資訊類,描述了使用者的資訊 * */ public class User { /** * 成員變數 * * */ private String username ; private String password;