面向对象原理与Java实践课程设计

面向对象原理与Java实践课程设计

一 、课程设计目的

通过一个数据库管理信息系统的设计与实现,掌握所学Java课程的相关知识和技术,包括:

(1)合理定义接口、类,以及软件的结构

(2)正确使用面向对象编程语言进行编程

(3)掌握图形用户界面应用软件的开发方法

(4)掌握网络编程方法

(5)掌握多线程的应用编程

(6)熟练操作数据库

(7)熟练使用开发工具

二 、课程设计内容

(一)设计题目:学生成绩管理信息系统设计与实现。

(二)系统功能:软件功能分为管理员用户管理功能、教师用户管理功能与学生用户操作功能三部分。

1、管理员通过用户或和密码登录系统进入管理员用户管理界面,能够进行如下操作:

(1) 建立课程、班级及成员信息,将这些信息保存在数据库中并可以对课程、班级及成员进行增、删 、改、查操作。数据库中包含如下信息:学生学号、姓名、班级,面向对象原理与Java实践、高等数学、大学英语等,数据至少要有5个班级且每个班级要有l0名以上学生。

(2) 对教师用户进行增、删 、改、查管理操作。

2、教师用户通过用户名和密码登录系统进入教师用户操作界面,能够进行如下操作:

(1) 录入某门课程各班学生的成绩。

(2) 修改某学生的某门课程成绩。

(3) 查询某学生和某门课程各班学生的成绩。

(4) 查询某个班级某门课程的最高分、最低分及相应学生姓名、班级和学号。

(5) 列表显示某个班级某门课程成绩不及格的学生。

3、学生用户通过用户名和密码登录系统进入学生用户操作界面,能够进行如下操作:

(1) 通过学号和密码登录系统。登录成功后可修改密码。

(2) 查询自己的各科成绩。

三、课程设计要求

1、根据设计题目写出用户基本需求(即需求分析)。

功能需求分析

该学生成绩管理系统具备三方面的功能:第一方面是学生用户,学生通过输入学号和密码进入系统后,可以进行一些基础查询(各科成绩查询)同时可以修改自己的密码,重新登录系统。第二方面是教师用户,老师通过输入工号和密码进入系统后,可以录入某门课程各班学生的成绩, 修改某学生的某门课程成绩,查询某学生和某门课程各班学生的成绩,查询某个班级某门课程的最高分、最低分及相应学生姓名、班级和学号,列表显示某个班级某门课程成绩不及格的学生,还可以修改自己的密码,和重新登录系统。第三方面是管理员,管理员通过用户或和密码登录系统进入管理员用户管理界面,建立课程、班级及成员信息,将这些信息保存在数据库中并可以对课程、班级及成员进行增、删 、改、查操作,对教师用户进行增、删 、改、查管理操作。

2、根据需求对系统进行分析与设计,并画出系统的结构图。

在这里插入图片描述

3、程序实现系统的功能。使用图形界面,按日常软件设计和使用习惯设计菜单和界面。

登录界面

package UI;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

import bean.User;
import sql.Dao;
import UI.Admpanel;
import UI.Studentpanel;
import UI.Teacherpanel;

public class denglu {
//	 登录界面
	     Dao jdbc=null;
		 JFrame frame;
		 ImageIcon logo;
		 JLabel jl1,Jl2,Jl3;
		 JTextField name;
		 JPasswordField password;
		 JRadioButton stu,tea,adm;
		 ButtonGroup group;
		 JButton b1;
		 JDialog d;
			String loginType;
			int screenWidth = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
			int screenHeight = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
		public denglu(Dao jdbc) {
			frame=new JFrame("学生成绩管理系统");
			frame.setLayout(new FlowLayout());
			//登录界面布局
			logo=new ImageIcon("bin\\images.flower3.jpg");
			jl1=new JLabel(logo);
			frame.add(jl1);
			frame.setLayout(null);
			frame.setSize(500, 400);
			frame.setResizable(false);
			frame.setLocationRelativeTo(null);
			
//			JPanel panel1=new JPanel();
//			JPanel panel2=new JPanel();
//			panel2.setLayout(new GridLayout(3,1));
			
			Jl2=new JLabel("账号");
			Jl2.setLocation(80, 180);
			Jl2.setSize(80, 30);
			frame.add(Jl2);
			name=new JTextField(10);
			name.setLocation(160, 180);
			name.setSize(240, 30);
			frame.add(name);
			Jl3=new JLabel("密码");
			Jl3.setLocation(80, 220);
			Jl3.setSize(80, 30);
	        frame.add(Jl3);
	        password=new JPasswordField();
	        password.setLocation(160, 220);
			password.setSize(240, 30);
			frame.add(password);
	
			//学生,教师,管理员单选框设置
			group=new ButtonGroup();
			stu=new JRadioButton("学生");
			tea=new JRadioButton("教师");
			adm=new JRadioButton("管理员");
			stu.setBounds(150, 270, 80, 30);
			tea.setBounds(230, 270, 80, 30);
			adm.setBounds(310, 270, 80, 30);
			JLabel a=new JLabel(getImageIcon("bin\\Studentsystem\\Images",500, 150));
			int w=a.getWidth();
			int h=a.getHeight(); 
			a.setSize(500, 150);
			a.setLocation(0, 0);
			frame.add(stu);
			group.add(stu);
			frame.add(tea);
			group.add(tea);
			frame.add(adm);
			group.add(adm);
				
					b1=new JButton("登录");
					b1.setLocation(80, 300);
					b1.setSize(320, 30);
					frame.add(b1);
					frame.setVisible(true);
//					登录时选择用户学生,教师,管理员
					b1.addActionListener(new ActionListener() {

						@Override 
						public void actionPerformed(ActionEvent e) {
							if(adm.isSelected()) {
								loginType="admin";
							}
							if(stu.isSelected()) {
								loginType="student";
							}
							if(tea.isSelected()) {
								loginType="teacher";
							}
							//向数据库发起查询,若账号密码匹配,则登陆成功,否则失败
							User user=null;
							if((user=jdbc.sendLogin(name.getText(), password.getText()))!=null) {
								System.out.println("__________-"+loginType);
								if(!loginType.equalsIgnoreCase(user.getType())) {
									System.out.println("__________-user.getType()"+user.getType());
									d=new JDialog(frame,"登录异常提示",true);
									d.setLayout(null);
									d.setLocation((screenWidth-400)/2, (screenHeight-300)/2);
									JLabel tips=new JLabel("身份信息不匹配,请检查后再试!");
									JButton ok=new JButton("确认");
									tips.setBounds(100, 80 ,300, 30);
									ok.setBounds(100, 150, 200, 30);
									d.setSize(400,300);
									
									ok.addActionListener(new ActionListener() {

										@Override
										public void actionPerformed(ActionEvent e) {
											// 关闭模态框
											d.dispose();
											System.out.println("触发关闭模态框");
											d.setVisible(false);
											
										}
										
									});
									d.add(tips);
									d.add(ok);
									d.setVisible(true);	
									
								}else {
								System.out.println(user.toString());
								frame.setVisible(false);
								switch(user.getType()) {
								case "teacher":
									new Teacherpanel(user,frame,jdbc);
									break;
								case "student":
									new Studentpanel(user,frame,jdbc);
									break;
								case "admin":
									new Admpanel(user,frame,jdbc);						
									break;
											
								}
								}
							}else {
							
							d=new JDialog(frame,"登录异常提示",true);
							d.setLayout(null);
							d.setLocation((screenWidth-400)/2, (screenHeight-300)/2);
							JLabel tips=new JLabel("账号或者密码错误,请检查后再试!!");
							JButton ok=new JButton("确认");
							tips.setBounds(100, 80 ,300, 30);
							ok.setBounds(100, 150, 200, 30);
							d.setSize(400,300);
							
							ok.addActionListener(new ActionListener() {

								@Override
								public void actionPerformed(ActionEvent e) {
									// 关闭模态框
									d.dispose();
									System.out.println("触发关闭模态框");
									d.setVisible(false);
									
								}
								
							});
							d.add(tips);
							d.add(ok);
							d.setVisible(true);
						}
						}
					});
					
				}
				public  ImageIcon getImageIcon( String path, int width, int height) {
					  
					  ImageIcon icon = new ImageIcon(path);
					  icon.setImage(icon.getImage().getScaledInstance(width, height,icon.getImage().SCALE_DEFAULT));
					  return icon;
					 }
               }

管理员

package UI;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableCellRenderer;

