java学习 学生管理系统-v2.0
本次将使用三层架构来对上次的学生管理系统-v1.0进行改进。
三层架构
- 视图层,通常用于与用户交互,收集用户输入的信息,或展示信息;
- 业务层,通常做业务逻辑处理,在学习期间,业务层往往是代码最少的;
- 持久层,通常只做与数据增删改查相关的操作;
对应的包结构:
- 视图层,controller;
- 业务层,service;
- 持久层,dao;
其中还包括 domain 存放模型类;entry 程序入口;utils 工具类
功能实现
首先我们对先前的学生管理系统进行一些升级,将老师管理系统加入变成一个新的信息管理系统。在这里就以学生管理系统为例,老师管理系统跟学生管理系统步骤一样,就不做介绍。
创建entry包,再其中建立InfoManagerEntry类来编写程序入口,再main方法中用输出语句创建主菜单,用户输入后调用StudentController对象的start方法进入学生管理系统。
public class InfoManagerEntry {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
//主菜单
System.out.println("----------------------------------------");
System.out.println("* 欢迎来到黑马管理系统 *");
System.out.println("* 1 学生管理 *");
System.out.println("* 2 教师管理 *");
System.out.println("* 3 退出系统 *");
System.out.println("----------------------------------------");
System.out.print("请输入选择:");
int num = sc.nextInt();
switch (num) {
case 1:
//调用start方法进入学生管理系统
StudentController studentController = new StudentController();
studentController.start();
break;
case 2:
break;
case 3:
System.out.println("退出管理系统,感谢您的使用。");
System.exit(0);//推出虚拟机
default:
System.out.println("输入有误,请重新输入!");
break;
}
}
}
}
首先创建domain包,建立Student类,包含学号、姓名、年龄、生日字段,并且创建有参无参沟槽方法和get/set方法。
public class Student {
private Integer id;
private String name;
private Integer age;
private String birthday;
public String toString() {
return id + "\t" + name + "\t" + age + "\t" + birthday;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer