网站首页 > 技术文章 正文
定义学生类Student.java,该类有学号、姓名和系部三个成员变量,并用get和set方法进行属性的封装
定义接口IStudentDAO,其中包含下列数据操作方法
// 插入学生信息记录
public void insertStudent(Student stu);
// 删除指定学号学生信息记录
public void deleteStudent(String sno);
// 更新指定学生信息记录
public void updateStudent(Student stu);
// 按学号查询指定学生信息记录
public Student findStudentBySno(String sno);
// 显示指定学号学生信息记录
public void displayStudentBySno(String sno);
// 显示所有学生信息记录
public void displayAllStudent();
定义接口IStudentDAO的实现类StudentDAOImpl,其中包含一个静态的集合对象用来保存学生信息记录,以及接口的所有实现方法
static List<Student> students = new ArrayList<Student>();
ArrayList类是实现了List接口的动态数组,数组元素可以动态增加和减少。常用方法如下:
public int size()返回此列表中的元素数。
public boolean isEmpty()如果此列表中没有元素,则返回 true
public boolean add(E e)将指定的元素添加到此列表的尾部。
public boolean remove(Object o)移除此列表中首次出现的指定元素(如果存在)。
代码:
package stu;
public class Student {
private String sno;
private String sname;
private String sdept;
public Student(){};
public String getSno()
{
return sno;
}
public void setSno(String sno)
{
this.sno=sno;
}
public String getSname()
{
return sname;
}
public void setSname(String sname)
{
this.sname=sname;
}
public String getSdept()
{
return sdept;
}
public void setSdept(String sdept)
{
this.sdept=sdept;
}
}
package stu;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.*;
public class StudentDAOImpl implements IStudentDAO{
public static List<Student> students=new ArrayList<Student>();
public StudentDAOImpl(){};
public void insertStudent(Student stu)
{
students.add(stu);
}
public void deleteStudent(String sno)
{
boolean flag=false;
if(students.size()>0)
{
for(Student stu: students)
{
if(stu.getSno().equals(sno))
{
flag=true;
students.remove(stu);
System.out.println("该学号学生删除成功!");
}
}
if(!flag)
{
System.out.println("数据库中无该学生记录!");
}
}
else
{
System.out.println("数据库中暂无学生记录!");
}
}
public void updateStudent(Student stu)
{
for(int i=0;i<students.size();i++)
{
if(students.get(i).getSno().equals(stu.getSno()))
{
students.set(i,stu);
}
}
}
public Student findStudentBySno(String sno)
{
Student Stu=new Student();
Stu=null;
if (students.size() > 0)
{
for (Student stu : students)
{
if(stu.getSno().equals(sno))
Stu=stu;
}
}
return Stu;
}
public void displayStudentBySno(String sno)
{
boolean flag=false;
if (students.size() > 0)
{
for (Student stu : students)
{
if(stu.getSno().equals(sno))
{
flag=true;
System.out.println("学号: " + stu.getSno() + "\t姓名: "+ stu.getSname() + "\t系部: " + stu.getSdept());
}
}
if(!flag)
{
System.out.println("数据库中无该学生记录!");
}
}
else
{
System.out.println("数据库中暂无学生记录!");
}
}
public void displayAllStudent()
{
if (students.size() > 0)
{
for (Student stu : students)
{
System.out.println("学号: " + stu.getSno() + "\t姓名: "
+ stu.getSname() + "\t系部: " + stu.getSdept());
}
}
else
{
System.out.println("数据库中暂无学生记录!");
}
}
}
package stu;
import java.util.Scanner;
import java.util.*;
public class MainClass {
static public int menu_select(Scanner scanner) {
int menuchoice = -1;
System.out.printf("\n");
System.out.printf("\t\t\t 学生信息管理系统功能菜单 \n");
System.out.printf("\t\t\t 1.插入学生信息 \n");
System.out.printf("\t\t\t 2.删除学生信息 \n");
System.out.printf("\t\t\t 3.更新学生信息 \n");
System.out.printf("\t\t\t 4.显示所有学生信息 \n");
System.out.printf("\t\t\t 5.按学号查询指定学生信息 \n");
System.out.printf("\t\t\t 0.结束程序 \n");
System.out.printf("\t\t\t请输入您的选择: \n");
menuchoice = scanner.nextInt();
return menuchoice;
}
static void inputStudent(Student stu, Scanner scanner) {
System.out.println("请输入学生的学号:");
stu.setSno(scanner.next());
System.out.println("请输入学生的姓名:");
stu.setSname(scanner.next());
System.out.println("请输入学生的系部:");
stu.setSdept(scanner.next());
}
static void updateStudent(Student stu, Scanner scanner) {
System.out.println("请输入要更新的学生的姓名:");
stu.setSname(scanner.next());
System.out.println("请输入要更新的学生的系部:");
stu.setSdept(scanner.next());
}
public static void main(String[] args) {
String sno;
int menuChoice;
Scanner scanner = new Scanner(System.in);
StudentDAOImpl studentDAOImpl = new StudentDAOImpl();
do {
menuChoice = menu_select(scanner);
switch (menuChoice) {
case 1:
Student newStu = new Student();
inputStudent(newStu, scanner);
studentDAOImpl.insertStudent(newStu);
break;
case 2:
System.out.println("请输入要删除学生信息的学号:");
sno = scanner.next();
try
{
studentDAOImpl.deleteStudent(sno);
}
catch (Exception e)
{
System.out.println(" ");
}
break;
case 3:
System.out.println("请输入要更新学生信息的学号:");
sno = scanner.next();
Student updateStu = studentDAOImpl.findStudentBySno(sno);
if (updateStu != null) {
System.out.println("要更新的学生信息显示如下:");
studentDAOImpl.displayStudentBySno(updateStu.getSno());
updateStudent(updateStu, scanner);
studentDAOImpl.updateStudent(updateStu);
} else {
System.out.println("要更新的学生信息不存在!");
}
break;
case 4:
studentDAOImpl.displayAllStudent();
break;
case 5:
System.out.println("请输入查询学生信息的学号:");
sno = scanner.next();
studentDAOImpl.displayStudentBySno(sno);
break;
case 0:
break;
default:
System.out.println("对不起,您输入的功能编号有错!请重新输入!!!");
break;
}
} while (menuChoice != 0);
scanner.close();
}
}
结果:
猜你喜欢
- 2024-10-27 从bitmap到布隆过滤器,再到高并发缓存设计策略
- 2024-10-27 强大 WebView2 + 不用写 JavaScript 的 htmx.js 「小轻快」开发桌面程序
- 2024-10-27 《JSP》第13节:JSP中的四大作用域介绍
- 2024-10-27 Java,FreeMarker,模板引擎,通过案例代码,学懂模板引擎
- 2024-10-27 面向对象的三大特性(c++面向对象的三大特性)
- 2024-10-27 教你分析9种 OOM 常见原因及解决方案
- 2024-10-27 可动态调节参数的线程池实现(动态调试工具有哪些)
- 2024-10-27 Java,基本类型和引用类型,强引用、软引用、弱引用、虚引用
- 2024-10-27 深入理解Java:类加载机制及反射(java常见类加载器)
- 2024-10-27 JVM系列-6.javap指令介绍(jvm调优)
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)