import bean.SubjectInfo;
import bean.User;
import sql.Dao;

	public class Admpanel implements ActionListener {
		String[] columnTitle= {"课程名称","授课班级","教师编号"};
		String[] stuTitle= {"账号","密码","姓名","班级"};
		String[] teaTitle= {"账号","密码","姓名"};
		String[] classTitle= {"班级名称"};
		List<SubjectInfo> subInfo=null;//所有课程信息
		JFrame login;
		User user=null;
		Dao jdbc=null;
		JPanel d;
		JFrame f=null;
		int screenWidth = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
		int screenHeight = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
		public Admpanel(User user,JFrame login,Dao jdbc) {
			this.login=login;
			this.user=user;
			this.jdbc=jdbc;
			f=new JFrame("管理员端:"+user.getName()+"欢迎您的使用!");
			f.setLocation((screenWidth-800)/2, (screenHeight-600)/2);
			f.setLayout(new GridLayout(1,1));
			f.setSize(800, 600);
			d=new JPanel() ;
			JLabel a=new JLabel(getImageIcon("F:/1/bin/Studentsystem/Images",800, 600));
			d.add(a);
			f.add(d,BorderLayout.CENTER);
			JMenuBar menuBar = new JMenuBar();
			
			
			JMenu m1 = new JMenu("课程管理");
			JMenu m2 = new JMenu("班级管理");
			JMenu m3 = new JMenu("学生管理");
			JMenu m4 = new JMenu("教师管理");
			JMenu m5 = new JMenu("更多选项");
			
			menuBar.add(m1);
			menuBar.add(m2);
			menuBar.add(m3);
			menuBar.add(m4);   
			menuBar.add(m5);
			
			
			// m1
					JMenuItem m11 = new JMenuItem("查看所有课程");
					JMenuItem m12 = new JMenuItem("删除原有课程");
					JMenuItem m13 = new JMenuItem("添加新的课程");
					JMenuItem m14 = new JMenuItem("修改原有课程");	
					m1.add(m11);
					m1.add(m12);
					m1.add(m13);
					m1.add(m14);
					m11.addActionListener(this);
					m12.addActionListener(this);
					m13.addActionListener(this);
					m14.addActionListener(this);
					
			//m2
					JMenuItem m21 = new JMenuItem("添加班级");
					JMenuItem m22 = new JMenuItem("删除班级");
					JMenuItem m23 = new JMenuItem("查看所有班级");
					JMenuItem m24 = new JMenuItem("修改班级名称");
					m2.add(m21);
					m2.add(m22);
					m2.add(m23);
					m2.add(m24);
					m21.addActionListener(this);
					m22.addActionListener(this);
					m23.addActionListener(this);
					m24.addActionListener(this);
			//m3
					JMenuItem m31 = new JMenuItem("添加学生用户");
					JMenuItem m32 = new JMenuItem("删除学生用户");
					JMenuItem m33 = new JMenuItem("所有学生用户");	
					JMenuItem m34 = new JMenuItem("重置学生密码");	
					JMenuItem m35= new JMenuItem("修改学生姓名");	
					m3.add(m31);
					m3.add(m32);
					m3.add(m33);
					m3.add(m34);
					m3.add(m35);
					m31.addActionListener(this);
					m32.addActionListener(this);
					m33.addActionListener(this);
					m34.addActionListener(this);
					m35.addActionListener(this);
			//m4	
					JMenuItem m41 = new JMenuItem("添加教师用户");
					JMenuItem m42 = new JMenuItem("删除教师用户");
					JMenuItem m43 = new JMenuItem("所有教师用户");	
					JMenuItem m44 = new JMenuItem("重置教师密码");
					JMenuItem m45 = new JMenuItem("修改教师姓名");
					m4.add(m41);
					m4.add(m42);
					m4.add(m43);
					m4.add(m44);
					m4.add(m45);
					m41.addActionListener(this);
					m42.addActionListener(this);
					m43.addActionListener(this);
					m44.addActionListener(this);
					m45.addActionListener(this);
			//m5
					JMenuItem m51 = new JMenuItem("切换用户");
					JMenuItem m52 = new JMenuItem("退出系统");
					m5.add(m51);
					m5.add(m52);
					m51.addActionListener(this);
					m52.addActionListener(this);
					
					
					
					
					f.setJMenuBar(menuBar);
			
			f.setVisible(true);
		}
		public  ImageIcon getImageIcon( String path, int width, int height) {
			  
			  ImageIcon icon = new ImageIcon(path);
			  icon.setImage(icon.getImage().getScaledInstance(width, height,icon.getImage().SCALE_DEFAULT));
			  return icon;
			 }

		@Override
		public void actionPerformed(ActionEvent e) {
			f.setResizable(true);
			switch(e.getActionCommand()) {
			
			case "添加新的课程":
				
				d.removeAll();
				
				JComboBox classes=new JComboBox();
				JComboBox teaIds=new JComboBox();
				List listClasses=jdbc.allClass();
				List listTeaIds=jdbc.allTeacherId();
				for(int i=0;i<listClasses.size();i++) {
					classes.addItem(listClasses.get(i));
				}
				for(int i=0;i<listTeaIds.size();i++) {
					teaIds.addItem(listTeaIds.get(i));
				}
				subInfo=jdbc.allSubInfo();
				String[][] data=new String[subInfo.size()][];
				for(int i=0;i<subInfo.size();i++) {
					data[i]=subInfo.get(i).getStringArray();
				}
				JTable table=new JTable(data,columnTitle);
				DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  table.setDefaultRenderer(Object.class, cr);
				table.setEnabled(false);
//				d=new JDialog(f,"添加新的课程",true);
//				JFrame d=new JFrame();
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(table),BorderLayout.CENTER);
				//JPanel
				JPanel p=new JPanel();
				p.setLayout(new GridLayout(5,6,10,10));
				JLabel tip1=new JLabel("     课程名称:");
				JTextField subName=new JTextField(10);
				JLabel tip2=new JLabel("     授课班级:");
				JLabel tip3=new JLabel("     教师编号:");
				JButton submit=new JButton("添加");
				
				p.add(tip1);
				p.add(subName);
				p.add(tip2);
				p.add(classes);
				p.add(tip3);
				p.add(teaIds);
				p.add(submit);
				
				submit.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						jdbc.addSubject(subName.getText(), (String)classes.getSelectedItem(), (String)teaIds.getSelectedItem());
						JLabel result=new JLabel("         添加课程成功!!!                        ");
						p.add(result);
						p.updateUI();
					}});
				
				JLabel tip4=new JLabel("所有课程信息如下: ");
				d.add(tip4,BorderLayout.NORTH);
				d.add(p,BorderLayout.SOUTH);
				f.add(d,BorderLayout.CENTER);
				d.updateUI();
				break;
			case "删除原有课程":
				d.removeAll();
				subInfo=jdbc.allSubInfo();
				String[][] data1=new String[subInfo.size()][];
				JComboBox choose=new JComboBox();
				
				for(int i=0;i<subInfo.size();i++) {
					choose.addItem(subInfo.get(i).getComboBoxString());
					data1[i]=subInfo.get(i).getStringArray();
				}
				JTable table1=new JTable(data1,columnTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  table1.setDefaultRenderer(Object.class, cr);
				table1.setEnabled(false);
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(table1),BorderLayout.CENTER);
				JLabel result=new JLabel("所有课程信息如下: ");
				d.add(result,BorderLayout.NORTH);
				JPanel dp=new JPanel();
				dp.setLayout(new GridLayout(5,1,10,10));
				JLabel tip=new JLabel("请选择要删除的课程信息:(会将该课程的所有学生的成绩清空) ");
				JButton submitDel=new JButton("删除");

			
				submitDel.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						String item=(String)choose.getSelectedItem();
						String[] infor=item.split("----");
						jdbc.delSubject(infor[1], infor[0]);
						JLabel result=new JLabel("删除课程成功!");
						dp.add( result);
						
						dp.updateUI();
					}
					
				});
			
				dp.add(tip);
				dp.add(choose);
				dp.add(submitDel);

				d.add(dp,BorderLayout.SOUTH);
				d.setSize(800,400);
				d.setVisible(true);
				
				d.updateUI();
				break;
			case "修改原有课程":
				d.removeAll();
				JComboBox subs=new JComboBox();	
				JComboBox teaIds2=new JComboBox();
				
				Set setSubs=jdbc.allSubject();
				List listTeaIds1=jdbc.allTeacherId();
				Iterator it=setSubs.iterator();
				while(it.hasNext()) {
					subs.addItem(it.next());
				}
				for(int i=0;i<listTeaIds1.size();i++) {
					teaIds2.addItem(listTeaIds1.get(i));
				}
				subInfo=jdbc.allSubInfo();
				String[][] data2=new String[subInfo.size()][];
				for(int i=0;i<subInfo.size();i++) {
					data2[i]=subInfo.get(i).getStringArray();
				}
				JTable table2=new JTable(data2,columnTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  table2.setDefaultRenderer(Object.class, cr);
				table2.setEnabled(false);
				d.setLayout(new BorderLayout());

				d.add(new JScrollPane(table2),BorderLayout.CENTER);
				//JPanel
				JPanel p1=new JPanel();
				p1.setLayout(new GridLayout(6,2,10,10));
				JLabel t1=new JLabel("     原课程名称:");
				
				JLabel t2=new JLabel("     修改后的课程名称:");
				JTextField nSubName=new JTextField(10);
				
				JLabel t4=new JLabel("     修改后的教师编号:");
				
				JButton submit1=new JButton("确认修改");
				
				p1.add(t1);
				p1.add(subs);
				p1.add(t2);
				p1.add(nSubName);
				
				
				p1.add(t4);
				p1.add(teaIds2);
				p1.add(submit1);
		
				JLabel result1=new JLabel();
				submit1.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
		
						if(nSubName.getText().replaceAll(" ", "").equalsIgnoreCase("")) {						
							result1.setText("修改后的课程名称不能为空!!!                        ");
							p1.add(result1);
							p1.updateUI();
							return;
						}
						SubjectInfo old=new SubjectInfo();
						old.setSubjectName((String)subs.getSelectedItem());
						
						SubjectInfo snew=new SubjectInfo();
						snew.setSubjectName(nSubName.getText());
						snew.setTeacherId((String)teaIds2.getSelectedItem());
						jdbc.updSubject(old, snew);
						result1.setText("         修改课程成功!!!                        ");
						p1.add(result1);
						p1.updateUI();
					}});
				
				JLabel tis=new JLabel("所有课程信息如下: ");
				d.add(tis,BorderLayout.NORTH);
				d.add(p1,BorderLayout.SOUTH);
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
				
				
			case "查看所有课程":
				d.removeAll();
				subInfo=jdbc.allSubInfo();
				String[][] dataSub=new String[subInfo.size()][];
				for(int i=0;i<subInfo.size();i++) {
					dataSub[i]=subInfo.get(i).getStringArray();
				}
				JTable table3=new JTable(dataSub,columnTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  table3.setDefaultRenderer(Object.class, cr);
				 table3.setEnabled(false);
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(table3),BorderLayout.CENTER);
			
				JLabel tipDetial=new JLabel("所有课程详细信息如下: ");
				tipDetial.setEnabled(false);
				d.add(tipDetial,BorderLayout.NORTH);
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
					
				
			case "添加学生用户":
				d.removeAll();
				d.setLayout(null);
				JLabel lab0=new JLabel("账号:");
				JTextField id=new JTextField(5);
				JLabel lab1=new JLabel("密码:");
				JTextField password=new JTextField(5);
				JLabel lab2=new JLabel("姓名");
				JTextField name=new JTextField(5);
				JLabel lab3=new JLabel("班级");
				JTextField className=new JTextField(5);
				JButton sub=new JButton("添加");
				JLabel tipTop=new JLabel("请输入要添加的学生信息:");
				tipTop.setBounds(275, 120, 200, 30);
				JLabel res=new JLabel();
				lab0.setBounds(275, 150, 50, 30);
				id.setBounds(325, 150, 200, 30);
				lab1.setBounds(275, 190, 50, 30);
				password.setBounds(325, 190, 200, 30);
				
				lab2.setBounds(275, 230, 50, 30);
				name.setBounds(325, 230, 200, 30);
				
				lab3.setBounds(275, 270, 50, 30);
				className.setBounds(325, 270, 200, 30);
				sub.setBounds(275, 310, 250, 30);
				res.setBounds(360, 350, 250, 30);
