java開發簡單的使用者管理系統

來源:互聯網
上載者:User

標籤:val   rgs   red   java開發   pass   http   password   from   學習   

學習完java基礎後,自己練了練用MySql作為資料存放區的簡單使用者管理系統,這是一個沒有介面的管理系統,看起來比較枯燥,先給出幾張吧。

首先預覽一下包結構吧

主類是Start.java
import com.menu.MainMenu;import com.nensoft.bean.Item;import com.nensoft.bean.Menu;import com.nensoft.bean.Userinfo;import com.utils.DBUtil2;public class Start {    public static Userinfo loginuser=new Userinfo();    public static DBUtil2 db=DBUtil2.getInstance();    public static void main(String[] args) {        // TODO Auto-generated method stub        Menu menu=new MainMenu();        while(menu != null){            //顯示內容            menu.showInfro();            Item item=menu.pickItem();            menu=item.excute();        }        System.out.println("謝謝使用,再見,拜拜!");    }}
用兩個介面來規範

第一個是菜單介面,抽象了兩個抽象方法,

package com.nensoft.bean;public interface Menu {    //顯示菜單    void showInfro();    //提供選項(對象)    Item pickItem();}

第二個是,功能表項目介面,抽象的是菜單執行的方法

public interface Item {    //執行功能    Menu excute();}

UserInfo是用來記錄目前使用者資訊的

package com.nensoft.bean;//實體類entitypublic class Userinfo {    private int id;    private String username;    private String password;    private String email;    private int power;    //無參構造器與架構有關    public Userinfo(){            }    public Userinfo(int id, String username, String password, String email, int power) {        super();        this.id = id;        this.username = username;        this.password = password;        this.email = email;        this.power = power;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    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;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }    public int getPower() {        return power;    }    public void setPower(int power) {        this.power = power;    }    }
com.Menu包

許可權分為普通使用者菜單(NormalMenu)和管理員菜單(AdminMenu)

import com.adminmenuitem.AddUser;import com.adminmenuitem.DeleteUser;import com.adminmenuitem.ModifyUser;import com.adminmenuitem.SerchUser;import com.mainmenuitem.Exit;import com.nensoft.bean.Item;import com.nensoft.bean.Menu;import com.nensoft.start.Start;import com.normalmenu.ModifySelfInfo;import com.normalmenu.SerchSelfInfo;import com.utils.ConsoleUtil;public class AdminMenu implements Menu{    public void showInfro() {        // TODO Auto-generated method stub        System.out.println("==============");        System.out.println("歡迎登入主表單!");        System.out.println(Start.loginuser.getUsername()+" 您好!        "+"您的許可權是:管理員");        System.out.println("添加使用者---------1");        System.out.println("刪除使用者---------2");        System.out.println("修改使用者---------3");        System.out.println("查詢使用者---------4");        System.out.println("退出程式---------5");            }    public Item pickItem() {        // TODO Auto-generated method stub        Item item=null;        int option=ConsoleUtil.getOption(1, 5);        switch(option){        case 1:            item=new AddUser();            break;        case 2:            item=new DeleteUser();            break;        case 3:            item=new ModifyUser();            break;        case 4:            item=new SerchUser();            break;        case 5:            item=new Exit();            break;        }        return item;    }}
import com.mainmenuitem.Exit;import com.nensoft.bean.Item;import com.nensoft.bean.Menu;import com.nensoft.start.Start;import com.normalmenu.ModifySelfInfo;import com.normalmenu.SerchSelfInfo;import com.utils.ConsoleUtil;public class NormalMenu implements Menu{    public void showInfro() {        // TODO Auto-generated method stub        System.out.println("==============");        System.out.println("歡迎登入主表單!");        System.out.println(Start.loginuser.getUsername()+" 您好!        "+"您的許可權是:普通使用者");        System.out.println("修改自己的資訊---------1");        System.out.println("查詢自己的資訊---------2");        System.out.println("退出程式--------------3");    }    public Item pickItem() {        // TODO Auto-generated method stub        Item item=null;        int option=ConsoleUtil.getOption(1, 3);        switch(option){        case 1:            item=new ModifySelfInfo();            break;        case 2:            item=new SerchSelfInfo();            break;        case 3:            item=new Exit();        }        return item;    }}

還有一個主菜單,用於顯示登入介面的

import com.mainmenuitem.Exit;import com.mainmenuitem.LoginItem;import com.mainmenuitem.RegItem;import com.nensoft.bean.Item;import com.nensoft.bean.Menu;import com.utils.ConsoleUtil;public class MainMenu implements Menu{    public void showInfro() {        // TODO Auto-generated method stub        System.out.println("歡迎使用neusoft使用者管理系統");        System.out.println("===================");        System.out.println("使用者登入===========1");        System.out.println("使用者註冊===========2");        System.out.println("使用者退出===========3");            }    public Item pickItem() {        // TODO Auto-generated method stub        Item item=null;        //        int option =ConsoleUtil.getOption(1, 3);        switch(option){        case 1:            item=new LoginItem();            break;                    case 2:            item =new RegItem();            break;        case 3:            item=new Exit();        }        return item;    }}

另外一個是管理員的查詢菜單

import com.adminmenuitem.ReturnMenu;import com.adminmenuitem.SerchUser;import com.mainmenuitem.Exit;import com.mainmenuitem.LoginItem;import com.mainmenuitem.RegItem;import com.nensoft.bean.Item;import com.nensoft.bean.Menu;import com.serchuser_item.SerchAllUser;import com.serchuser_item.SerchOneUser;import com.utils.ConsoleUtil;public class SerchUserMenu implements Menu{    public void showInfro() {        // TODO Auto-generated method stub        System.out.println("============");        System.out.println("查詢所有使用者--------1");        System.out.println("查詢單個使用者--------2");        System.out.println("返回--------------3");    }    public Item pickItem() {        // TODO Auto-generated method stub        Item item=null;        //        int option =ConsoleUtil.getOption(1, 3);        switch(option){        case 1:            item=new SerchAllUser();            break;                    case 2:            item =new SerchOneUser();            break;        case 3:            item=new ReturnMenu();        }        return item;    }}
有一個工具類,包括資料庫的串連,以及對使用者輸入資料的檢測是否規範,com.util包
package com.utils;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.text.Format;import java.util.Properties;public class DBUtil2 {    private static DBUtil2 db;    private String url;    private String username;    private String password;    private String driver;    private DBUtil2(){        Properties properties=new Properties();        try {            properties.load(this.getClass().getClassLoader().getResourceAsStream("db.properties"));            driver=properties.getProperty("driver");            url=properties.getProperty("url");            username=properties.getProperty("username");            password=properties.getProperty("password");        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    public static DBUtil2 getInstance(){        if(db==null){            db = new DBUtil2();        }        return db;    }    public Connection getConnect() {        try {            Class.forName("com.mysql.jdbc.Driver");        } catch (ClassNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        Connection conn=null;        try {            conn = DriverManager.getConnection(url,username,password);        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return conn;    }    public void close(Connection item){        if(item!=null){            try {                item.close();            } catch (SQLException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }    public void close(ResultSet item){         if(item!=null){            try {                item.close();            } catch (SQLException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }    public void close(PreparedStatement item){        if(item!=null){            try {                item.close();            } catch (SQLException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }            }}

工具類

package com.utils;import java.util.Scanner;public class ConsoleUtil {    public static int getOption(int low,int high){        while(true){            Scanner scan=new Scanner(System.in);            System.out.println("請選擇");            try{                int num=scan.nextInt();                if(num<low || num> high){                    System.out.println("數值非法,重新選擇");                }else{                    return num;                }            }catch(Exception e){                            }        }    }    public static String getString(){        while(true){            Scanner scan=new Scanner(System.in);            //System.out.println("請選擇");            String str=scan.nextLine();            if(str !=null && str.trim()!=""){                return str;            }else{                System.out.println("錯誤");            }        }    }    public static String getEmail(){        while(true){            Scanner scan=new Scanner(System.in);            String email=scan.nextLine();            /*             * 必須有@             * 不能有多個@和。             * @不能在.前面             * @不能開頭,。不能結尾             */            if(email.indexOf("@") ==-1|| email.indexOf(".")==-1){                System.out.println("郵箱中必須有@和.");            }else if(email.indexOf("@") != email.lastIndexOf("@") || email.indexOf(".")!=                    email.lastIndexOf(".")){                System.out.println("郵箱中不能有多個@和.");            }else if(email.startsWith("@")  || email.endsWith(".")){                System.out.println("郵箱中不能@開頭和.結尾");            }else{                return email;            }        }    }    }
主菜單包下包括使用者登入類,註冊類,
package com.mainmenuitem;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.menu.AdminMenu;import com.menu.MainMenu;import com.menu.NormalMenu;import com.nensoft.bean.Item;import com.nensoft.bean.Menu;import com.nensoft.bean.Userinfo;import com.nensoft.start.Start;import com.utils.ConsoleUtil;import com.utils.DBUtil2;public class LoginItem implements Item{        public Menu excute() {        // TODO Auto-generated method stub        System.out.println("使用者登入介面");        System.out.println("==============");        System.out.println("請輸入你的使用者名稱:");        String username= ConsoleUtil.getString();        System.out.println("請輸入你的密碼:");        String password= ConsoleUtil.getString();        Connection con=Start.db.getConnect();        PreparedStatement ps=null;        try {            ps=con.prepareStatement("select * from userinfo where username=?");            ps.setString(1, username);            ResultSet st=ps.executeQuery();            if(st.next()){                Userinfo userinfo=new Userinfo();                userinfo.setId(st.getInt("id"));                userinfo.setUsername(st.getString(2));                userinfo.setPassword(st.getString(3));                userinfo.setEmail(st.getString(4));                userinfo.setPower(st.getInt(5));                System.out.println("登入成功");                Start.loginuser=userinfo;                if(userinfo.getPower()== 0){                    return (Menu) new NormalMenu();                }else{                    return (Menu) new AdminMenu();                }            }        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return (Menu) new MainMenu();    }}

註冊類

package com.mainmenuitem;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.menu.MainMenu;import com.nensoft.bean.Item;import com.nensoft.bean.Menu;import com.nensoft.start.Start;import com.utils.ConsoleUtil;import com.utils.DBUtil;import com.utils.DBUtil2;public class RegItem implements Item{        public Menu excute() {        // TODO Auto-generated method stub        System.out.println("使用者註冊介面");        System.out.println("==========");        System.out.println("請輸入你的使用者名稱");        String username=ConsoleUtil.getString();        System.out.println("請輸入你的密碼:");        String password = ConsoleUtil.getString();        System.out.println("請輸入你的郵箱:");        String email= ConsoleUtil.getEmail();        Connection con=Start.db.getConnect();        PreparedStatement ps=null;        try {            ps=con.prepareStatement("select * from userinfo where username=?");            ps.setString(1, username);            ResultSet st=ps.executeQuery();            if(st.next()){                System.out.println(st);                System.out.println("此使用者已被佔用");            }else{                ps=con.prepareStatement("insert into userinfo(username,password,email) values(?,?,?)");                ps.setString(1, username);                ps.setString(2, password);                ps.setString(3, email);                ps.executeUpdate();                con.setAutoCommit(true);                System.out.println("註冊成功!");            }        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return new MainMenu();    }}
普通使用者功能表項目包com.normalusermenu

修改本人的資訊

package com.normalmenu;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.menu.NormalMenu;import com.nensoft.bean.Item;import com.nensoft.bean.Menu;import com.nensoft.start.Start;import com.utils.ConsoleUtil;import com.utils.DBUtil2;public class ModifySelfInfo implements Item{        public Menu excute() {        // TODO Auto-generated method stub        System.out.println("================");        System.out.println("您現在的資訊是:");        System.out.println(Start.loginuser.getId()+"  |  "+Start.loginuser.getUsername()+"  |  " +                Start.loginuser.getPassword()+"  |  "+Start.loginuser.getEmail()+"  |  "+                (Start.loginuser.getPower()==0?"普通使用者":"管理員"));        System.out.println("================");        System.out.println("請輸入您要修改的姓名:");        String username=ConsoleUtil.getString();        System.out.println("請輸入您要修改的密碼:");        String password=ConsoleUtil.getString();        System.out.println("請輸入您要修改的郵箱:");        String email=ConsoleUtil.getString();        Connection conn=Start.db.getConnect();        PreparedStatement ps=null;        ResultSet rs=null;                try {            ps=conn.prepareStatement("select * from userinfo where username=? and id!=?");            ps.setString(1, username);            ps.setInt(2,Start.loginuser.getId());            rs=ps.executeQuery();            if(rs.next()){                System.out.println("使用者名稱已被佔用!  請重新輸入...");                username=ConsoleUtil.getString();            }else{                conn.setAutoCommit(false);                ps=conn.prepareStatement("update userinfo set username=?,password=?,email=? where id="+Start.loginuser.getId());                ps.setString(1,username);                ps.setString(2, password);                ps.setString(3, email);                ps.executeUpdate();                conn.commit();                Start.loginuser.setUsername(username);  //修改完資料庫的資訊後還要同時修改使用者類(UserInfo)的屬性                Start.loginuser.setPassword(password);                Start.loginuser.setEmail(email);                System.out.println("修改成功!");                            }                    } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }                Start.db.close(rs);        Start.db.close(ps);        Start.db.close(conn);        return new NormalMenu();    }}

查詢個人資訊

package com.normalmenu;import com.menu.NormalMenu;import com.nensoft.bean.Item;import com.nensoft.bean.Menu;import com.nensoft.start.Start;public class SerchSelfInfo implements Item{    public Menu excute() {        // TODO Auto-generated method stub        System.out.println("================");        System.out.println("您現在的資訊是:");        System.out.println(Start.loginuser.getId()+"  |  "+Start.loginuser.getUsername()+"  |  " +                Start.loginuser.getPassword()+"  |  "+Start.loginuser.getEmail()+"  |  "+                (Start.loginuser.getPower()==0?"普通使用者":"管理員"));        return new NormalMenu();    }}
這裡只列出了部分主要代碼,要查看全部代碼請到我的Coding裡去看

java開發簡單的使用者管理系統

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.