基于mvc设计模式的学生成绩管理系统
设计功能:对学生成绩进行增删改查,首先创建表,user表,用于登录管理员信息,其次创建成绩表用于管理
create database grade_stu;
use grade_stu;
create table user(
id varchar(10) primary key,
pass varchar(10)
)
insert into user
VALUES(2018021298,26548),(56489,458)
create table corse_gra(
sno varchar(10) primary key,
name varchar(10) not null,
math int(10),
english int(10),
physics int(10),
sum int(10)
)
设计视图层view:
package Book_Manager;
import java.util.Scanner;
public class View {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Service service=new Service();
while(true)
{
System.out.println("======管理员登录======");
System.out.println("请输入管理员账号:");
String id=sc.next();
System.out.println("请输入管理员工密码");
String pass=sc.next();
boolean flag=service.login(id,pass);
if(flag) break;
}
System.out.println("======欢迎登录学生成绩管理系统======");
while(true){
System.out.println("1.查看成绩");
System.out.println("2.录入成绩");
System.out.println("3.删除学生成绩");
System.out.println("4.修改学生成绩");
System.out.println("5.退出");
System.out.println("输入(1-4)");
int chioce=sc.nextInt();
switch(chioce)
{
case 1:
service.display();
break;
case 2:
service.insert();
break;
case 3:
service.delete();
break;
case 4:
service.update();
break;
case 5:
System.exit(0);
break;
default:
System.out.println("请输入正确的操作数字");
}
System.out.println("======================================");
}
}
}
设计模型层:
package Book_Manager;
public class Student {
private String sno;
private String name;
private int math;
private int english;
private int physics;
private int sum;
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public Student() {
}
public Student(String sno, String name, int math, int english, int physics, int sum) {
this.sno = sno;
this.name = name;
this.math = math;
this.english = english;
this.physics = physics;
this.sum = sum;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getEnglish() {
return english;
}
public void setEnglish(int english) {
this.english = english;
}
public int getPhysics() {
return physics;
}
public void setPhysics(int physics) {
this.physics = physics;
}
public int getSum() {
return sum;
}
public void setSum(int sum) {
this.sum = sum;
}
}
设计实现功能的service和dao控制层
package Book_Manager;
import java.util.HashMap;
import java.util.Scanner;
public class Service {
Scanner sc=new Scanner(System.in);
Dao dao=new Dao();
public Service() {
}
public void display(){ //查看所有图书
dao.display();
}
public void insert()//插入图书
{
String name=null;
int math=0;
int english=0;
int physics=0;
int sum=0;
String sno=null;
try{
System.out.println("请输入学生学号:");
sno=sc.next();
System.out.println("请输入学生名字:");
name=sc.next();
System.out.println("请输入数学成绩:");
math=sc.nextInt();
System.out.println("请输入英语成绩:");
english=sc.nextInt();
System.out.println("请输入物理成绩:");
physics=sc.nextInt();
sum=math+english+physics;
}
catch (Exception e)
{
System.out.println("请输入正确格式的图书");
}
Student student=new Student(sno,name,math,english,physics,sum);
dao.insert(student);
}
public void delete()//删除成绩
{
System.out.println("请输入删除的学生学号");
String sno=sc.nextLine();
dao.delete(sno);
}
public void update()
{
System.out.println("请输入更新的学生学号");
String sno=sc.next();
System.out.println("请输入要更新的学科");
String subject=sc.next();
System.out.println("请输入要更新的成绩");
int grade=sc.nextInt();
HashMap hashMap=new HashMap();
hashMap.put("sno",sno);
hashMap.put("subject",subject);
hashMap.put("grade",grade);
dao.update(hashMap);
}
public boolean login(String id,String pass)
{
return dao.login(id,pass);
}
}
package Book_Manager;
import java.sql.*;
import java.util.HashMap;
public class Dao {
Connection connection=null;
public Dao() {
try{
Class.forName("com.mysql.jdbc.Driver");
connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/grade_stu","root","zhyazj811303749");
}
catch (Exception e){
System.out.println("数据库连接失败!");
}
}
public boolean login(String id,String pass)
{ boolean flag=false;
try {
PreparedStatement preparedStatement=connection.prepareStatement("select pass from user where id=? ");
preparedStatement.setString(1,id);
ResultSet resultSet=null;
resultSet=preparedStatement.executeQuery();
while(resultSet.next())
{
String password=resultSet.getString("pass");
if(password.equals(pass))
{
flag=true;
}
}
} catch (SQLException throwables) {
System.out.println("登录异常!");
}
return flag;
}
public void display(){ //查看所有图书
try{
String uri="select * from corse_gra";
Statement statement=connection.createStatement();
ResultSet resultSet=null;
resultSet=statement.executeQuery(uri);
System.out.println("sno:\t\tname:\t\tmath:\t\tenglish:\t\tphysics:\t\t成绩总和:\n");
while (resultSet.next())
{
System.out.printf("%s\t\t\t%s\t\t\t%d\t\t\t%d\t\t\t\t\t%d\t\t\t\t%d\n",resultSet.getString("sno"),resultSet.getString("name"),resultSet.getInt("math"),resultSet.getInt("english"),resultSet.getInt("physics"),resultSet.getInt("sum"));
}
}
catch(Exception e)
{
System.out.println("数据库查看失败!");
}
}
public void insert(Student student)//插入图书
{
String name=student.getName();
int math=student.getMath();
int englih=student.getEnglish();
int physics=student.getPhysics();
int sum=student.getSum();
String sno=student.getSno();
// System.out.println(student);
try{
PreparedStatement preparedStatement=connection.prepareStatement("insert into corse_gra value(?,?,?,?,?,?)");
preparedStatement.setString(1,sno);
preparedStatement.setString(2,name);
preparedStatement.setInt(3,math);
preparedStatement.setInt(4,englih);
preparedStatement.setInt(5,physics);
preparedStatement.setInt(6,sum);
int num=preparedStatement.executeUpdate();
if(num!=0){
System.out.println("插入成功!");
}
else{
System.out.println("插入失败!");
}
}
catch (Exception e)
{
System.out.println("插入失败!");
}
}
public void delete(String sno)//删除成绩
{
try {
PreparedStatement preparedStatement=connection.prepareStatement("delete from corse_gra where sno =?");
preparedStatement.setString(1,sno);
int num=preparedStatement.executeUpdate();
if(num!=0){
System.out.println("删除成功!");
}
else System.out.println("删除失败!");
} catch (SQLException throwables) {
System.out.println("删除失败!");
}
}
public void update(HashMap hashMap)
{
String sno= (String) hashMap.get("sno");
String subject= (String) hashMap.get("subject");
int grade= (int) hashMap.get("grade");
// System.out.println(subject+sno+grade);
try {
String sql=null;
switch (subject){
case "math":
sql="update corse_gra set math=? where sno=?";
break;
case "english":
sql="update corse_gra set english=? where sno=?";
break;
case "physics":
sql="update corse_gra set physics=? where sno=?";
break;
}
PreparedStatement preparedStatement=connection.prepareStatement(sql);
preparedStatement.setInt(1,grade);
preparedStatement.setString(2,sno);
int num=preparedStatement.executeUpdate();
if(num==1){
System.out.println("更新成功!");
}
else{
System.out.println("更新不成功");
}
} catch (SQLException throwables) {
System.out.println("更新异常");
}
}
}