广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java实现学生信息管理系统(使用数据库)
  • 845
分享到

Java实现学生信息管理系统(使用数据库)

2024-04-02 19:04:59 845人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

Java基础—学生信息管理系统(使用数据库),供大家参考,具体内容如下 前一段时间写了学生信息管理系统(使用ArrayList),今天再来更新一下使用数据库的管理系统,总

Java基础—学生信息管理系统(使用数据库),供大家参考,具体内容如下

前一段时间写了学生信息管理系统(使用ArrayList),今天再来更新一下使用数据库的管理系统,总体上来说要比用ArrayList简便一些,同时输入的数据也能存储起来。

这次程序是在上一篇的基础上进行修改的,所以结构上来看十分相似。

在写程序之前,要先在Mysql上建立Student Info表。

create table Student (
    ID varchar(50) primary key not null,
    Name varchar(30) not null,
    Gender char(5) not null,
    Age int not null,
    Score int not null
);

1、就和上一篇博客一样,先将学生信息进行封装,这一步并不必要,只是修改起来方便些。

public class Student {
    
    private String stuName;
    private String stuNo;
    private String gender;
    private int age;    
    private int score;
    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public String getStuNo() {
        return stuNo;
    }

    public void setStuNo(String stuNo) {
        this.stuNo = stuNo;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
    
}

2.新建操作类,因为这次要使用mysql数据库,所以要使用JDBC将Java与数据库链接起来。

1> 先将mysql-connector-java.jar 加入到lib库中,之后右键Add path。

2> 然后在程序中要先开启JDBC,加载驱动器,如果驱动器不存在,会抛出异常,所以需要加上try-catch

//开启JDBC

public void getDBconn(){
    String url = "jdbc:mysql://localhost:3306/homework";
    String user = "root";
    String passWord = "root";
        
        try {
            
            Class.forName("com.mysql.jdbc.Driver");
            
            
            conn = DriverManager.getConnection(url, user, password);
            stat = conn.createStatement();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

3>同样,在程序结束后一定要关闭连接,防止出问题。如果关闭异常,也要抛出异常。

//关闭JDBC
public void closeRs(){
    try{
        if(rs != null){
        rs.close();
            }
            if(stat != null){
                stat.close();
            }
            if(conn != null){
                conn.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }

3.接下来就是程序的主体:增、删、改、查四个操作部分,这部分因为笔者偷懒,所以和上一篇使用ArrayList的结构很像,但是内容有较大的修改,每一个try-catch后都加上了finally,无论操作是否成功都要关闭连接

//增加学生信息
public void addStu(Student stu){
        
    String sql = "insert into studentinfo values ( '" + stu.getStuNo()+ "', '" + stu.getStuName() + "', '"
        + stu.getGender() + "', " + stu.getAge() + " , " + stu.getScore() + ")";
        
        try {
            int affectedRows = stat.executeUpdate(sql);
            if(affectedRows > 0){
                System.out.println("该学生信息已添加!");
            }else{
                System.out.println("操作有误,请重新添加!");
                append();
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            closeRs();
        }
        
    }
    
    //输入学生信息
    public void append(){
        
        Student stu = new Student();
        
        
        stu.setStuName(name());
        stu.setStuNo(stuNum());        
        stu.setGender(gender());        
        stu.setAge(age());        
        stu.setScore(score());    
        //将stu中的信息增添到stus中
        addStu(stu);
        
    }
    
    
    //得到学生姓名
    public String name(){    
        String name;        
        System.out.println("请输入学生的姓名:");
        name = scanner.next();        
        return name;
    }
    
    
//得到学生学号
public String stuNum(){
        String stuNum;        
        System.out.println("请输入学生的学号:");
        stuNum = scanner.next();        
        
        //如果学号不为11位,则重新输入,直到学号正确
        if(stuNum.length() != 11){
            System.out.println("您输入的学号有误!请重新输入!");
            stuNum();    
        }
                
        return stuNum;
    }
    
    //得到学生的性别
    public String gender(){
        
        String stuGender;
        
        System.out.println("请输入学生的性别:");
        stuGender = scanner.next();
        
        if(!stuGender.equals("男") && !stuGender.equals("女") ){
            System.out.println("您输入的学生性别有误!请重新输入!");
            gender();
        }
        
        return stuGender;
    }
    
    //得到学生的年龄
    public int age(){
        
        int stuAge;
        
        System.out.println("请输入学生的年龄:");
        stuAge = scanner.nextInt();
        
        if(stuAge < 0 || stuAge >=  80){
            System.out.println("您输入的年龄有误!请重新输入!");
            age();
        }
        
        return stuAge;
    }
    
    //得到学生的成绩
    public int score(){
        int stuScore;
        
        System.out.println("请输入学生的成绩:");
        stuScore = scanner.nextInt();
        
        if(stuScore < 0 || stuScore > 100){
            System.out.println("您输入的成绩有误!请重新输入!");
            score();
        }
        
        return stuScore;
    }
    
    
    
    public void delStu(){
        
        System.out.println("请输入您想删除的学号:");
        String stuNo = scanner.next();
        

        String sql = "delete from studentinfo where ID = '" + stuNo + "' ";
        
        try {
            int affectedRows = stat.executeUpdate(sql);
            if(affectedRows > 0){
                System.out.println("该学生信息已删除!");
            }else{
                System.out.println("操作有误,请重新输入!");
                delStu();
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            closeRs();
        }
    }
    
    
    
    public void updateStu(String stuNo){
        
        String sql = null;
    
        infORMation();
        int choose = scanner.nextInt();
        
        switch(choose){
            case 1:
                System.out.println("请输入要更新的名字:");
                String Name = scanner.next();
                sql = "update studentinfo set Name = '" + Name +"' where ID = '" + stuNo + "'";
                break;
            case 2:
                System.out.println("请输入要更新的性别:");
                String Gender = scanner.next();
                sql = "update studentinfo set Gender = '" + Gender +"' where ID = '" + stuNo + "'";
                break;
            case 3:
                System.out.println("请输入要更新的年龄:");
                int Age = scanner.nextInt();
                sql = "update studentinfo set Age = " + Age +" where ID = '" + stuNo + "'";
                break;
            case 4:
                System.out.println("请输入要更新的成绩:");
                int Score = scanner.nextInt();
                sql = "update studentinfo set Score = " + Score +" where ID = '" + stuNo + "'";
                break;
            case 0:
                System.exit(0);
                break;
        }    
        
        try {
            int affectedRows = stat.executeUpdate(sql);
            if(affectedRows > 0){
                System.out.println("该学生信息已修改!");
            }else{
                System.out.println("操作有误!");
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            closeRs();
        }
    }
    
    public void information(){
        System.out.println("请选择您要修改的信息:");
        System.out.println("1.姓名");
        System.out.println("2.性别");
        System.out.println("3.年龄");
        System.out.println("4.成绩");
        System.out.println("0.退出");
        System.out.println("请输入序号:");
    }
    
    public void queryStuByStuNo(String stuNo){
        
        String sql = "select * from studentinfo where ID = '" + stuNo + "'";
        
        try {
            if(stuNo.equals("0")){
                
                sql = "select * from studentinfo";
                rs = stat.executeQuery(sql);
                
                while(rs.next()){
                    System.out.print("学号:" + rs.getString("ID") + "\t");
                    System.out.print("姓名:" + rs.getString("Name") + "\t");
                    System.out.print("性别:" + rs.getString("Gender") + "\t");
                    System.out.print("年龄:" + rs.getInt("Age") + "\t");
                    System.out.println("成绩:" + rs.getInt("Score") + "\t");
                }
            }else{
                if(rs.next()){
                    rs = stat.executeQuery(sql);
                    System.out.print("学号:" + rs.getString("ID") + "\t");
                    System.out.print("姓名:" + rs.getString("Name") + "\t");
                    System.out.print("性别:" + rs.getString("Gender") + "\t");
                    System.out.print("年龄:" + rs.getInt("Age") + "\t");
                    System.out.println("成绩:" + rs.getInt("Score") + "\t");
                }
            }
            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            closeRs();
        }
        
    
    }

4.定义操作菜单,允许用户输入选择要操作的功能。

import java.util.Scanner;
public class SystemService {

    Scanner scanner = new Scanner(System.in);
    StudentSystem ss = new StudentSystem();
    
    public void serviceChoose(){
        
        System.out.println("-----欢迎使用学生信息管理系统-----");
        
        while(true){
            
            ss.getDBconn();
            
            System.out.println("1.添加学生信息");
            System.out.println("2.删除学生信息");
            System.out.println("3.修改学生信息");
            System.out.println("4.查询学生信息");
            System.out.println("0.退出系统");
            
            System.out.println("请输入序号:");
            switch(scanner.nextInt()){
                
                case 1:
                    ss.append();
                    System.out.println();
                    break;
                case 2:
                    ss.delStu();
                    System.out.println();
                    break;
                case 3:
                    System.out.println("请输入要修改的学生的学号:");
                    ss.updateStu(scanner.next());
                    System.out.println();
                    break;
                case 4:
                    System.out.println("请输入要查询的学生的学号(若为0,则查询所有学生信息):");
                    ss.queryStuByStuNo(scanner.next());
                    System.out.println();
                    break;
                case 0:
                    System.exit(0);//退出系统
                    ss.closeRs();
                    break;
            }
        }
    }
}

5.定义主方法,使用该系统

public class Main {

    public static void main(String[] args) {
        SystemService ss = new SystemService();
        ss.serviceChoose();
    }
    
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Java实现学生信息管理系统(使用数据库)

本文链接: https://www.lsjlt.com/news/163577.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实现学生信息管理系统(使用数据库)
    Java基础—学生信息管理系统(使用数据库),供大家参考,具体内容如下 前一段时间写了学生信息管理系统(使用ArrayList),今天再来更新一下使用数据库的管理系统,总...
    99+
    2022-11-13
  • Java学生信息管理系统设计(数据库版)
    本文实例为大家分享了数据库版的Java学生信息管理系统,供大家参考,具体内容如下package Student_system; import java.awt.*; import java.awt.event.*; import jav...
    99+
    2023-05-30
    java 管理系统 学生信息管理系统
  • java+sqlserver实现学生信息管理系统
    目录一.实现效果二.实现代码1.DBUtil.java2.操作程序test.java前提: 1.建立了与sqlserver数据库的连接(JTDS连接sqlserver数据库的包jtd...
    99+
    2022-11-12
  • 【JAVA】学生信息管理系统
    目录 前言 一、环境搭建 二、功能实现 1.学生信息类的创建 2.学生信息的添加功能 3.学生信息的删除功能 4.学生信息的修改功能  5.学生信息的查看功能  三、主类的调用 1.界面的搭建 2.学生端和教师端 3.系统和功能的选择 总...
    99+
    2023-09-09
    java
  • Java实现简单学生信息管理系统
    最近在学习Java,所以写了个学生信息管理系统,话不多说,上代码。 Student.java: package com.mumu; public class Student {...
    99+
    2022-11-12
  • java+io+swing实现学生信息管理系统
    本文实例为大家分享了java+io+swing实现学生信息管理系统的具体代码,供大家参考,具体内容如下 说明: 1.开发环境基于eclipse外加windowbuilder插件。2....
    99+
    2022-11-13
  • java怎样实现学生信息管理系统
    这篇文章将为大家详细讲解有关java怎样实现学生信息管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下 import java.util.Scanner;//导入jav...
    99+
    2023-05-30
    java
  • java对象数组实现学生信息管理系统
    本文实例为大家分享了Java实现学生信息管理系统,供大家参考,具体内容如下 一、功能需求 case 10:添加学生 case 11:查找一个学生 case 12:根据编号更新学生基本...
    99+
    2022-11-12
  • 学生信息管理系统(JAVA+MYSQL)
    基于Java swing+MySQL实现学生信息管理系统:功能:1录入学生基本信息的功能; 2查询学生基本信息的功能; 3修改学生基本信息的功能 ;4删除学生基本信息的功能 ;5显示所有学生信息的功能;应付一般课设足矣,分享给大家。 通过百...
    99+
    2023-09-26
    java idea mysql
  • 用python实现学生信息管理系统
    用Python实现学生信息管理系统,供大家参考,具体内容如下 系统功能有: 1.录入,查找,删除,修改学生信息2.学生成绩排名3.显示全部学生信息 代码如下: filename = ...
    99+
    2022-11-11
  • Java实现学生信息管理系统IO版本
    学生信息管理系统IO版本代码实现(java),供大家参考,具体内容如下 之前写过的一个学生信息管理系统是用集合类来写的,但是不能实现代码在文档中的存储功能,每次运行过后都得重新输入数...
    99+
    2022-11-12
  • java控制台实现学生信息管理系统
    简介 最近学了java基础后对以前不会写的作业深有感触,想起以前各种在网上找资料找别人的代码参考,所以今天特地写了了简单的基于控制台的学生信息管理系统供还在学基础的同学参考,写的有问...
    99+
    2022-11-13
  • java+sqlserver如何实现学生信息管理系统
    小编给大家分享一下java+sqlserver如何实现学生信息管理系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前提:建立了与sqlserver数据库的连接(...
    99+
    2023-06-22
  • 学生信息管理系统的数据库设计MySQL
    学生信息管理系统的数据库设计 1.课程设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和...
    99+
    2023-10-23
    数据库 mysql
  • Java web学生信息管理系统(jsp)
    🥞目录 🍬1 概述 1.1课程设计目的 1.2预备知识 JAVAWeb: MySQL: JSP: 1.3实训的内容和要求 🍬2 需求分析 2.1系统目标 2.2功能分析: 2.3开发环境: ...
    99+
    2023-09-16
    java javascript html5 mysql intellij-idea
  • JavaWeb实现学生信息管理系统(1)
    这是一个很简单的学生信息管理系统,会用到很多小知识,比如说: 数据库连接池 DBUtils JSP、EL、JSTL MVC设计模式 JavaWeb...
    99+
    2022-11-12
  • JavaWeb实现学生信息管理系统(2)
    本文接着上一篇,继续为大家分享了JavaWeb实现学生信息管理系统的第二篇,供大家参考,具体内容如下 今日任务:实现学生管理系统的查找和添加功能! 一、查询学生信息 1. index...
    99+
    2022-11-12
  • JavaWeb实现学生信息管理系统(3)
    本文接着第二篇,继续为大家分享了JavaWeb实现学生信息管理系统,供大家参考,具体内容如下 今日任务:实现学生管理系统的删除、更新、修改和模糊查询功能! 一、删除学生信息 点击超链...
    99+
    2022-11-12
  • python tkinter实现学生信息管理系统
    本文实例为大家分享了python tkinter实现学生信息管理系统的具体代码,供大家参考,具体内容如下 初学python,代码写的比较繁杂,系统功能还有完善的空间 系统使用了mys...
    99+
    2022-11-13
  • JavaScript+HTML实现学生信息管理系统
    目录一、前言二、效果图三、代码四、学生信息管理系统主界面一、前言 用数组来存储所有学生对象的信息,实现了双向更新,初始时(数组内的对象信息“填充界面”),后面的界面操作可以更新数组内...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作