使用mvc设计模式加jdbc的简易学生成绩管理系统

本文档展示了如何基于MVC设计模式构建一个学生成绩管理系统,包括数据库设计、视图层、模型层以及服务和DAO控制层的实现。主要功能包括成绩的增删改查,管理员登录验证等。系统使用Java编程,数据库为MySQL,实现了数据的持久化操作。
摘要由CSDN通过智能技术生成

基于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("更新异常");
        }
    }
}

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值