//				lab0.setBounds(30, 0, 50, 30);
//				id.setBounds(80, 0, 50, 30);
//				lab1.setBounds(140, 0, 50, 30);
//				password.setBounds(190, 0, 50, 30);
				d.add(tipTop);
				d.add(lab0);
				d.add(id);
				d.add(lab1);
				d.add(password);
				
				d.add(lab2);
				d.add(name);
				d.add(lab3);
				d.add(className);
				
				d.add(sub);
				
				d.add(res);
				
				sub.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						System.out.println(name.getText()+"---"+className.getText());
						jdbc.addStu(id.getText(), password.getText(), name.getText(), className.getText());
						res.setText("添加成功!");
					
						
					}});
				
				
				d.setVisible(true);
				d.updateUI();
				break;
			case "删除学生用户":
				//显示所有学生用户
				d.removeAll();
				List<User> liststus=jdbc.allStuInfo();
				String[][] stus=new String[liststus.size()][];
				for(int i=0;i<liststus.size();i++) {
					stus[i]=liststus.get(i).getStringArrayStu();
				}
				JTable tableStu=new JTable(stus,stuTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tableStu.setDefaultRenderer(Object.class, cr);
				tableStu.setEnabled(false);
				d.setLayout(new BorderLayout());
				JLabel ti4=new JLabel("共有 "+stus.length+"条学生记录,详细信息如下:");
				d.add(ti4,BorderLayout.NORTH);
				d.add(new JScrollPane(tableStu),BorderLayout.CENTER);
				JPanel ps=new JPanel();
				JLabel tip01=new JLabel("请选择要删除的学生的id(删除后将无法恢复,其对应成绩记录也将被删除,请谨慎操作):");
				JButton del=new JButton("删除");
				
				JLabel delResult=new JLabel();
				ps.setLayout(new GridLayout(5,1,10,10));
				JComboBox stuIds=new JComboBox();
				List list=jdbc.allStuId();
				for(int i=0;i<list.size();i++) {
					stuIds.addItem(list.get(i));
				}
			
				ps.add(tip01);
				ps.add(stuIds);
				ps.add(del);
				
				ps.add(delResult);
				d.add(ps,BorderLayout.SOUTH);
				del.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						jdbc.delStu((String)stuIds.getSelectedItem());
						delResult.setText("删除学生"+(String)stuIds.getSelectedItem()+"信息成功!");
						
					}} );
				
				
				
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
			case "重置学生密码":
				f.setResizable(false);
				//显示所有学生用户
				d.removeAll();
				liststus=jdbc.allStuInfo();
				stus=new String[liststus.size()][];
				for(int i=0;i<liststus.size();i++) {
					stus[i]=liststus.get(i).getStringArrayStu();
				}
				tableStu=new JTable(stus,stuTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tableStu.setDefaultRenderer(Object.class, cr);
				tableStu.setEnabled(false);
				d.setLayout(new BorderLayout());
				ti4=new JLabel("共有 "+stus.length+"条学生记录,详细信息如下:");
				d.add(ti4,BorderLayout.NORTH);
				d.add(new JScrollPane(tableStu),BorderLayout.CENTER);
				ps=new JPanel();
				tip01=new JLabel("请选择要重置密码的学生id:");
				tip=new JLabel("请输入新密码:");
				del=new JButton("重置");
				JTextField psd=new JTextField(5);
				delResult=new JLabel();
				ps.setLayout(new GridLayout(5,1,10,10));
				stuIds=new JComboBox();
				list=jdbc.allStuId();
				for(int i=0;i<list.size();i++) {
					stuIds.addItem(list.get(i));
				}
			
				ps.add(tip01);
				ps.add(stuIds);
				ps.add(tip);
				ps.add(psd);
				ps.add(del);
				
				ps.add(delResult);
				d.add(ps,BorderLayout.SOUTH);
				del.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						if(!psd.getText().replaceAll(" ", "").equals("")) {
						jdbc.updUserPassword(psd.getText(), (String)stuIds.getSelectedItem());
						delResult.setText("重置学生"+(String)stuIds.getSelectedItem()+"密码成功!");
						}else {
							delResult.setText("重置后的密码不能为空!");	
						}
						ps.updateUI();
					}} );
				
				
				
				
				d.updateUI();
				break;
			case "修改学生姓名":
				f.setResizable(false);
				//显示所有学生用户
				d.removeAll();
				liststus=jdbc.allStuInfo();
				stus=new String[liststus.size()][];
				for(int i=0;i<liststus.size();i++) {
					stus[i]=liststus.get(i).getStringArrayStu();
				}
				tableStu=new JTable(stus,stuTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tableStu.setDefaultRenderer(Object.class, cr);
				tableStu.setEnabled(false);
				d.setLayout(new BorderLayout());
				ti4=new JLabel("共有 "+stus.length+"条学生记录,详细信息如下:");
				d.add(ti4,BorderLayout.NORTH);
				d.add(new JScrollPane(tableStu),BorderLayout.CENTER);
				ps=new JPanel();
				tip01=new JLabel("请选择要修改姓名的学生id:");
				tip=new JLabel("请输入新的学生姓名:");
				del=new JButton("确认");
				psd=new JTextField(5);
				delResult=new JLabel();
				ps.setLayout(new GridLayout(5,1,10,10));
				stuIds=new JComboBox();
				list=jdbc.allStuId();
				for(int i=0;i<list.size();i++) {
					stuIds.addItem(list.get(i));
				}
			
				ps.add(tip01);
				ps.add(stuIds);
				ps.add(tip);
				ps.add(psd);
				ps.add(del);
				
				ps.add(delResult);
				d.add(ps,BorderLayout.SOUTH);
				del.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						if(!psd.getText().replaceAll(" ", "").equals("")) {
						jdbc.updUserName(psd.getText(), (String)stuIds.getSelectedItem());
						delResult.setText("修改学生"+(String)stuIds.getSelectedItem()+"姓名成功!");
						}else {
							delResult.setText("修改后的姓名不能为空!");	
						}
						ps.updateUI();
					}} );
				
				
				
				
				d.updateUI();
				break;
			case "所有学生用户":
				d.removeAll();
				List<User> liststus1=jdbc.allStuInfo();
				String[][] stus1=new String[liststus1.size()][];
				for(int i=0;i<liststus1.size();i++) {
					stus1[i]=liststus1.get(i).getStringArrayStu();
				}
				JTable tableStu1=new JTable(stus1,stuTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tableStu1.setDefaultRenderer(Object.class, cr);
				tableStu1.setEnabled(false);
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(tableStu1),BorderLayout.CENTER);
				//JPanel
				
				JLabel ti41=new JLabel("共有 "+stus1.length+"条学生记录,详细信息如下:");
				d.add(ti41,BorderLayout.NORTH);
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
			
				break;
			case "添加教师用户":
				d.removeAll();
				d.setLayout(null);
				
			
				
				JLabel lab0t=new JLabel("账号:");
				JTextField idt=new JTextField(5);
				JLabel lab1t=new JLabel("密码:");
				JTextField passwordt=new JTextField(5);
				JLabel lab2t=new JLabel("姓名");
				JTextField namet=new JTextField(5);
				JButton subt=new JButton("添加");
				tipTop=new JLabel("请输入要添加的教师信息:");
				tipTop.setBounds(275, 120, 200, 30);
				JLabel rest=new JLabel();
				lab0t.setBounds(275, 150, 50, 30);
				idt.setBounds(325, 150, 200, 30);
				lab1t.setBounds(275, 190, 50, 30);
				passwordt.setBounds(325, 190, 200, 30);
				
				lab2t.setBounds(275, 230, 50, 30);
				namet.setBounds(325, 230, 200, 30);
				
				
				subt.setBounds(275, 270, 250, 30);
				rest.setBounds(360, 310, 250, 30);
				d.add(tipTop);
				d.add(lab0t);
				d.add(idt);
				d.add(lab1t);
				d.add(passwordt);
				
				d.add(lab2t);
				d.add(namet);
				
				d.add(subt);
			
				d.add(rest);
				
				subt.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
				
						jdbc.addTeacher(idt.getText(), passwordt.getText(), namet.getText());
						rest.setText("添加成功!");
						
						
					}});
			
			
				d.setVisible(true);
				d.updateUI();
				break;
			case "删除教师用户":
				d.removeAll();
				List<User> listTeas=jdbc.allTeacherInfo();
				String[][] teas=new String[listTeas.size()][];
				for(int i=0;i<listTeas.size();i++) {
					teas[i]=listTeas.get(i).getStringArrayTea();
				}
				JTable tableTea=new JTable(teas,teaTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tableTea.setDefaultRenderer(Object.class, cr);
				tableTea.setEnabled(false);
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(tableTea),BorderLayout.CENTER);
				JLabel tip11=new JLabel("共有 "+teas.length+"条教师记录,详细信息如下:");
				d.add(tip11,BorderLayout.NORTH);
				JPanel ps1=new JPanel();
				JLabel tip011=new JLabel("请选择要删除的教师的id(删除后将无法恢复,请谨慎操作):");
				JButton del1=new JButton("删除");

				JLabel delResult1=new JLabel();
				ps1.setLayout(new GridLayout(5,1,10,10));
				JComboBox teaIds1=new JComboBox();
				List list1=jdbc.allTeacherId();
				for(int i=0;i<list1.size();i++) {
					teaIds1.addItem(list1.get(i));
				}
			
				ps1.add(tip011);
				ps1.add(teaIds1);
				ps1.add(del1);
				
				ps1.add(delResult1);
				d.add(ps1,BorderLayout.SOUTH);
				del1.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						jdbc.delTeacher((String)teaIds1.getSelectedItem());
						delResult1.setText("删除教师"+(String)teaIds1.getSelectedItem()+"信息成功!");
						
					}} );
				
				
				
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
			case "重置教师密码":
				f.setResizable(false);
				d.removeAll();
				listTeas=jdbc.allTeacherInfo();
				teas=new String[listTeas.size()][];
				for(int i=0;i<listTeas.size();i++) {
					teas[i]=listTeas.get(i).getStringArrayTea();
				}
				tableTea=new JTable(teas,teaTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tableTea.setDefaultRenderer(Object.class, cr);
				tableTea.setEnabled(false);
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(tableTea),BorderLayout.CENTER);
				tip11=new JLabel("共有 "+teas.length+"条教师记录,详细信息如下:");
				d.add(tip11,BorderLayout.NORTH);
				ps1=new JPanel();
				tip011=new JLabel("请选择要重置密码的的教师id:");
				del1=new JButton("重置");
				tip=new JLabel("请输入新密码:");
				psd=new JTextField(5);
				delResult1=new JLabel();
				ps1.setLayout(new GridLayout(5,1,10,10));
				teaIds1=new JComboBox();
				list1=jdbc.allTeacherId();
				for(int i=0;i<list1.size();i++) {
					teaIds1.addItem(list1.get(i));
				}
			
				ps1.add(tip011);
				ps1.add(teaIds1);
				ps1.add(tip);
				ps1.add(psd);
				ps1.add(del1);
				ps1.add(delResult1);
				d.add(ps1,BorderLayout.SOUTH);
				del1.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						if(!psd.getText().replaceAll(" ", "").equals("")) {
						jdbc.updUserPassword(psd.getText(), (String)teaIds1.getSelectedItem());;
						delResult1.setText("重置教师"+(String)teaIds1.getSelectedItem()+"密码成功!");
						}else{
							delResult1.setText("重置后的密码不能为空!");	
						}
						
					}} );
				
				
				
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
			case "修改教师姓名":
				f.setResizable(false);
				d.removeAll();
				listTeas=jdbc.allTeacherInfo();
				teas=new String[listTeas.size()][];
				for(int i=0;i<listTeas.size();i++) {
					teas[i]=listTeas.get(i).getStringArrayTea();
				}
				tableTea=new JTable(teas,teaTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tableTea.setDefaultRenderer(Object.class, cr);
				tableTea.setEnabled(false);
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(tableTea),BorderLayout.CENTER);
				tip11=new JLabel("共有 "+teas.length+"条教师记录,详细信息如下:");
				d.add(tip11,BorderLayout.NORTH);
				ps1=new JPanel();
				tip011=new JLabel("请选择要修改姓名的的教师id:");
				del1=new JButton("确认");
				tip=new JLabel("请输入新的教师姓名:");
				psd=new JTextField(5);
				delResult1=new JLabel();
				ps1.setLayout(new GridLayout(5,1,10,10));
				teaIds1=new JComboBox();
				list1=jdbc.allTeacherId();
				for(int i=0;i<list1.size();i++) {
					teaIds1.addItem(list1.get(i));
				}
			
				ps1.add(tip011);
				ps1.add(teaIds1);
				ps1.add(tip);
				ps1.add(psd);
				ps1.add(del1);
				ps1.add(delResult1);
				d.add(ps1,BorderLayout.SOUTH);
				del1.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						if(!psd.getText().replaceAll(" ", "").equals("")) {
						jdbc.updUserName(psd.getText(), (String)teaIds1.getSelectedItem());;
						delResult1.setText("修改教师"+(String)teaIds1.getSelectedItem()+"姓名成功!");
						}else{
							delResult1.setText("修改后的姓名不能为空!");	
						}
						
					}} );
				
				
				
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
			case "所有教师用户":
				d.removeAll();
				List<User> listTeas1=jdbc.allTeacherInfo();
				String[][] teas1=new String[listTeas1.size()][];
				for(int i=0;i<listTeas1.size();i++) {
					teas1[i]=listTeas1.get(i).getStringArrayTea();
				}
				JTable tableTea1=new JTable(teas1,teaTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tableTea1.setDefaultRenderer(Object.class, cr);
				tableTea1.setEnabled(false);
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(tableTea1),BorderLayout.CENTER);
				//JPanel
				
				JLabel tip111=new JLabel("共有 "+teas1.length+"条教师记录,详细信息如下:");
				d.add(tip111,BorderLayout.NORTH);
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
			
			case "切换用户":
				d.removeAll();
				System.out.println("点击切换用户");
				login.setVisible(true);
				f.setVisible(false);
				d.updateUI();
				break;
			case "添加班级":
				d.removeAll();
				List<String> allClass=jdbc.allClass();
				String[][] sClass=new String[allClass.size()][];
				String[] temp=null;
				for(int i=0;i<allClass.size();i++) {
					temp=new String[1];
					temp[0]=allClass.get(i);
					sClass[i]=temp;
				}
				JTable tClass=new JTable(sClass,classTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tClass.setDefaultRenderer(Object.class, cr);
				tClass.setEnabled(false);
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(tClass),BorderLayout.CENTER);
				JLabel addResult=new JLabel("所有班级信息如下: ");
				d.add(addResult,BorderLayout.NORTH);
				JPanel dp1=new JPanel();
				dp1.setLayout(new GridLayout(5,1,10,10));
				JLabel tip00=new JLabel("请输入要添加的班级名称: ");
				JTextField addClassName=new JTextField(10);
				JButton submitAdd=new JButton("添加");
			
				JLabel addResu=new JLabel();
			
				submitAdd.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						jdbc.addClass(addClassName.getText());
						addResu.setText("班级添加成功!");
						dp1.updateUI();
					}
					
				});
			
				dp1.add(tip00);
				dp1.add(addClassName);
				dp1.add(submitAdd);
			
				dp1.add(addResu);
				d.add(dp1,BorderLayout.SOUTH);
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;	
			case "查看所有班级":
				d.removeAll();
				allClass=jdbc.allClass();
				sClass=new String[allClass.size()][];
				temp=null;
				for(int i=0;i<allClass.size();i++) {
					temp=new String[1];
					temp[0]=allClass.get(i);
					sClass[i]=temp;
				}
				tClass=new JTable(sClass,classTitle);
				  cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tClass.setDefaultRenderer(Object.class, cr);
				tClass.setEnabled(false);
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(tClass),BorderLayout.CENTER);
				addResult=new JLabel("所有班级信息如下: ");
				d.add(addResult,BorderLayout.NORTH);
				
			
				d.updateUI();
				break;	
			case "删除班级":
				d.removeAll();
				JComboBox selectClass=new JComboBox();
				allClass=jdbc.allClass();
				for(int i=0;i<allClass.size();i++) {
					selectClass.addItem(allClass.get(i));
				}
				sClass=new String[allClass.size()][];
				temp=null;
				for(int i=0;i<allClass.size();i++) {
					temp=new String[1];
					temp[0]=allClass.get(i);
					sClass[i]=temp;
				}
				tClass=new JTable(sClass,classTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tClass.setDefaultRenderer(Object.class, cr);
				tClass.setEnabled(false);
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(tClass),BorderLayout.CENTER);
				addResult=new JLabel("所有班级信息如下: ");
				d.add(addResult,BorderLayout.NORTH);
				dp1=new JPanel();
				dp1.setLayout(new GridLayout(5,1,10,10));
				
				tip=new JLabel("请选择要删除的班级:");
				submitAdd=new JButton("删除");
			
				addResu=new JLabel();
			
				submitAdd.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						jdbc.delClass((String)selectClass.getSelectedItem());;
						addResu.setText("班级删除成功!");
						dp1.updateUI();
					}
					
				});
				dp1.add(tip);
				dp1.add(selectClass);
				
				dp1.add(submitAdd);
			
				dp1.add(addResu);
				d.add(dp1,BorderLayout.SOUTH);
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;	
			case "修改班级名称":
				d.removeAll();
				selectClass=new JComboBox();
				allClass=jdbc.allClass();
				for(int i=0;i<allClass.size();i++) {
					selectClass.addItem(allClass.get(i));
				}
				sClass=new String[allClass.size()][];
				temp=null;
				for(int i=0;i<allClass.size();i++) {
					temp=new String[1];
					temp[0]=allClass.get(i);
					sClass[i]=temp;
				}
				tClass=new JTable(sClass,classTitle);
				cr = new DefaultTableCellRenderer();
				  cr.setHorizontalAlignment(JLabel.CENTER);
				  tClass.setDefaultRenderer(Object.class, cr);
				tClass.setEnabled(false);
				d.setLayout(new BorderLayout());
				d.add(new JScrollPane(tClass),BorderLayout.CENTER);
				addResult=new JLabel("所有班级信息如下: ");
				d.add(addResult,BorderLayout.NORTH);
				dp1=new JPanel();
				dp1.setLayout(new GridLayout(6,1,10,10));
				
				tip=new JLabel("请选择要修改的班级:");
				submitAdd=new JButton("修改");
				tip2=new JLabel("请输入修改后的班级名称:");
				JTextField input=new JTextField(5);
				addResu=new JLabel();
			
				submitAdd.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						if(input.getText().replaceAll(" ", "")!="") {
						jdbc.updClassName((String)selectClass.getSelectedItem(), input.getText());
						addResu.setText("班级名称修改成功!");
						}else {
							addResu.setText("修改后的班级名称不能为空!");	
						}
						dp1.updateUI();
					}
					
				});
				dp1.add(tip);
				dp1.add(selectClass);
				dp1.add(tip2);
				dp1.add(input);
				dp1.add(submitAdd);
			
				dp1.add(addResu);
				d.add(dp1,BorderLayout.SOUTH);
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;	
			case "退出系统":
				System.out.println("退出系统");
				System.exit(0);
				
				break;
												
			}
			
		}
}

教师

package UI;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
//import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;

