Java 学生信息管理系统 (mysql版)

引言:如果需要定制类似的图形界面版的Java 管理系统,比如控制台版的,Java web版的,ssm版,开发工具为idea和eclipse、myEclipse的,提供远程服务,需要源码,或者需要项目实训、毕业设计系统、论文指导的,可以加我QQ1728608455。


本次的学生信息管理系统为图形界面版,如若需要别的版本,可以参考我写的其他博客,希望能帮助那些爱学习的人。

1、效果图



 


 


 


 


 部分重要代码展示

package management;
/**
 * 登录界面
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LoginMain {
        private JTextField IDText;            //学号文本框
        private JPasswordField passwdText;  //密码文本框
        private JComboBox box;                //身份下拉列表框
        private JLabel loginlab;            //登录状态标签
        private JFrame jframe;                //窗体
        public LoginMain(){
            JLabel userlab = new JLabel("学 号:",JLabel.CENTER);//创建学号标签
            IDText = new JTextField(25);    //实例学号文本框
            JLabel passwdlab = new JLabel("密 码:",JLabel.CENTER);//创建密码标签
            passwdText = new JPasswordField(25);//实例化密码文本框
            loginlab = new JLabel("登录状态:",JLabel.CENTER);//实例化登录状态标签
            JLabel IDlabel = new JLabel("身份:");
            String str[] = {"student","teacher"};//创建下拉列表选项数组
            box = new JComboBox(str);
            jframe = new JFrame("学生管理系统登录界面");//实例化一个窗口,并设置标题
            JPanel userPanel= new JPanel();   //创建userPanel面板
            JPanel passwdPanel = new JPanel();//创建passwdPanel面板
            JPanel buttonPanel = new JPanel();//创建 buttonPanel面板
            JPanel labelPanel = new JPanel(); //labelPanel面板
            userPanel.add(userlab);//将userlab添加到userPanel面板
            userPanel.add(IDText); //将IDText添加到userPanel面板
            passwdPanel.add(passwdlab);
            passwdPanel.add(passwdText);
            JButton submit = new JButton("登录");//创建按钮并设置文本
            JButton reset = new JButton("重置");
            buttonPanel.add(IDlabel);//
            buttonPanel.add(box);//将下拉列表框添加到buttonPanel面板
            buttonPanel.add(submit);
            buttonPanel.add(reset);
            Font font=new Font("楷体",Font.BOLD+Font.PLAIN,35);
            loginlab.setFont(font);//设置loginlab标签文本字体
            loginlab.setForeground(Color.blue);
            labelPanel.add(loginlab);
            submit.addActionListener(new ActionListener(){
                //注册submit按钮事件监听器
                public void actionPerformed(ActionEvent e){
                    String user=IDText.getText();//获取学号
                    String passwd=new String (passwdText.getPassword());//获取密码
                    String identity= (String) box.getSelectedItem();
                    LoginCheck date=new LoginCheck(user,passwd,identity);
                    //连接数据库
                    System.out.println(user+" "+passwd+" "+identity);
                    boolean flag=date.prepared();
                    System.out.println(flag);
                    if(flag){//判断是否为合法用户
                        if("teacher".equals(identity)){
                            new TeacherInterface();
                            jframe.dispose();
                        }
                        else{
                            System.out.println("haha");
                            new StudentInterface(user);//登录学生界面
                            jframe.dispose(); //隐藏当前窗体
                        }
                        loginlab.setForeground(Color.green);
                        loginlab.setText("登陆成功!!!");
                    }
                    else{
                        loginlab.setForeground(Color.red);
                        loginlab.setText("登陆失败!!!");
                    }
                }
            });
            reset.addActionListener(new ActionListener(){
                //注册reset事件监听
                public void actionPerformed(ActionEvent e){
                    IDText.setText("");//重置学号
                    passwdText.setText("");
                    loginlab.setForeground(Color.blue);
                    loginlab.setText("请重新登录!!!");
                }
            });
            jframe.setLayout(new GridLayout(4,1));
            jframe.add(userPanel);
            jframe.add(passwdPanel);
            jframe.add(buttonPanel);
            jframe.add(labelPanel);
            jframe.setSize(400,200);
            jframe.setLocation(250,350);
            jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗口关闭方式
            jframe.setVisible(true);
        }
        public static void main(String[] args){
            new LoginMain();
        }
}
 


package management;
//查询全部学生功能
import java.sql.*;
import java.util.*;
import javax.swing.JOptionPane;
import sqlpackage.DBConnection;
public class StudentAllInformation {

    public static List<Object> selectAll() {
        List<Object> list=new ArrayList<Object>();//
        Object[] os=null;
        Connection conn=null;//连接数据库对象
        PreparedStatement pstmt=null;//预编译语句对象
        ResultSet rs = null;//结果集语句对象
        try{
            conn=DBConnection.getConnection();//获取数据库连接
            String sql="SELECT id,sname,password,sex,haddress,phone,dorm,result from student";
            //
            pstmt=conn.prepareStatement(sql);//使用预编译语句进行查询操作
            rs=pstmt.executeQuery();//获取结果集
            while(rs.next()){//判断结果集中是否有数据
                os=new Object[8];
                double point =rs.getDouble("result");//获取成绩信息
                os[0]=rs.getString(1);//将学号信息放到对应数组中
                os[1]=rs.getString(2);
                os[2]=rs.getString(3);
                os[3]=rs.getString(4);
                os[4]=rs.getString(5);
                os[5]=rs.getString(6);
                os[6]=rs.getString(7);
                os[7]=new Double(point);
                list.add(os);
            }
    }catch(SQLException e){
        JOptionPane.showMessageDialog(null, "查询所有学生信息时发生异常","**提示信息**",
                JOptionPane.INFORMATION_MESSAGE    );
        //提示查询指定用户信息时发生异常
        
        }finally{
            DBConnection.close(conn);//关闭数据库连接
        }
    
        return list;
    }

}
 


package management;
/**
 * 添加学生功能实现
 * @author Administrator
 *
 */
