到这里我们已经准备好了直接和数据库中的表打交道的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();
}
}
}