import bean.Grade;
import bean.SubjectInfo;
import bean.User;
import sql.Dao;

	public class Teacherpanel implements ActionListener {
		JFrame f=null;
		User user=null;
		Dao jdbc=null;
		JFrame login;
		JPanel d=new JPanel();
		String old;
		String[] gradeTitle= {"学号","课程名称","成绩"};
		int screenWidth = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
		int screenHeight = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
		public Teacherpanel(User user,JFrame login,Dao jdbc) {
			this.login=login;
			this.user=user;
			this.jdbc=jdbc;
			f=new JFrame("教师端:"+user.getName()+"欢迎您的使用!");
			f.setLocation((screenWidth-800)/2, (screenHeight-600)/2);
			f.setLayout(new GridLayout(1,1));
			f.setSize(800, 600);
			f.add(d,BorderLayout.CENTER);
			JLabel a=new JLabel(getImageIcon("F:/1/bin/Studentsystem/Images",800, 600));
			d.add(a);
			JMenuBar menuBar = new JMenuBar();
			
			
			
			
			// m1
			JMenu m1 = new JMenu("查看成绩");
					JMenuItem m11 = new JMenuItem("查看某学生所有课程的成绩");
					JMenuItem m12 = new JMenuItem("查看本课程各班的成绩");
					JMenuItem m13 = new JMenuItem("最高分学生信息");
					JMenuItem m14 = new JMenuItem("最低分学生信息");	
					JMenuItem m15 = new JMenuItem("本课程不及格学生");
					m1.add(m11);
					m1.add(m12);
					m1.add(m13);
					m1.add(m14);
					m1.add(m15);
					
					m11.addActionListener(this);
					m12.addActionListener(this);
					m13.addActionListener(this);
					m14.addActionListener(this);
					m15.addActionListener(this);
					JMenu m2 = new JMenu("更新成绩");
					JMenuItem m21 = new JMenuItem("录入本课程各班的成绩");
					JMenuItem m22 = new JMenuItem("修改某学生本课程的成绩");
					m2.add(m21);
					m2.add(m22);
					m21.addActionListener(this);
					m22.addActionListener(this);
					JMenu m3 = new JMenu("账户安全");
					JMenuItem m31 = new JMenuItem("修改密码");
					m3.add(m31);
					m31.addActionListener(this);
					JMenu m6 = new JMenu("更多选项");
					JMenuItem m61 = new JMenuItem("切换用户");
					JMenuItem m62= new JMenuItem("退出系统");
					m6.add(m61);
					m6.add(m62);
					
					m61.addActionListener(this);
					
					m62.addActionListener(this);
				
					menuBar.add(m1);
					menuBar.add(m2);
					menuBar.add(m3);
					menuBar.add(m6);
					f.setJMenuBar(menuBar);	
					f.setVisible(true);
		}
		public  ImageIcon getImageIcon( String path, int width, int height) {
			  
			  ImageIcon icon = new ImageIcon(path);
			  icon.setImage(icon.getImage().getScaledInstance(width, height,icon.getImage().SCALE_DEFAULT));
			  return icon;
			 }
		@Override
		public void actionPerformed(ActionEvent e) {
			switch(e.getActionCommand()) {
			case "录入本课程各班的成绩":
				d.removeAll();
				List<SubjectInfo> infor=jdbc.getSubjectClass(user.getId());
				
				
				d.setLayout(new BorderLayout());
				
				JComboBox box=new JComboBox();
				JButton submit1=new JButton("确认");
				JPanel p2=new JPanel();
				p2.setLayout(new GridLayout(1,1));
				d.add(new JScrollPane(p2),BorderLayout.CENTER);
				submit1.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						p2.removeAll();
						String re=(String)box.getSelectedItem();
						String[] inf=re.split("--");
						List<Grade>subInfo=jdbc.setSubjectGrade(inf[1], inf[0]);
						String[][] dataSub=new String[subInfo.size()][];
						for(int i=0;i<subInfo.size();i++) {
							dataSub[i]=subInfo.get(i).getStringArray();
						}
						DefaultTableModel model = new DefaultTableModel(dataSub,gradeTitle) {
						     public boolean isCellEditable(int row,int column){  
						         if(column == 2){  
						            return true;  
						         }else{  
						            return false;  
						         }  
						     }  
						};
						model.isCellEditable(0, 3);
						JTable table2=new JTable(model);
						DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
						  cr.setHorizontalAlignment(JLabel.CENTER);
						  table2.setDefaultRenderer(Object.class, cr);
						ListSelectionModel model1 = table2.getSelectionModel();
						//设置只能选中单行
						table2.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
						
					
						model1.addListSelectionListener(new ListSelectionListener() {
							public void valueChanged(ListSelectionEvent e) {
							     
							    
							       int lie=table2.getSelectedColumn();
							       int han=table2.getSelectedRow();
							       if(e.getFirstIndex()!=e.getLastIndex()) {
						
							 System.out.println("变更后的数据"+table2.getValueAt(e.getFirstIndex(),table2.getSelectedColumn() ));
							 System.out.println("--"+(String)table2.getValueAt(e.getFirstIndex(),0)+
									 (String)table2.getValueAt(e.getFirstIndex(),1)+
									 (String)table2.getValueAt(e.getFirstIndex(),2));
							 String id=(String)table2.getValueAt(e.getFirstIndex(),0);
							 String className=(String)table2.getValueAt(e.getFirstIndex(),1);
							 String score= (String)table2.getValueAt(e.getFirstIndex(),2);
							 if(score!=null) {
							 jdbc.updStuGrade(id, className,score);
							 }
							    	  
							       }
							       System.out.println(table2.getValueAt(han, lie));
				}
							});
						p2.add(new JScrollPane(table2),BorderLayout.CENTER);
						p2.updateUI();
					}});
				
				for(int i=0;i<infor.size();i++) {
					box.addItem(infor.get(i).getSubjectName()+"--"+infor.get(i).getClassName());
				}
				JLabel tipDetial=new JLabel((String)box.getSelectedItem()+"成绩信息如下: ");
				JPanel p1=new JPanel();
				p1.setLayout(new GridLayout(3,1,10,10));
				p1.add(tipDetial);
				p1.add(box);
				p1.add(submit1);			
				d.add(p1,BorderLayout.NORTH);			
			
				
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
			
			case "修改某学生本课程的成绩":
				d.removeAll();
				infor=jdbc.getSubjectClass(user.getId());
				d.setLayout(new BorderLayout());
				box=new JComboBox();
				
				JButton submit2=new JButton("确认");
				p2=new JPanel();
				p2.setLayout(new GridLayout(1,1));
				d.add(new JScrollPane(p2),BorderLayout.CENTER);
				
				
				for(int i=0;i<infor.size();i++) {
					box.addItem(infor.get(i).getSubjectName()+"--"+infor.get(i).getClassName());
				}
				tipDetial=new JLabel("请先选择班级课程信息");
				p1=new JPanel();
				p1.setLayout(new GridLayout(3,1,10,10));
				p1.add(tipDetial);
				p1.add(box);
				p1.add(submit2);			
				d.add(p1,BorderLayout.NORTH);			
			
				JPanel p3=new JPanel();
				p3.setLayout(new GridLayout(3,1,10,10));
				JPanel p4=new JPanel();
				JLabel tipId=new JLabel("学号:");
				JComboBox idSelect=new JComboBox();
				idSelect.addItem("请先选择班级课程信息");
				
				String info=(String)box.getSelectedItem();
				System.out.println("现在的班级课程选择器"+info);
				String[] infoArr=info.split("--");