import java.sql.*;
import javax.swing.JOptionPane;
import sqlpackage.DBConnection;
public class AddStudentInformation {
    public static int add(String id, String name, String passwd, String sex, String add, String phone, String dorm,
            String result, double point) {
        // TODO Auto-generated method stub
        Connection conn=null;//连接数据库对象
        PreparedStatement pstmt=null;//预编译对象
        int rows=0;//更新语句行数变量
        try{
            conn=DBConnection.getConnection();//获取数据库连接
            String sql="insert into Student(id,sname,password,sex,haddress,phone,dorm,result )values(?,?,?,?,?,?,?,?)";
            //
            pstmt=conn.prepareStatement(sql);//使用预编译语句进行插入操作
            pstmt.setString(1,id);//将名称参数设置到 sql语句中
            pstmt.setString(2,name);
            pstmt.setString(3,passwd);
            pstmt.setString(4,sex);
            pstmt.setString(5,add);
            pstmt.setString(6,phone);
            pstmt.setString(7,dorm);
            pstmt.setDouble(8,point);
            rows=pstmt.executeUpdate();//执行更新操作
    }catch(SQLException e){
        System.out.println("插入数据时发生异常");
        e.printStackTrace();
        }finally{
            //DBConnection.close(pstmt);//关闭操作数据库对象资源
            DBConnection.close(conn);//关闭连接数据库对象资源
        }
        return rows;
    }
    public static int update(String id, String name, String passwd, String sex, String add, String phone, String dorm,
        String result, double point) {
        Connection conn=null;//连接数据库对象
        PreparedStatement pstmt=null;//预编译语句对象
        int rows=0;//结果集对象
        try{
            conn=DBConnection.getConnection();//获取数据库连接
            String sql="UPDATE student set password=?,sex=?,haddress=?,phone=?,dorm=?where id=?";
            pstmt=conn.prepareStatement(sql);//使用预编译语句进行操作
            pstmt.setString(1,passwd);//将名称参数设置到 sql语句中
            pstmt.setString(2,sex);
            pstmt.setString(3,add);
            pstmt.setString(4,phone);
            pstmt.setString(5,dorm);
            pstmt.setString(6,id);
            rows=pstmt.executeUpdate();//执行更新操作
    }catch(SQLException e){//判断是否发生异常
        JOptionPane.showMessageDialog(null, "插入数据时发生异常","**提示信息**",
                JOptionPane.INFORMATION_MESSAGE    );
        //发生异常
        
        }finally{
            //DBConnection.close(pstmt);//关闭操作数据库对象资源
            DBConnection.close(conn);//关闭数据库连接
        }
        return rows;
    }
    

    public static boolean check(String id) {
        // TODO Auto-generated method stub
        Connection conn=null;//连接数据库对象
        PreparedStatement pstmt=null;//预编译语句对象
        ResultSet rs = null;//结果集语句对象
        try{
            conn=DBConnection.getConnection();//获取数据库连接
            String sql="SELECT id student from student where id=?";
            //
            pstmt=conn.prepareStatement(sql);//使用预编译语句进行操作
            pstmt.setString(1,id);//将name参数设置到 sql语句中
            rs=pstmt.executeQuery();//获取结果集
            if(rs.next()){//判断结果集中是否有数据
                return true;
            }
            }catch(SQLException e){
                System.out.println("插入数据时发生异常");
                e.printStackTrace();
            }finally{
                DBConnection.close(conn);//关闭连接数据库对象资源
            }
        return false;
    }

}
 


package management;
//删除学生界面
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DelStudentInterface extends JFrame{
    private static final long serialVersionUID=-1928970409928880648L;//序列化版本号??
    JLabel lsid=new JLabel("学   号 :");//创建学号标签
    JTextField tsid=new JTextField("",20);//创建学号文本框
    JButton delStudent=new JButton("删除学生");//创建删除学生按钮
    JButton reset=new JButton("重置");
    public DelStudentInterface(){
        JPanel idPan=new JPanel();//创建学号面板
        JPanel bPan=new JPanel();
        
        idPan.add(lsid);
        idPan.add(tsid);
        bPan.add(delStudent);
        bPan.add(reset);
        delStudent.addActionListener(new ActionListener(){
            //注册delStudent监听器
            public void actionPerformed(ActionEvent e){
                String id=tsid.getText();//取得学号信息
                if(id==null||"".equals(id)){
                    JOptionPane.showMessageDialog(null, "学号不能为空!!!",
                            "**提示信息**",JOptionPane.INFORMATION_MESSAGE);
                    return;
                }
                if((DelStudentInformation.delete(id))<1){
                    JOptionPane.showMessageDialog(null, "删除失败!!!",
                            "**提示信息**",JOptionPane.INFORMATION_MESSAGE);
                    return;
                }else{
                    JOptionPane.showMessageDialog(null, "删除"+id+"成功!!!",
                            "**提示信息**",JOptionPane.INFORMATION_MESSAGE);
                }
            }
        });
        reset.addActionListener(new ActionListener(){
            //注册reset监听器
            public void actionPerformed(ActionEvent e){
                tsid.setText("");
            }
            });
        this.setTitle("删除学生信息界面");//设置窗口标题
        this.setLayout(new GridLayout(2,1));//设置窗口布局管理器
        this.add(idPan);//将学号面板添加到窗体中
        this.add(bPan);
        this.setLocation(400,300);//设置窗体初始位置
        this.setSize(350,150);//设置窗体大小
        this.setVisible(true);//设置窗体可见
    }
}
 


package management;
//获取学生成绩
import java.sql.*;

import javax.swing.JOptionPane;

//import javax.swing.JOPtionPane;
import sqlpackage.ResultSelect;

public class ResultSelectInformation {

    public static double average() {
        // TODO Auto-generated method stub
        double result=0;
        String sql="Select AVG(result) From student";
        ResultSet rs=ResultSelect.executeQuery(sql);//获取结果集
        try{
            if(rs.next()){
                result=rs.getDouble(1);
            }
        }catch(SQLException e){
            JOptionPane.showMessageDialog(null, "查询平均成绩发生异常","**提示信息**",
                    JOptionPane.INFORMATION_MESSAGE    );
        }
        return result;
    }
/**
 * 求学生的总体成绩情况
 */
    public static int[] selectResult() {
        // TODO Auto-generated method stub
        int rate[]=new int[5];
        String sqlCount="Select count(id) from student";
        String failCount="select(select COUNT(result) from student where result<60);";
        String passCount="select(select COUNT(result) from student where result>=60 and result<75);";
        String fineCount="select(select COUNT(result) from student where result>=75 and result<85);";
        String excellentCount="select(select COUNT(result) from student where result>=85);";
        ResultSet rs=null;
        try{
            rs=ResultSelect.executeQuery(sqlCount);
            if(rs.next()){
                rate[0]=rs.getInt(1);
            }
        }catch(SQLException e){
            JOptionPane.showMessageDialog(null, "查询总人数发生异常","**提示信息**",
                    JOptionPane.INFORMATION_MESSAGE    );
        }
        try{
            rs=ResultSelect.executeQuery(failCount);
            if(rs.next()){
                rate[1]=rs.getInt(1);
            }
        }catch(SQLException e){
            JOptionPane.showMessageDialog(null, "查询不及格人数发生异常","**提示信息**",
                    JOptionPane.INFORMATION_MESSAGE    );
        }
        try{
            rs=ResultSelect.executeQuery(passCount);
            if(rs.next()){
                rate[2]=rs.getInt(1);
            }
        }catch(SQLException e){
            JOptionPane.showMessageDialog(null, "查询及格人数发生异常","**提示信息**",
                    JOptionPane.INFORMATION_MESSAGE    );
        }
        try{
            rs=ResultSelect.executeQuery(fineCount);
            if(rs.next()){
                rate[3]=rs.getInt(1);
            }
        }catch(SQLException e){
            JOptionPane.showMessageDialog(null, "查询良好人数发生异常","**提示信息**",
                    JOptionPane.INFORMATION_MESSAGE    );
        }
        try{
            rs=ResultSelect.executeQuery(excellentCount);
            if(rs.next()){
                rate[4]=rs.getInt(1);
            }
        }catch(SQLException e){
            JOptionPane.showMessageDialog(null, "查询优秀发生异常","**提示信息**",
                    JOptionPane.INFORMATION_MESSAGE    );
        }
        return rate;
    }

}
 


希望能帮到大家。

评论 50
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源码客栈-逍遥游

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值