学生管理系统----待续二

到这里我们已经准备好了直接和数据库中的表打交道的studentDAO.java文件以及adminDAO.Java ,也就是现在我们已经准备好了后台的操作函数和方法以及数据表
那么接下来就是写用户界面的效果了

public class UserInterface {
    AdminService as = new AdminService();
    //写一个main函数,作为程序的入口
    //这里我们因为导入了junit4包,所以直接调用这个包就行了
    @Test
    public void userTest(){
        UserInterface ui = new UserInterface();
        ui.login();
    }
    //第一部分是登陆,写一个登陆的函数
    public void login(){
        System.out.println("---------------------欢迎登陆学生信息管理系统-----------------------");
        System.out.println("1. 登陆            2. 退出");
        System.out.println("-------------------------------------------------------------------");
        System.out.println("请选择:");
        Scanner sc = new Scanner(System.in);
        int no = sc.nextInt();
        if(no==1){
            System.out.println("欢迎登陆");
            System.out.println("请输入用户名:");
            String username = sc.next();
            System.out.println("请输入密码:");
            String pwd = sc.next();
            //这里我们从用户界面拿到了用户名和密码
            //那么接下来就需要从数据库中去查询是否存在对应的用户名和密码
            //那么如何将用户的数据传递到数据库中去呢
            //这里我们需要一个service做中间的传递作用
            List<Admin> loginResult = as.loginService(username, pwd);
            if(loginResult!=null){
                System.out.println("登陆成功");
                System.out.println("欢迎您  "+username);
            }else{

            }
        }else if(no==2){

        }else{

        }
    }
}

中转类AdminService

public class AdminService {
    AdminDAO ad = new AdminDAO();
    public Admin loginService(String username, String pwd){
        //loginservice就是将用户输入的数据组装成一个admin的对象
        //然后作为参数传递给数据库操纵函数DAO进行查询
        //这里只需要传入用户名和密码
        //所以在组装对象admin的时候,mid可以直接设置为-1
        Admin admin = new Admin(-1,username, pwd);

        return  ad.findByPN(admin);
    }

到这里发现我们如果从数据中查不到对应的用户名和密码,那么就需要重新返回到请选择的登陆还是退出的页面
所以我们需要将这部分函数抽取出来进行调用

System.out.println("---------------------欢迎登陆学生信息管理系统-----------------------");
        System.out.println("1. 登陆            2. 退出");
        System.out.println("-------------------------------------------------------------------");
        System.out.println("请选择:");

经过修改我们最终形成了如下的逻辑

@Test
    public void initCode(){
        UserInterface ui = new UserInterface();
        int no = ui.initLogin();
        ui.login(no);
    }
    //第一部分是登陆,写一个登陆的函数
    public int initLogin(){
        System.out.println("---------------------欢迎登陆学生信息管理系统-----------------------");
        System.out.println("1. 登陆            2. 退出");
        System.out.println("-------------------------------------------------------------------");
        System.out.println("请选择:");
        int no = sc.nextInt();
        return no;

    }
    public boolean login(int no){
        if(no==1){
            System.out.println("欢迎登陆");
            System.out.println("请输入用户名:");
            String username = sc.next();
            System.out.println("请输入密码:");
            String pwd = sc.next();
            //这里我们从用户界面拿到了用户名和密码
            //那么接下来就需要从数据库中去查询是否存在对应的用户名和密码
            //那么如何将用户的数据传递到数据库中去呢
            //这里我们需要一个service做中间的传递作用
             Admin loginResult = as.loginService(username, pwd);
             System.out.println(loginResult);
            if(loginResult!=null){
                System.out.println("登陆成功");
                System.out.println("欢迎您  "+loginResult.getUsername());
                return true;
            }else{
                login(1);
            }
        }else if(no==2){
            System.out.println("即将退出系统!");
        }else{
            System.out.println("您的输入有误!请重新输入");
            initCode();
        }
        return false;
    }

}

这里写图片描述
现在我们已经做好了登陆的部分,接下来就是功能的选择,对学生进行增删改查

package com.zt.test;

import java.util.List;
import java.util.Scanner;

import org.junit.Test;

import com.zt.entity.Admin;
import com.zt.entity.Student;
import com.zt.service.AdminService;
import com.zt.service.StudentService;

public class UserInterface {
    private AdminService as = new AdminService();
    private StudentService ss = new StudentService();
    Scanner sc = new Scanner(System.in);
    int no = -1;
    Student student = null;
    boolean flg ;
    int id;
    //写一个main函数,作为程序的入口
    //这里我们因为导入了junit4包,所以直接调用这个包就行了
    @Test
    public void initCode(){
        UserInterface ui = new UserInterface();
        no = ui.initLogin();
        ui.login(no);
        no = initFun();
        funChoose(no);
    }
    //第一部分是登陆,写一个登陆的函数
    public int initLogin(){
        System.out.println("---------------------欢迎登陆学生信息管理系统-----------------------");
        System.out.println("1. 登陆            2. 退出");
        System.out.println("-------------------------------------------------------------------");
        System.out.println("请选择:");
        no = sc.nextInt();
        return no;

    }
    public boolean login(int no){
        if(no==1){
            System.out.println("欢迎登陆");
            System.out.println("请输入用户名:");
            String username = sc.next();
            System.out.println("请输入密码:");
            String pwd = sc.next();
            //这里我们从用户界面拿到了用户名和密码
            //那么接下来就需要从数据库中去查询是否存在对应的用户名和密码
            //那么如何将用户的数据传递到数据库中去呢
            //这里我们需要一个service做中间的传递作用
             Admin loginResult = as.loginService(username, pwd);
//           System.out.println(loginResult);
            if(loginResult!=null){
                System.out.println("登陆成功");
                System.out.println("欢迎您  "+loginResult.getUsername());
                return true;
            }else{
                login(1);
            }
        }else if(no==2){
            System.out.println("即将退出系统!");
        }else{
            System.out.println("您的输入有误!请重新输入");
            initCode();
        }
        return false;
    }
    //功能的选择

    public int initFun(){
        System.out.println("***********************请选择要操作的信息对应的数字*****************************");
        System.out.println("*1.查看学生信息   2.添加学生信息  3.修改学生信息   4.删除学生信息  5.退出*");
        System.out.println("******************************************************************************");
        System.out.println("请选择:");
        no = sc.nextInt();
        return no;
    }
    public void funChoose(int no){
        if(no==1){
            find();
        }else if(no==2){
            add();
        }else if(no==3){
            update();
        }else if(no==4){

        }else{

        }

    }
    /**
     * 功能选择1:查看学生信息
     */
    public void find(){
        System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
        System.out.println("+1.查看所有学生信息     2.根据id查询学生信息     3.返回上一层+");
        System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
        System.out.println("请选择菜单:");
        no = sc.nextInt();
        if(no==1){
            ss.findAll();
        }else if(no==2){
            System.out.println("请输入学生id:");
            int id = sc.nextInt();
            ss.findById(id);
        }else{
            initFun();
        }
    }
    /**
     * 功能选择2:添加学生
     */
    public void add(){
        System.out.println("请输入学生id");
        id = sc.nextInt();
        //在添加之前先查找数据库中是否存在该id
        student = ss.findById(id);
        if(student!=null){
            //如果返回的值不为空,说明该id已经存在,重新加载添加函数add()
            System.out.println("此id"+student.getId()+"已经存在!");
            add();
        }
        //如果返回的值为空,就继续添加学生的姓名,年龄等字段
        System.out.println("请输入学生姓名:");
        String name = sc.next();
        System.out.println("请输入学生年龄:");
        int age = sc.nextInt();
        System.out.println("请输入学生性别:");
        String sex = sc.next();
        System.out.println("请输入学生年纪:");
        String grade = sc.next();
        System.out.println("请输入学生电话:");
        String tel = sc.next();
        System.out.println("请输入学生邮箱:");
        String email = sc.next();
        System.out.println("请输入学生地址:");
        String addr = sc.next();
        //添加好字段之后,组装成一个student对象,然后调用DAO中的saveStudent()方法
        student = new Student(id, name, age, sex, grade, tel, email, addr);
        flg = ss.save(student);
        if(flg){
            System.out.println("学生"+student.getId()+"添加成功,系统将返回上级....");
        }
    }

    /**
     * 功能选择3:修改学生信息
     */
    public void update(){
        System.out.println("请输入需要修改的学生id:");
        id = sc.nextInt();
        //向数据库查询是否存在该学生
        student= ss.findById(id);
        if(student==null){
            System.out.println("不存在该学生!请重新输入!!!");
            update();
        }
        System.out.println("您要修改的学生信息为:"+student);
        flg = ss.update(student);
        if(flg){
            System.out.println("修改成功!!!");
        }

    }
    /*
     * 功能选择4:删除学生
     */

    public void delete(){
        System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
        System.out.println("+1.根据id删除            2.返回到上级+");
        System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
        System.out.println("请选择删除方式:");
        no = sc.nextInt();
        if(no==1){
            System.out.println("请输入要删除的学生id:");
            id = sc.nextInt();
            ss.delStu(id);
            System.out.println("删除完毕,将自动返回上级目录");
            find();
        }else if(no==2){
            System.out.println("将自动返回上级...");
            initFun();
        }else{
            System.out.println("输入有误!!!");
            initFun();
        }
    }















}
欢迎关注我的公众号:小秋的博客 CSDN博客:https://blog.csdn.net/xiaoqiu_cr github:https://github.com/crr121 联系邮箱:rongchen633@gmail.com 有什么问题可以给我留言噢~
原文地址:https://www.cnblogs.com/flyingcr/p/10428307.html