//				List<String>ids=jdbc.classStuId(infoArr[1]);
//				for(int i=0;i<ids.size();i++) {
//					idSelect.addItem(ids.get(i));
//				}
				JLabel tipSub=new JLabel();
				JLabel tipScore=new JLabel("分数:");
				JTextField score=new JTextField(5);
				JButton submit=new JButton("修改");
				JLabel result=new JLabel();
				//学号选择确认
				submit.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						String infor=(String)box.getSelectedItem();
						String[] infoArr=infor.split("--");
						jdbc.updStuGrade((String)idSelect.getSelectedItem(),infoArr[0] , score.getText());
						result.setText("成绩修改成功!");
						p3.updateUI();
						
					}});
				//班级课程选择确认
				submit2.addActionListener(new ActionListener() {
					
					@Override
					public void actionPerformed(ActionEvent e) {
						p2.removeAll();
						idSelect.removeAllItems();
						String info=(String)box.getSelectedItem();
						System.out.println("现在的班级课程选择器"+info);
						String[] infoArr=info.split("--");
						List<String>ids=jdbc.classStuId(infoArr[1]);
						for(int i=0;i<ids.size();i++) {
							idSelect.addItem(ids.get(i));
						}
						tipDetial.setText((String)box.getSelectedItem()+"成绩信息如下: ");
						tipSub.setText("课程名称:"+infoArr[0]);
						
						List<Grade>subInfo=jdbc.setSubjectGrade(infoArr[1], infoArr[0]);
						String[][] dataSub=new String[subInfo.size()][];
						for(int i=0;i<subInfo.size();i++) {
							dataSub[i]=subInfo.get(i).getStringArray();
						}
						
						System.out.println("数据长度--"+dataSub.length);
						JTable table2=new JTable(dataSub,gradeTitle);
						DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
						  cr.setHorizontalAlignment(JLabel.CENTER);
						  table2.setDefaultRenderer(Object.class, cr);
						table2.setEnabled(false);
						p2.add(new JScrollPane(table2),BorderLayout.CENTER);
						p1.updateUI();
						p2.updateUI();
						p4.updateUI();
						p3.updateUI();
					}});
				p4.add(tipId);
				p4.add(idSelect);
				p4.add(tipSub);
				p4.add(tipScore);
				p4.add(score);
				p4.add(submit);
				p3.add(p4);
				
				p3.add(result);
				
				d.add(p3,BorderLayout.SOUTH);
				
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
			case "查看某学生所有课程的成绩":
				d.removeAll();
				d.setLayout(new BorderLayout());
				JComboBox stuSelect=new JComboBox();
				JPanel p11=new JPanel();
				List<String>ids=jdbc.allStuId();
				for(int i=0;i<ids.size();i++) {
					stuSelect.addItem(ids.get(i));
				}
				p11.setLayout(new GridLayout(4,1,10,10));
				JLabel tip=new JLabel("请选择学号:");
				JButton submit4=new JButton("确认");
				JPanel ptable=new JPanel();
				ptable.setLayout(new GridLayout(1,1));
				JLabel ti41=new JLabel();
				p11.add(tip);
				p11.add(stuSelect);
				p11.add(submit4);
				p11.add( ti41);
				d.add(p11,BorderLayout.NORTH);
				submit4.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						tip.setText("学号为"+(String)stuSelect.getSelectedItem()+"的学生相关记录如下:");
						ptable.removeAll();
						List<Grade> liststus1=jdbc.selfGrade((String)stuSelect.getSelectedItem());
						User user=jdbc.oneInfo((String)stuSelect.getSelectedItem());
						String[][] stus1=new String[liststus1.size()][5];
						String[] title= {"学号","姓名","班级","课程名称","分数"};
						System.out.println("+++++="+stus1.length);
						for(int i=0;i<liststus1.size();i++) {
							stus1[i][0]=liststus1.get(i).getStudentId();
							stus1[i][1]=user.getName();
							stus1[i][2]=user.getClassName();
							stus1[i][3]=liststus1.get(i).getSubjectName();
							stus1[i][4]=liststus1.get(i).getScore();
							
						}
						JTable tableStu1=new JTable(stus1,title);
						DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
						  cr.setHorizontalAlignment(JLabel.CENTER);
						  tableStu1.setDefaultRenderer(Object.class, cr);
						tableStu1.setEnabled(false);
						ptable.add(new JScrollPane(tableStu1));
						ptable.updateUI();
						p11.updateUI();
						ti41.setText("共有 "+stus1.length+"门课程记录,详细信息如下:");
						p11.updateUI();
					}
					
				});
				d.add(new JScrollPane(ptable),BorderLayout.CENTER);
				//JPanel
				
			
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
				
			case "查看本课程各班的成绩":
	List<SubjectInfo> infor1=jdbc.getSubjectClass(user.getId());
				
				d.removeAll();
				d.setLayout(new BorderLayout());
			
				JComboBox box1=new JComboBox();
				JButton submit11=new JButton("确认");
				JPanel p21=new JPanel();
				p21.setLayout(new GridLayout(1,1));
				d.add(new JScrollPane(p21),BorderLayout.CENTER);
				JLabel tipDetial1=new JLabel("请先选择班级和课程:");
				
				submit11.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						p21.removeAll();
						tipDetial1.setText((String)box1.getSelectedItem()+"成绩信息如下: ");
						String re=(String)box1.getSelectedItem();
						String[] inf=re.split("--");
						List<Grade>subInfo=jdbc.setSubjectGrade(inf[1], inf[0]);
						String[][] dataSub=new String[subInfo.size()][];
						for(int i=0;i<subInfo.size();i++) {
							dataSub[i]=subInfo.get(i).getStringArray();
						}	
						JTable table2=new JTable(dataSub,gradeTitle);
						DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
						  cr.setHorizontalAlignment(JLabel.CENTER);
						  table2.setDefaultRenderer(Object.class, cr);
						table2.setEnabled(false);
						p21.add(new JScrollPane(table2),BorderLayout.CENTER);
						p21.updateUI();
					}});
				
				for(int i=0;i<infor1.size();i++) {
					box1.addItem(infor1.get(i).getSubjectName()+"--"+infor1.get(i).getClassName());
				}
				
				JPanel p111=new JPanel();
				p111.setLayout(new GridLayout(3,1,10,10));
				p111.add(tipDetial1);
				p111.add(box1);
				p111.add(submit11);			
				d.add(p111,BorderLayout.NORTH);			
				
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
			case "最高分学生信息":
				d.removeAll();
				//班级课程选择器
				List<SubjectInfo> infos=jdbc.getSubjectClass(user.getId());
				JComboBox csInfo=new JComboBox();
				
				for(int i=0;i<infos.size();i++) {
					csInfo.addItem(infos.get(i).getSubjectName()+"--"+infos.get(i).getClassName());
				}
				//

				JPanel Ctable=new JPanel();
				Ctable.setLayout(new GridLayout(1,1));
				d.setLayout(new BorderLayout());
				
				JPanel nor=new JPanel();
				nor.setLayout(new GridLayout(3,1,10,10));
				
				JLabel ti=new JLabel("请先选择班级课程信息:");
				JButton b=new JButton("确认");
				
				
				nor.add(csInfo);
				nor.add(b);
				nor.add(ti);
				d.add(nor,BorderLayout.NORTH);
				b.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						Ctable.removeAll();
						String choose=(String)csInfo.getSelectedItem();
						String[] sinfo=choose.split("--");
						List<Grade> grade=jdbc.getSubjectMax(sinfo[0], sinfo[1]);
						String[][] stus1=new String[grade.size()][5];
						String[] title= {"学号","姓名","班级","课程名称","分数"};
						for(int i=0;i<grade.size();i++) {
							User user=jdbc.oneInfo(grade.get(i).getStudentId());
							stus1[i][0]=grade.get(i).getStudentId();
							stus1[i][1]=user.getName();
							stus1[i][2]=user.getClassName();
							stus1[i][3]=grade.get(i).getSubjectName();
							stus1[i][4]=grade.get(i).getScore();
						}
							ti.setText(sinfo[1]+sinfo[0]+"最高分学生信息如下:");
							JTable tab=new JTable(stus1,title);
							DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
							  cr.setHorizontalAlignment(JLabel.CENTER);
							  tab.setDefaultRenderer(Object.class, cr);
							tab.setEnabled(false);
							Ctable.add(new JScrollPane(tab));
						Ctable.updateUI();
						nor.updateUI();
					}});
		
				
				d.add(new JScrollPane(Ctable),BorderLayout.CENTER);
				//JPanel
				
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
			case "最低分学生信息":
				d.removeAll();
				//班级课程选择器
				List<SubjectInfo> infos1=jdbc.getSubjectClass(user.getId());
				JComboBox csInfo1=new JComboBox();
				
				for(int i=0;i<infos1.size();i++) {
					csInfo1.addItem(infos1.get(i).getSubjectName()+"--"+infos1.get(i).getClassName());
				}
				//

				JPanel Ctable1=new JPanel();
				Ctable1.setLayout(new GridLayout(1,1));
				d.setLayout(new BorderLayout());
				JPanel nor1=new JPanel();
				nor1.setLayout(new GridLayout(3,1,10,10));
				
				JLabel ti1=new JLabel("请先选择班级课程信息:");
				JButton b1=new JButton("确认");
				
				
				nor1.add(csInfo1);
				nor1.add(b1);
				nor1.add(ti1);
				d.add(nor1,BorderLayout.NORTH);
				b1.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						Ctable1.removeAll();
						String choose=(String)csInfo1.getSelectedItem();
						String[] sinfo=choose.split("--");
						List<Grade> grade=jdbc.getSubjectMin(sinfo[0], sinfo[1]);
						String[][] stus1=new String[grade.size()][5];
						String[] title= {"学号","姓名","班级","课程名称","分数"};
						for(int i=0;i<grade.size();i++) {
							User user=jdbc.oneInfo(grade.get(i).getStudentId());
							stus1[i][0]=grade.get(i).getStudentId();
							stus1[i][1]=user.getName();
							stus1[i][2]=user.getClassName();
							stus1[i][3]=grade.get(i).getSubjectName();
							stus1[i][4]=grade.get(i).getScore();
						}
						
						
						
							
							ti1.setText(sinfo[1]+sinfo[0]+"最低分学生信息如下:");
							JTable tab1=new JTable(stus1,title);
							
							tab1.setEnabled(false);
							DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
							  cr.setHorizontalAlignment(JLabel.CENTER);
							  tab1.setDefaultRenderer(Object.class, cr);
							Ctable1.add(new JScrollPane(tab1));
							
							nor1.updateUI();
							Ctable1.updateUI();
					}});
		
				
				d.add(new JScrollPane(Ctable1),BorderLayout.CENTER);
				//JPanel
				
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
			case "本课程不及格学生":
	List<SubjectInfo> infor01=jdbc.getSubjectClass(user.getId());
				
				d.removeAll();
				d.setLayout(new BorderLayout());
				JComboBox box01=new JComboBox();
				JButton submit011=new JButton("确认");
				JPanel p021=new JPanel();
				p021.setLayout(new GridLayout(1,1));
				d.add(new JScrollPane(p021),BorderLayout.CENTER);
				JLabel tipDetial01=new JLabel("请先选择班级和课程:");
				
				submit011.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						p021.removeAll();
						tipDetial01.setText((String)box01.getSelectedItem()+"不及格学生信息如下: ");
						String re=(String)box01.getSelectedItem();
						String[] inf=re.split("--");
						List<Grade>subInfo=jdbc.getSubjectFail(inf[0], inf[1]);
						String[][] dataSub=new String[subInfo.size()][];
						for(int i=0;i<subInfo.size();i++) {
							dataSub[i]=subInfo.get(i).getStringArray();
						}	
						JTable table2=new JTable(dataSub,gradeTitle);
						DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
						  cr.setHorizontalAlignment(JLabel.CENTER);
						  table2.setDefaultRenderer(Object.class, cr);
						table2.setEnabled(false);
						p021.add(new JScrollPane(table2),BorderLayout.CENTER);
						p021.updateUI();
					}});
				
				for(int i=0;i<infor01.size();i++) {
					box01.addItem(infor01.get(i).getSubjectName()+"--"+infor01.get(i).getClassName());
				}
				
				JPanel p0111=new JPanel();
				p0111.setLayout(new GridLayout(3,1,10,10));
				p0111.add(tipDetial01);
				p0111.add(box01);
				p0111.add(submit011);			
				d.add(p0111,BorderLayout.NORTH);			
			
				d.setSize(800,400);
				d.setVisible(true);
				d.updateUI();
				break;
			case "修改密码":
				d.removeAll();
				String[][] data=new String[1][2];
				String[] titles= {"账号","姓名"};
				data[0][0]=user.getId();
				data[0][1]=user.getName();
				JTable table=new JTable(data,titles);

				d.setLayout(new BorderLayout());

				d.add(new JScrollPane(table),BorderLayout.CENTER);
				//JPanel
				JPanel p=new JPanel();
				p.setLayout(new GridLayout(5,6,10,10));
				JLabel tip1=new JLabel("     原密码:");
				JTextField oldPsd=new JTextField(10);
				JLabel tip2=new JLabel("     新密码:");
				JTextField newPsd=new JTextField(10);
				submit=new JButton("修改");
				JButton back1=new JButton("返回上一级");
				result=new JLabel();
				p.add(tip1);
				p.add(oldPsd);
				p.add(tip2);
				p.add(newPsd);
				p.add(submit);
				p.add(back1);
				p.add(result);
				
				submit.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						if(oldPsd.getText().equals(user.getPassword())) {
							jdbc.updUserPassword(newPsd.getText(), user.getId());
							result.setText("密码修改成功!");
							user.setPassword(newPsd.getText());
							p.updateUI();
						}else {
							result.setText("原密码输入错误,密码修改失败!");
							p.updateUI();
						}
						
						
						
					}});
				back1.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
						d.setVisible(false);
						
					}} );
				JLabel tip4=new JLabel("尊敬的"+user.getName()+",您本人信息的如下: ");
				d.add(tip4,BorderLayout.NORTH);
				d.add(p,BorderLayout.SOUTH);
				d.setSize(800,400);
				 
				d.setVisible(true);
				d.updateUI();
				break;
			case "切换用户":
				login.setVisible(true);
				f.setVisible(false);
				break;	
			case "退出系统":
				System.out.println("退出系统");
				System.exit(0);
				
				break;	
								
			}
		}
}

学生

package UI;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.List;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
import javax.swing.table.DefaultTableCellRenderer;

import bean.Grade;
import bean.User;
import sql.Dao;
	public class Studentpanel implements ActionListener {
		JFrame f=null;
		User user=null;
		JFrame login=null;
		Dao jdbc=null;
		JPanel d=new JPanel();
		int screenWidth = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
		int screenHeight = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
		public Studentpanel(User user,JFrame login,Dao jdbc) {
			this.login=login;
			this.user=user;
			this.jdbc=jdbc;
			f=new JFrame("学生端:"+user.getName()+"欢迎您的使用!");
			f.setLocation((screenWidth-800)/2, (screenHeight-600)/2);
			f.setLayout(new GridLayout(1,1));
			f.setSize(800, 600);
			f.add(d,BorderLayout.CENTER);
			JLabel a=new JLabel(getImageIcon("F:/1/bin/Studentsystem/Images",800, 600));
			d.add(a);
			JMenuBar menuBar = new JMenuBar();
			JMenu m11 = new JMenu("查询各科成绩");
			JMenu m12 = new JMenu("修改密码");
			
			m11.setMnemonic(KeyEvent.VK_T);
			m12.setMnemonic(KeyEvent.VK_T);
			JMenu m6 = new JMenu("更多选项");
			JMenuItem m61 = new JMenuItem("切换用户");
			JMenuItem m62= new JMenuItem("退出系统");
			m6.add(m61);
			m6.add(m62);
			
			m61.addActionListener(this);
			
			m62.addActionListener(this);
			menuBar.add(m11);
			menuBar.add(m12);
			menuBar.add(m6);
			
			
			m11.addMenuListener(new MenuListener() {

				@Override
				public void menuSelected(MenuEvent e) {
					f.setResizable(true);
					d.removeAll();
					List<Grade> liststus1=jdbc.selfGrade(user.getId());
					String[][] stus1=new String[liststus1.size()][5];
					String[] title= {"学号","姓名","班级","课程名称","分数"};
					for(int i=0;i<liststus1.size();i++) {
						stus1[i][0]=liststus1.get(i).getStudentId();
						stus1[i][1]=user.getName();
						stus1[i][2]=user.getClassName();
						stus1[i][3]=liststus1.get(i).getSubjectName();
						stus1[i][4]=liststus1.get(i).getScore();
						
					}
					JTable tableStu1=new JTable(stus1,title);
					DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
					  cr.setHorizontalAlignment(JLabel.CENTER);
					  tableStu1.setDefaultRenderer(Object.class, cr);
					d.setLayout(new BorderLayout());
					
					d.add(new JScrollPane(tableStu1),BorderLayout.CENTER);
					//JPanel
					
					JLabel ti41=new JLabel("共有 "+stus1.length+"门课程记录,详细信息如下:");
					d.add(ti41,BorderLayout.NORTH);
					d.setSize(800,400);
					d.setVisible(true);
					d.updateUI();
					
				}

				@Override
				public void menuDeselected(MenuEvent e) {
					
				}

				@Override
				public void menuCanceled(MenuEvent e) {
					
					
				}});
			m12.addMenuListener(new MenuListener() {

				@Override
				public void menuSelected(MenuEvent e) {
					f.setResizable(false);
					d.removeAll();
					d.setLayout(null);
					String[][] data=new String[1][3];
					String[] titles= {"账号","姓名","班级"};
					data[0][0]=user.getId();
					data[0][1]=user.getName();
					data[0][2]=user.getClassName();		
					JTable table=new JTable(data,titles);
					DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
					  cr.setHorizontalAlignment(JLabel.CENTER);
					  table.setDefaultRenderer(Object.class, cr);
					
					
					
					//JPanel
					  JLabel tip4=new JLabel("尊敬的"+user.getName()+",您正在进行修改密码操作: ");
					 tip4.setBounds(250, 200, 800, 30);
					
					JLabel tip1=new JLabel("     原密码:");
					JTextField oldPsd=new JTextField(10);
					JLabel tip2=new JLabel("     新密码:");
					JTextField newPsd=new JTextField(10);
					JButton submit=new JButton("修改");
					JLabel result=new JLabel();
					
					tip1.setBounds(250, 250, 60, 30);
					oldPsd.setBounds(310, 250, 200, 30);
					tip2.setBounds(250, 290, 60, 30);
					newPsd.setBounds(310, 290, 200, 30);
					 submit.setBounds(250, 330, 260, 30);
					 result.setBounds(250, 360, 200, 30);
					 
					 
					
					d.add(tip1);
					d.add(oldPsd);
					d.add(tip2);
					d.add(newPsd);
					d.add(submit);
					d.add(result);
					
					submit.addActionListener(new ActionListener() {
						@Override
						public void actionPerformed(ActionEvent e) {
							if(oldPsd.getText().equals(user.getPassword())) {
								jdbc.updUserPassword(newPsd.getText(), user.getId());
								result.setText("密码修改成功!");
								user.setPassword(newPsd.getText());
								d.updateUI();
							}else {
								result.setText("原密码输入错误,密码修改失败!");
								d.updateUI();
							}
							
							
							
						}});
					
					
					d.add(tip4);
				
					d.updateUI();
				}

				@Override
				public void menuDeselected(MenuEvent e) {
					
				}

				@Override
				public void menuCanceled(MenuEvent e) {
					
					
				}});
		
			
			f.setJMenuBar(menuBar);	
			f.setVisible(true);
			
		}
		@Override
		public void actionPerformed(ActionEvent e) {
			switch(e.getActionCommand()) {
			
			case "退出系统":
				f.setResizable(true);
				System.out.println("退出系统");
				System.exit(0);
				break;
			case "切换用户":
				f.setResizable(true);
				login.setVisible(true);
				f.setVisible(false);
				break;
			
								
			}
		}
		public  ImageIcon getImageIcon( String path, int width, int height) {
			  
			  ImageIcon icon = new ImageIcon(path);
			  icon.setImage(icon.getImage().getScaledInstance(width, height,icon.getImage().SCALE_DEFAULT));
			  return icon;
			 }
	}
数据库导入
package sql;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import bean.Grade;
import bean.SubjectInfo;
import bean.User;

public class Dao {
	String hostDatabase = "jdbc:mysql://localhost:3306/java_system?characterEncoding=utf8";
	String userName = "root";
	String password = "746810";
	String driverName = "com.mysql.jdbc.Driver";
	Connection con = null;
	Statement state = null;
 
	public Dao() {
		try {
			Class.forName(driverName) ;
			con = DriverManager.getConnection(hostDatabase, userName, password);
			state = con.createStatement();
			System.out.println("创建数据库连接成功!!");
			
			 
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}

	}

	/**
	 * 发送登录请求
	 * @param count
	 * @param password
	 * @return
	 */
	public User sendLogin(String count,String password) {
		User user=null;
		String sql="select * from user where id=? and password=?";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, count);
			pre.setString(2, password);
			ResultSet set=pre.executeQuery();
			while(set.next()) {
				user=new User();
				user.setId(set.getString("id"));
				user.setPassword(set.getString("password"));
				user.setName(set.getString("name"));
				user.setType(set.getString("type"));
				user.setClassName(set.getString("class"));
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
		return user;
		
	}
	 /**
	   * 增加课程
	 * @param subjectName 课程名称
	 * @param className   授课班级
	 * @param teacherId   教师编号 
	 */
	public void addSubject(String subjectName,String className,String teacherId) {
		String sql = "insert into subject values(?,?,?)";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, subjectName);
			pre.setString(2, className);
			pre.setString(3, teacherId);		
			pre.executeUpdate();
			//grade表中对应生成记录
			addClassGradeRecord(className,subjectName);
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	
	/**
	 * 删除课程
	 * @param con          连接实例
	 * @param subjectName  课程名称
	 */
	public void delSubject(String className,String subjectName) {
		String sql = "delete from subject where subject_name=? and class_name=?";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, subjectName);
			pre.setString(2, className);
			pre.executeUpdate();
			delClassGradeRecord(className,subjectName);
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	
	/**
	 * 修改课程信息,只提供修改课程名称和授课教师编号
	 * @param con          连接实例
	 * @param oSubName     原来的课程名
	 * @param nSubName     修改后的课程名
	 * @param className    修改后的班级名
	 * @param teacherId    修改后的教师编号
	 */
	public void updSubject(SubjectInfo old,SubjectInfo snew) {
		String sql = "update subject set "
				+ "subject_name=?,"
				+ "teacher_id=?"
				+ "where subject_name=?";
				
		try {
			
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, snew.getSubjectName());	
			pre.setString(2, snew.getTeacherId());
			pre.setString(3, old.getSubjectName());
			pre.executeUpdate();
				//只修改grade表中的课程名称即可
				String sql2 = "update grade set "
						+ "subject_name=?"
						+ "where subject_name=?";
				PreparedStatement pre2=con.prepareStatement(sql2);
				pre2.setString(1, snew.getSubjectName());	
				pre2.setString(2, old.getClassName());
				pre2.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	
/**
 * 
 * @return 所有的课程信息(包括授课班级和教师id)List
 */
	public List allSubInfo() {
		List<SubjectInfo> subs=new ArrayList<>();
		SubjectInfo sub=null;
		String sql="select * from subject ";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
				sub=new SubjectInfo();
				sub.setSubjectName(result.getString("subject_name"));
				sub.setClassName(result.getString("class_name"));
				sub.setTeacherId(result.getString("teacher_id"));
				
				subs.add(sub);
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
				return subs;
	}
/**
 * 添加学生用户
 * @param con
 * @param id
 * @param password
 * @param name
 * @param type
 * @param className
 */
	public void addStu(String id,String password,String name,String className) {
		String sql = "insert into user values(?,?,?,?,?)";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, id);
			pre.setString(2, password);
			pre.setString(3, name);		
			pre.setString(4, "student");		
			pre.setString(5, className);		
			pre.executeUpdate();
			//在grade表中生成对应科目记录
			addStuSubjectRecord(id,className);
			
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	/**
	 * 添加教师用户
	 * @param con
	 * @param id
	 * @param password
	 * @param name
	 * @param className
	 */
	public void addTeacher(String id,String password,String name) {
		String sql = "insert into user values(?,?,?,?,?)";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, id);
			pre.setString(2, password);
			pre.setString(3, name);		
			pre.setString(4, "teacher");
			pre.setString(5, null);
			pre.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	
	/**
	 * 添加班级
	 * @param className
	 */
	public void addClass(String className) {
		String sql = "insert into class values(?)";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, className);
			pre.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
/**
 * 添加学生用户时在grade表中生成对应科目记录
 * @param id
 * @param className
 */
	public void addStuSubjectRecord(String id, String className) {
		System.out.println("执行addStuSubjectRecord"+className);
		String sql="select subject_name from subject where class_name=? ";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, className);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
				String name=result.getString("subject_name");
				System.out.println("课程名"+name);
				String sql2 = "insert into grade(student_id,subject_name) values(?,?)";
				PreparedStatement pre2=con.prepareStatement(sql2);
				pre2.setString(1, id);
				pre2.setString(2, name);		
				pre2.executeUpdate();
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
			
	}
	/**
	 * 删除课程时在该课程对应的班级学生在grade表中删除对应的课程成绩的记录
	 * @param id
	 * @param className
	 * @param subjectName
	 */
	public void delClassGradeRecord( String className,String subjectName) {
		String sql="select id from user where class=? ";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, className);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
				String stuId=result.getString("id");
				String sql2 = "delete from grade where student_id=? and subject_name=?";
				PreparedStatement pre2=con.prepareStatement(sql2);
				pre2.setString(1, stuId);
				pre2.setString(2,subjectName);		
				pre2.executeUpdate();
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
			
	}
	/**
	 * 添加课程时在该课程对应的班级学生在grade表中生成对应的记录
	 * @param id
	 * @param className
	 * @param subjectName
	 */
	public void addClassGradeRecord( String className,String subjectName) {
		String sql="select id from user where class=? ";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, className);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
				String stuId=result.getString("id");
				String sql2 = "insert into grade(student_id,subject_name) values(?,?)";
				PreparedStatement pre2=con.prepareStatement(sql2);
				pre2.setString(1, stuId);
				pre2.setString(2,subjectName);		
				pre2.executeUpdate();
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
			
	}
	
	/**
	 * 删除id的学生账号与其对应的所有成绩
	 * @param con
	 * @param id
	 */
	public void delStu(String id) {
		String sql = "delete from user where id=?";//删除学生账号
		String sql2 = "delete from grade where student_id=?";//删除该学生账号对应的成绩
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, id);		
			pre.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} 
		try {
			PreparedStatement pre2=con.prepareStatement(sql2);
			pre2.setString(1, id);		
			pre2.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	
	/**
	 * 删除id的教师账号与其对应的授课课程
	 * @param con
	 * @param id
	 */
	public void delTeacher(String id) {
		String sql = "delete from user where id=?";//删除学生账号
		String sql2 = "delete from subject where teacher_id=?";//删除该学生账号对应的成绩
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, id);		
			pre.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} 
		try {
			PreparedStatement pre=con.prepareStatement(sql2);
			pre.setString(1, id);		
			pre.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	/**
	 * 删除班级及其所有相关的学生信息
	 * @param className
	 */
	public void delClass(String className) {
		String sql1 = "delete from grade where student_id in (select id from user where class=? ) ";
		
		String sql2 = "delete from subject where class_name=?";
		String sql3 = "delete from user where class=?";
		String sql4 = "delete from class where class_name=?";
		
		try {
			PreparedStatement pre=con.prepareStatement(sql1);
			pre.setString(1, className);		
			pre.executeUpdate();
			pre=con.prepareStatement(sql2);
			pre.setString(1, className);		
			pre.executeUpdate();
			pre=con.prepareStatement(sql3);
			pre.setString(1, className);		
			pre.executeUpdate();
			pre=con.prepareStatement(sql4);
			pre.setString(1, className);		
			pre.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} 
		
	}
	public void updClassName(String oldClass,String newClass) {
		String sql = "update user set class=? where class=? ";
		String sql1 = "update subject set class_name=? where class_name=? ";
		String sql2= "update class set class_name=? where class_name=? ";
					
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, newClass);	
			pre.setString(2, oldClass);
			pre.executeUpdate();
			pre=con.prepareStatement(sql1);
			pre.setString(1, newClass);	
			pre.setString(2, oldClass);
			pre.executeUpdate();
			pre=con.prepareStatement(sql2);
			pre.setString(1, newClass);	
			pre.setString(2, oldClass);
			pre.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	/**
	 * 修改用户名称
	 * @param con
	 * @param name 修改后的名字
	 * @param id
	 */
	public void updUserName(String name,String id) {
		String sql = "update user set "
				+ "name=?"
				+ "where id=?";		
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, name);	
			pre.setString(2, id);
			pre.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	/**
	 * 修改用户密码
	 * @param con
	 * @param password 要改成的新密码
	 * @param id       
	 */
	public void updUserPassword(String password,String id) {
		String sql = "update user set "
				+ "password=?"
				+ "where id=?";		
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, password);	
			pre.setString(2, id);
			pre.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	/**
	 * 
	 * @return 所有教师信息
	 */
	public List allTeacherInfo() {
		List<User> users=new ArrayList<>();
		User user=null;
		String sql="select * from user where type='teacher'";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
				user=new User();
				user.setId(result.getString("id"));
				user.setPassword(result.getString("password"));
				user.setName(result.getString("name"));
				user.setType(result.getString("type"));
				users.add(user);
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
				return users;
	}
	
	
	
	
	/**
	 * 
	 * @return 所有教师id
	 */
	public List allTeacherId() {
		List<String> teaIds=new ArrayList<>();
		String sql="select id from user where type='teacher'";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
			
				teaIds.add(result.getString("id"));
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
				return teaIds;
	}
	/**
	 * 
	 * @return 所有学生id
	 */
	public List allStuId() {
		List<String> stuIds=new ArrayList<>();
		String sql="select id from user where type='student'";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
			
				stuIds.add(result.getString("id"));
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
				return stuIds;
	}
	
	/**
	 * 
	 * @return 所有班级
	 */
	public List allClass() {
		List<String> classes=new ArrayList<>();
		String sql="select class_name from class";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
				
				classes.add(result.getString("class_name"));
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
				return classes;
	}
	/**
	 * 
	 * @return 所有课程
	 */
	public Set allSubject() {
		Set<String> subs=new HashSet<>();
		String sql="select subject_name from subject";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
			
				subs.add(result.getString("subject_name"));
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
				return subs;
	}
	
	/**
	 * 
	 * @return  所有学生信息
	 */
	public List allStuInfo() {
		List<User> users=new ArrayList<>();
		User user=null;
		String sql="select * from user where type='student'";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
				user=new User();
				user.setId(result.getString("id"));
				user.setPassword(result.getString("password"));
				user.setName(result.getString("name"));
				user.setType(result.getString("type"));
				user.setClassName(result.getString("class"));
				users.add(user);
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
				return users;
	}
	public User oneInfo(String stuId) {
		
		User user=null;
		String sql="select * from user where id=?";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, stuId);
			ResultSet result = pre.executeQuery();
			if(result.next()) {
				user=new User();
				user.setId(result.getString("id"));
				user.setPassword(result.getString("password"));
				user.setName(result.getString("name"));
				user.setType(result.getString("type"));
				user.setClassName(result.getString("class"));
				
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
				return user;
	}
	/**
	 * 查询某个所有课程学生成绩
	 * @param stuId
	 * @return 
	 */
	public List selfGrade(String stuId) {
		List<Grade> grades=new ArrayList<>();
		Grade self=null;
		String sql="select * from grade where student_id=?";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1,stuId );
			ResultSet result = pre.executeQuery();
			while(result.next()) {
				self=new Grade();
				self.setStudentId(result.getString("student_id"));
				self.setSubjectName(result.getString("subject_name"));
				self.setScore(result.getString("score"));
				grades.add(self);
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
				return grades;
	}
	
	
	
	
	/**
	 * 一个班级某门课程的成绩
	 * @param teaId
	 */
	public List setSubjectGrade(String className,String subjectName) {
		List<Grade> grades;//所有课程
		List<String> classStuIds=null;
		SubjectInfo sub=new SubjectInfo();	
				classStuIds=classStuId(className);
				grades=classGrade(classStuIds,subjectName);
				
		
		return grades;
			
	}
	/**
	 * 返回某位教师的所有课程
	 * @param teaId
	 * @return
	 */
	public List getSubjectClass(String teaId) {
		List<SubjectInfo> subs=new ArrayList<>();//所有课程

		
		SubjectInfo sub=new SubjectInfo();
		String sql="select * from subject where teacher_id=?";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, teaId);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
				sub=new SubjectInfo();
				sub.setTeacherId(result.getString("teacher_id"));
				sub.setSubjectName(result.getString("subject_name"));
				sub.setClassName(result.getString("class_name"));
				subs.add(sub);	
			}
			
				
			
			
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		return subs;
			
	}
	/**
	 * 
	 * @param stuIds
	 * @param subject
	 * @return 一个班级某门课程的成绩
	 */
	public List classGrade(List<String>stuIds,String subject) {
		List<Grade> grades=new ArrayList<>();
		Grade one=null;
		String sql="select * from grade where student_id=? and subject_name=?";
		try {
			for(int i=0;i<stuIds.size();i++) {
				PreparedStatement pre=con.prepareStatement(sql);
				pre.setString(1,stuIds.get(i) );
				pre.setString(2, subject);
				ResultSet result = pre.executeQuery();
				if(result.next()) {
					one=new Grade();
					one.setStudentId(result.getString("student_id"));
					one.setSubjectName(result.getString("subject_name"));
					one.setScore(result.getString("score"));
					grades.add(one);
				}
				
			}
			
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
				return grades;
	}
	/**
	 * 
	 * @return 某班学生id
	 */
	public List classStuId(String className) {
		List<String> stuIds=new ArrayList<>();
		String sql="select id from user where type='student' and class=?";
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, className);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
			
				stuIds.add(result.getString("id"));
//				System.out.println(stu.toString());
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
				return stuIds;
	}
	
	// 修改某学生的某门课程成绩。
	public void updStuGrade(String id,String subjectName,String score) {
		String sql = "update grade set "
				+ "score=?"
				+ "where student_id=? and "
				+ "subject_name=?";		
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1,score);	
			pre.setString(2, id);
			pre.setString(3, subjectName);
			pre.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}
	//某课程学生最高分
	public List<Grade> getSubjectMax(String subjectName,String className ) {
		List<Grade>grades=new ArrayList<>();
		Grade grade=null;
		String sql="SELECT * FROM grade WHERE score=(select Max(SCORE) FROM grade where subject_name=? and student_id in (SELECT id from `user` where class=?) ) and subject_name=?" ;
		try {
			PreparedStatement pre=con.prepareStatement(sql);
			pre.setString(1, subjectName);
			pre.setString(2, className);
			pre.setString(3, subjectName);
			ResultSet result = pre.executeQuery();
			while(result.next()) {
				grade=new Grade();
				grade.setScore(result.getString("score"));
				grade.setStudentId(result.getString("student_id"));
				grade.setSubjectName(result.getString("subject_name"));
				grades.add(grade);
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		return grades;
		}
	//某课程学生最低分
	
		public List<Grade> getSubjectMin(String subjectName,String className ) {
			
			List<Grade>grades=new ArrayList<>();
			Grade grade=null;
			String sql="SELECT * FROM grade WHERE score=(select MIN(SCORE) FROM grade where subject_name=? and student_id in (SELECT id from `user` where class=?))  and subject_name=?" ;
			try {
				PreparedStatement pre=con.prepareStatement(sql);
				pre.setString(1, subjectName);
				pre.setString(2, className);
				pre.setString(3, subjectName);
				ResultSet result = pre.executeQuery();
				while(result.next()) {
					grade=new Grade();
					grade.setScore(result.getString("score"));
					grade.setStudentId(result.getString("student_id"));
					grade.setSubjectName(result.getString("subject_name"));
					grades.add(grade);
				}
			}catch(SQLException e) {
				e.printStackTrace();
			}
			return grades;
			}
		
		//某课程某班不及格学生
		//某课程学生最低分
		
			public List getSubjectFail(String subjectName,String className ) {
				List<Grade>grades=new ArrayList<>();
				Grade grade=null;
				String sql="select * FROM grade where subject_name=? and student_id in (SELECT id from `user` where class=?) and score<'60'" ;
				try {
					PreparedStatement pre=con.prepareStatement(sql);
					pre.setString(1, subjectName);
					pre.setString(2, className);
					ResultSet result = pre.executeQuery();
					while(result.next()) {
						grade=new Grade();
						grade.setScore(result.getString("score"));
						grade.setStudentId(result.getString("student_id"));
						grade.setSubjectName(result.getString("subject_name"));
						grades.add(grade);
						
					}
				}catch(SQLException e) {
					e.printStackTrace();
				}
				return grades;
				}
}

数据库/成绩

package bean;

public class Grade {
	private String studentId;
	private String subjectName;
	private String score;
	public String getStudentId() {
		return studentId;
	}
	public void setStudentId(String studentId) {
		this.studentId = studentId;
	}
	public String getSubjectName() {
		return subjectName;
	}
	public void setSubjectName(String subjectName) {
		this.subjectName = subjectName;
	}
	public String getScore() {
		return score;
	}
	public void setScore(String score) {
		this.score = score;
	}
	public String[] getStringArray() {
		String[] array={studentId,subjectName,score};
		return array;
	}
}

数据库/课程

package bean;

public class SubjectInfo {
	private String subjectName;
	private String className;
	private String teacherId;
	public String getSubjectName() {
		return subjectName;
	}
	public void setSubjectName(String subjectName) {
		this.subjectName = subjectName;
	}
	public String getClassName() {
		return className;
	}
	public void setClassName(String className) {
		this.className = className;
	}
	public String getTeacherId() {
		return teacherId;
	}
	public void setTeacherId(String teacherId) {
		this.teacherId = teacherId;
	}
	public String[] getStringArray() {
		String[] array={subjectName,className,teacherId};
		return array;
	}
	public String getComboBoxString() {
		return subjectName+"----"+className+"----"+teacherId;
	}
}

数据库/用户

package bean;

public class User {
	private String id;
	private String password;
	private String name;
	private String type;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public String getClassName() {
		return className;
	}
	public void setClassName(String className) {
		this.className = className;
	}
	private String className;
	@Override
	public String toString() {
		return id+password+name+type+className;
	}
	public String[] getStringArrayTea() {
		String[] array={id,password,name};
		return array;
	}
	public String[] getStringArrayStu() {
		String[] array={id,password,name,className};
		return array;
	}
}

测试类

package text;
import sql.Dao;
import UI.denglu;

public class Test {
	public static void main(String[] args) {
		Dao jdbc=new Dao();
		new denglu(jdbc);
	}

}

MySql

Mysql
/*
Navicat MySQL Data Transfer

Source Server         : 本地数据库链接
Source Server Version : 50505
Source Host           : localhost:3306
Source Database       : java_system

Target Server Type    : MYSQL
Target Server Version : 50505
File Encoding         : 65001

Date: 2019-12-28 19:13:14
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for class
-- ----------------------------
DROP TABLE IF EXISTS  class ;
CREATE  TABLE  class (
  class_name  varchar(255) NOT NULL,
  PRIMARY KEY (class_name));
ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of class
-- ----------------------------
INSERT INTO  class VALUES ('12345');
INSERT INTO  class VALUES ('计算机17-1');
INSERT INTO  class VALUES ('计算机18-1');
INSERT INTO  class VALUES ('计算机18-2');
INSERT INTO  class VALUES ('计算机19-1');
INSERT INTO  class  VALUES ('计算机19-2');

-- ----------------------------
-- Table structure for grade
-- ----------------------------
DROP TABLE IF EXISTS  grade ;
CREATE TABLE  grade  (
   student_id  varchar(255) NOT NULL,
   subject_name varchar(255) DEFAULT NULL,
   score varchar(255) DEFAULT NULL);
ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of grade
-- ----------------------------
INSERT INTO  grade VALUES ('18034430101', '面向对象原理与Java实践', '80');
INSERT INTO  grade  VALUES ('18034430102', '面向对象原理与Java实践', '84');
INSERT INTO  grade  VALUES ('18034430103', '面向对象原理与Java实践', '86');
INSERT INTO  grade  VALUES ('18034430104', '面向对象原理与Java实践', '76');
INSERT INTO  grade  VALUES ('18034430105', '面向对象原理与Java实践', '56');
INSERT INTO  grade  VALUES ('18034430106', '面向对象原理与Java实践', '37');
INSERT INTO  grade  VALUES ('18034430107', '面向对象原理与Java实践', '85');
INSERT INTO  grade  VALUES ('18034430108', '面向对象原理与Java实践', '95');
INSERT INTO  grade  VALUES ('18034430109', '面向对象原理与Java实践', '37');
INSERT INTO  grade  VALUES ('18034430110', '面向对象原理与Java实践', '65');
INSERT INTO  grade  VALUES ('18034430111', '面向对象原理与Java实践', '61');
INSERT INTO  grade  VALUES ('18034430101', '高等数学', '85');
INSERT INTO  grade  VALUES ('18034430102', '高等数学', '39');
INSERT INTO  grade  VALUES ('18034430103', '高等数学', '84');
INSERT INTO  grade  VALUES ('18034430104', '高等数学', '86');
INSERT INTO  grade  VALUES ('18034430105', '高等数学', '76');
INSERT INTO  grade  VALUES ('18034430106', '高等数学', '56');
INSERT INTO  grade  VALUES ('18034430107', '高等数学', '37');
INSERT INTO  grade  VALUES ('18034430108', '高等数学', '85');
INSERT INTO  grade  VALUES ('18034430109', '高等数学', '95');
INSERT INTO  grade  VALUES ('18034430110', '高等数学', '71');
INSERT INTO  grade  VALUES ('18034430111', '高等数学', '90');
INSERT INTO  grade  VALUES ('18034430101', '计算机网络', '57');
INSERT INTO  grade  VALUES ('18034430102', '计算机网络', '54');
INSERT INTO  grade  VALUES ('18034430103', '计算机网络', '78');
INSERT INTO  grade  VALUES ('18034430104', '计算机网络', '71');
INSERT INTO  grade  VALUES ('18034430105', '计算机网络', '73');
INSERT INTO  grade  VALUES ('18034430106', '计算机网络', '70');
INSERT INTO  grade  VALUES ('18034430107', '计算机网络', '95');
INSERT INTO  grade  VALUES ('18034430108', '计算机网络', '98');
INSERT INTO  grade  VALUES ('18034430109', '计算机网络', '95');
INSERT INTO  grade  VALUES ('18034430110', '计算机网络', '71');
INSERT INTO  grade  VALUES ('18034430111', '计算机网络', '90');
INSERT INTO  grade  VALUES ('18034430112', '面向对象原理与Java实践', '57');
INSERT INTO  grade  VALUES ('18034430113', '面向对象原理与Java实践', '54');
INSERT INTO  grade  VALUES ('18034430114', '面向对象原理与Java实践', '87');
INSERT INTO  grade  VALUES ('18034430115', '面向对象原理与Java实践', '98');
INSERT INTO  grade  VALUES ('18034430116', '面向对象原理与Java实践', '60');
INSERT INTO  grade  VALUES ('18034430117', '面向对象原理与Java实践', '56');
INSERT INTO  grade  VALUES ('18034430118', '面向对象原理与Java实践', '66');
INSERT INTO  grade  VALUES ('18034430119', '面向对象原理与Java实践', '68');
INSERT INTO  grade  VALUES ('18034430120', '面向对象原理与Java实践', '76');
INSERT INTO  grade  VALUES ('18034430121', '面向对象原理与Java实践', '77');
INSERT INTO  grade  VALUES ('18034430122', '面向对象原理与Java实践', '88');
INSERT INTO  grade  VALUES ('18034430112', '高等数学', '99');
INSERT INTO  grade  VALUES ('18034430113', '高等数学', '57');
INSERT INTO  grade  VALUES ('18034430114', '高等数学', '54');
INSERT INTO  grade  VALUES ('18034430115', '高等数学', '78');
INSERT INTO  grade  VALUES ('18034430116', '高等数学', '71');
INSERT INTO  grade  VALUES ('18034430117', '高等数学', '73');
INSERT INTO  grade  VALUES ('18034430118', '高等数学', '70');
INSERT INTO  grade  VALUES ('18034430119', '高等数学', '95');
INSERT INTO  grade  VALUES ('18034430120', '高等数学', '98');
INSERT INTO  grade  VALUES ('18034430121', '高等数学', '95');
INSERT INTO  grade  VALUES ('18034430122', '高等数学', '71');
INSERT INTO  grade  VALUES ('18034430112', '计算机网络', '90');
INSERT INTO  grade  VALUES ('18034430113', '计算机网络', '57');
INSERT INTO  grade  VALUES ('18034430114', '计算机网络', '54');
INSERT INTO  grade  VALUES ('18034430115', '计算机网络', '87');
INSERT INTO  grade  VALUES ('18034430116', '计算机网络', '98');
INSERT INTO  grade  VALUES ('18034430117', '计算机网络', '60');
INSERT INTO  grade  VALUES ('18034430118', '计算机网络', '57');
INSERT INTO  grade  VALUES ('18034430119', '计算机网络', '54');
INSERT INTO  grade  VALUES ('18034430120', '计算机网络', '78');
INSERT INTO  grade  VALUES ('18034430121', '计算机网络', '71');
INSERT INTO  grade  VALUES ('18034430122', '计算机网络', '73');
INSERT INTO  grade  VALUES ('18034430123', '路由交换技术', '70');
INSERT INTO  grade  VALUES ('18034430124', '路由交换技术', '95');
INSERT INTO  grade  VALUES ('18034430125', '路由交换技术', '98');
INSERT INTO  grade  VALUES ('18034430126', '路由交换技术', '95');
INSERT INTO  grade  VALUES ('18034430127', '路由交换技术', '71');
INSERT INTO  grade  VALUES ('18034430128', '路由交换技术', '90');
INSERT INTO  grade  VALUES ('18034430129', '路由交换技术', '57');
INSERT INTO  grade  VALUES ('18034430130', '路由交换技术', '54');
INSERT INTO  grade  VALUES ('18034430131', '路由交换技术', '57');
INSERT INTO  grade  VALUES ('18034430132', '路由交换技术', '54');
INSERT INTO  grade  VALUES ('18034430133', '路由交换技术', '78');
INSERT INTO  grade  VALUES ('18034430123', '嵌入式', '71');
INSERT INTO  grade  VALUES ('18034430124', '嵌入式', '73');
INSERT INTO  grade  VALUES ('18034430125', '嵌入式', '70');
INSERT INTO  grade  VALUES ('18034430126', '嵌入式', '95');
INSERT INTO  grade  VALUES ('18034430127', '嵌入式', '98');
INSERT INTO  grade  VALUES ('18034430128', '嵌入式', '95');
INSERT INTO  grade  VALUES ('18034430129', '嵌入式', '71');
INSERT INTO  grade  VALUES ('18034430130', '嵌入式', '90');
INSERT INTO  grade  VALUES ('18034430131', '嵌入式', '57');
INSERT INTO  grade  VALUES ('18034430132', '嵌入式', '54');
INSERT INTO  grade  VALUES ('18034430133', '嵌入式', '87');
INSERT INTO  grade  VALUES ('18034430134', '大学英语', '98');
INSERT INTO  grade  VALUES ('18034430135', '大学英语', '60');
INSERT INTO  grade  VALUES ('18034430136', '大学英语', '56');
INSERT INTO  grade  VALUES ('18034430137', '大学英语', '57');
INSERT INTO  grade  VALUES ('18034430138', '大学英语', '54');
INSERT INTO  grade  VALUES ('18034430139', '大学英语', '78');
INSERT INTO  grade  VALUES ('18034430140', '大学英语', '71');
INSERT INTO  grade  VALUES ('18034430141', '大学英语', '73');
INSERT INTO  grade  VALUES ('18034430142', '大学英语', '70');
INSERT INTO  grade  VALUES ('18034430143', '大学英语', '95');
INSERT INTO  grade  VALUES ('18034430144', '大学英语', '98');
INSERT INTO  grade  VALUES ('18034430134', '大学英语视听说', '95');
INSERT INTO  grade  VALUES ('18034430135', '大学英语视听说', '71');
INSERT INTO  grade  VALUES ('18034430136', '大学英语视听说', '90');
INSERT INTO  grade  VALUES ('18034430137', '大学英语视听说', '57');
INSERT INTO  grade  VALUES ('18034430138', '大学英语视听说', '54');
INSERT INTO  grade  VALUES ('18034430139', '大学英语视听说', '87');
INSERT INTO  grade  VALUES ('18034430140', '大学英语视听说', '98');
INSERT INTO  grade  VALUES ('18034430141', '大学英语视听说', '60');
INSERT INTO  grade  VALUES ('18034430142', '大学英语视听说', '56');
INSERT INTO  grade  VALUES ('18034430143', '大学英语视听说', '66');
INSERT INTO  grade  VALUES ('18034430144', '大学英语视听说', '57');
INSERT INTO  grade  VALUES ('18034430145', '大学英语', '54');
INSERT INTO  grade  VALUES ('18034430146', '大学英语', '78');
INSERT INTO  grade  VALUES ('18034430147', '大学英语', '71');
INSERT INTO  grade  VALUES ('18034430148', '大学英语', '73');
INSERT INTO  grade  VALUES ('18034430149', '大学英语', '70');
INSERT INTO  grade  VALUES ('18034430150', '大学英语', '95');
INSERT INTO  grade  VALUES ('18034430151', '大学英语', '98');
INSERT INTO  grade  VALUES ('18034430152', '大学英语', '95');
INSERT INTO  grade  VALUES ('18034430153', '大学英语', '71');
INSERT INTO  grade  VALUES ('18034430154', '大学英语', '90');
INSERT INTO  grade  VALUES ('18034430155', '大学英语', '57');
INSERT INTO  grade  VALUES ('18034430145', '大学英语视听说', '54');
INSERT INTO  grade  VALUES ('18034430146', '大学英语视听说', '87');
INSERT INTO  grade  VALUES ('18034430147', '大学英语视听说', '98');
INSERT INTO  grade  VALUES ('18034430148', '大学英语视听说', '60');
INSERT INTO  grade  VALUES ('18034430149', '大学英语视听说', '56');
INSERT INTO  grade  VALUES ('18034430150', '大学英语视听说', '66');
INSERT INTO  grade VALUES ('18034430151', '大学英语视听说', '68');
INSERT INTO  grade  VALUES ('18034430152', '大学英语视听说', '93');
INSERT INTO  grade  VALUES ('18034430153', '大学英语视听说', '98');
INSERT INTO  grade  VALUES ('18034430154', '大学英语视听说', '80');
INSERT INTO  grade VALUES ('18034430155', '大学英语视听说', '70');

-- ----------------------------
-- Table structure for subject
-- ----------------------------
DROP TABLE IF EXISTS  subject ;
CREATE TABLE  subject  (
   subject_name  varchar(255) DEFAULT NULL,
   class_name  varchar(255) DEFAULT NULL,
   teacher_id varchar(255) DEFAULT NULL);
 ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of subject
-- ----------- ----------------
INSERT INTO  subject  VALUES ('面向对象原理与Java实践', '计算机18-1', '10000');
INSERT INTO  subject  VALUES ('高等数学', '计算机18-1', '10001');
INSERT INTO  subject  VALUES ('大学英语', '计算机19-1', '10002');
INSERT INTO  subject  VALUES ('路由交换技术', '计算机17-1', '10003');
INSERT INTO  subject  VALUES ('计算机网络', '计算机18-1', '10004');
INSERT INTO  subject  VALUES ('大学英语视听说', '计算机19-1', '10005');
INSERT INTO  subject  VALUES ('大学英语视听说', '计算机19-2', '10005');
INSERT INTO  subject  VALUES ('计算机网络', '计算机18-2', '10004');
INSERT INTO  subject  VALUES ('大学英语', '计算机19-2', '10002');
INSERT INTO  subject  VALUES ('面向对象原理与Java实践', '计算机18-2', '10000');
INSERT INTO  subject  VALUES ('嵌入式', '计算机17-1', '10006');
INSERT INTO  subject  VALUES ('高等数学', '计算机18-2', '10001');
INSERT INTO  subject  VALUES ('测试', '计算机18-1', '10000');
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS  user ;
CREATE TABLE  user  (
   id  varchar(255) NOT NULL,
   password  varchar(255) DEFAULT NULL,
   name varchar(255) DEFAULT NULL,
   type  varchar(255) DEFAULT NULL,
   class varchar(255) DEFAULT NULL,
  PRIMARY KEY ( id ));

-- ----------------------------
-- Records of user
-- ---------------------------
INSERT INTO  user VALUES ('10000', '1', 'java老师', 'teacher', '');
INSERT INTO  user  VALUES ('10001', '1', '高数老师', 'teacher', null);
INSERT INTO  user  VALUES ('10002', '1', '大学英语老师', 'teacher', null);
INSERT INTO  user  VALUES ('10003', '1', '路由交换老师', 'teacher', null);
INSERT INTO  user  VALUES ('10004', '1', '计算机网络老师', 'teacher', null);
INSERT INTO  user  VALUES ('10005', '1', '视听说老师', 'teacher', null);
INSERT INTO  user  VALUES ('10006', '1', '嵌入式老师', 'teacher', null);
INSERT INTO  user  VALUES ('18034430101', '1', '学生1', 'student', '计算机18-1');
INSERT INTO  user  VALUES ('18034430102', '1', '学生2', 'student', '计算机18-1');
INSERT INTO  user  VALUES ('18034430103', '1', '学生3', 'student', '计算机18-1');
INSERT INTO  user  VALUES ('18034430104', '1', '学生4', 'student', '计算机18-1');
INSERT INTO  user  VALUES ('18034430105', '1', '学生5', 'student', '计算机18-1');
INSERT INTO  user  VALUES ('18034430106', '1', '学生6', 'student', '计算机18-1');
INSERT INTO  user  VALUES ('18034430107', '1', '学生7', 'student', '计算机18-1');
INSERT INTO  user  VALUES ('18034430108', '1', '学生8', 'student', '计算机18-1');
INSERT INTO  user  VALUES ('18034430109', '1', '学生9', 'student', '计算机18-1');
INSERT INTO  user  VALUES ('18034430110', '1', '学生10', 'student', '计算机18-1');
INSERT INTO  user  VALUES ('18034430111', '1', '学生11', 'student', '计算机18-1');
INSERT INTO  user  VALUES ('18034430112', '1', '学生12', 'student', '计算机18-2');
INSERT INTO  user  VALUES ('18034430113', '1', '学生13', 'student', '计算机18-2');
INSERT INTO  user  VALUES ('18034430114', '1', '学生14', 'student', '计算机18-2');
INSERT INTO  user  VALUES ('18034430115', '1', '学生15', 'student', '计算机18-2');
INSERT INTO  user  VALUES ('18034430116', '1', '学生16', 'student', '计算机18-2');
INSERT INTO  user  VALUES ('18034430117', '1', '学生17', 'student', '计算机18-2');
INSERT INTO  user  VALUES ('18034430118', '1', '学生18', 'student', '计算机18-2');
INSERT INTO  user  VALUES ('18034430119', '1', '学生19', 'student', '计算机18-2');
INSERT INTO  user  VALUES ('18034430120', '1', '学生20', 'student', '计算机18-2');
INSERT INTO  user  VALUES ('18034430121', '1', '学生21', 'student', '计算机18-2');
INSERT INTO  user  VALUES ('18034430122', '1', '学生22', 'student', '计算机18-2');
INSERT INTO  user  VALUES ('18034430123', '1', '学生23', 'student', '计算机17-1');
INSERT INTO  user  VALUES ('18034430124', '1', '学生24', 'student', '计算机17-1');
INSERT INTO  user  VALUES ('18034430125', '1', '学生25', 'student', '计算机17-1');
INSERT INTO  user  VALUES ('18034430126', '1', '学生26', 'student', '计算机17-1');
INSERT INTO  user  VALUES ('18034430127', '1', '学生27', 'student', '计算机17-1');
INSERT INTO  user  VALUES ('18034430128', '1', '学生28', 'student', '计算机17-1');
INSERT INTO  user  VALUES ('18034430129', '1', '学生29', 'student', '计算机17-1');
INSERT INTO  user  VALUES ('18034430130', '1', '学生30', 'student', '计算机17-1');
INSERT INTO  user  VALUES ('18034430131', '1', '学生31', 'student', '计算机17-1');
INSERT INTO  user  VALUES ('18034430132', '1', '学生32', 'student', '计算机17-1');
INSERT INTO  user  VALUES ('18034430133', '1', '学生33', 'student', '计算机17-1');
INSERT INTO  user  VALUES ('18034430134', '1', '学生34', 'student', '计算机19-1');
INSERT INTO  user  VALUES ('18034430135', '1', '学生35', 'student', '计算机19-1');
INSERT INTO  user  VALUES ('18034430136', '1', '学生36', 'student', '计算机19-1');
INSERT INTO  user  VALUES ('18034430137', '1', '学生37', 'student', '计算机19-1');
INSERT INTO  user  VALUES ('18034430138', '1', '学生38', 'student', '计算机19-1');
INSERT INTO  user  VALUES ('18034430139', '1', '学生39', 'student', '计算机19-1');
INSERT INTO  user  VALUES ('18034430140', '1', '学生40', 'student', '计算机19-1');
INSERT INTO  user  VALUES ('18034430141', '1', '学生41', 'student', '计算机19-1');
INSERT INTO  user  VALUES ('18034430142', '1', '学生42', 'student', '计算机19-1');
INSERT INTO  user  VALUES ('18034430143', '1', '学生43', 'student', '计算机19-1');
INSERT INTO  user  VALUES ('18034430144', '1', '学生44', 'student', '计算机19-1');
INSERT INTO  user  VALUES ('18034430145', '1', '学生45', 'student', '计算机19-2');
INSERT INTO  user  VALUES ('18034430146', '1', '学生46', 'student', '计算机19-2');
INSERT INTO  user  VALUES ('18034430147', '1', '学生47', 'student', '计算机19-2');
INSERT INTO  user  VALUES ('18034430148', '1', '学生48', 'student', '计算机19-2');
INSERT INTO  user  VALUES ('18034430149', '1', '学生49', 'student', '计算机19-2');
INSERT INTO  user  VALUES ('18034430150', '1', '学生50', 'student', '计算机19-2');
INSERT INTO  user  VALUES ('18034430151', '1', '学生51', 'student', '计算机19-2');
INSERT INTO  user  VALUES ('18034430152', '1', '学生52', 'student', '计算机19-2');
INSERT INTO  user  VALUES ('180344530153', '1', '学生53', 'student', '计算机19-2');
INSERT INTO  user  VALUES ('18034430154', '1', '学生54', 'student', '计算机19-2');
INSERT INTO  user  VALUES ('18034430155', '1', '学生55', 'student', '计算机19-2');
INSERT INTO  user  VALUES ('root', '1', '超级管理员', 'admin', null);

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

猜你喜欢

转载自blog.csdn.net/weixin_44908159/article/details/106756615