app开发定制公司数据库大作业-学生宿舍管理系统

简介

app开发定制公司此程序是本人大二时期app开发定制公司的数据库大作业,app开发定制公司初学数据库后所编写的一个程序,app开发定制公司是一个学生宿舍管理系统,app开发定制公司可实现学生宿舍的管理。

app开发定制公司本程序使用Java编写,使用eclipse进行开发,app开发定制公司数据库使用MySQLapp开发定制公司数据库搭配Navicatapp开发定制公司进行数据管理,程序使用JDBCapp开发定制公司技术进行数据库连接,使用Java Swingapp开发定制公司开发图形化界面,app开发定制公司整个系统界面美观、功能丰富。app开发定制公司本系统点击首页的“更换外观”app开发定制公司按钮可切换不同风格的外观,app开发定制公司系统分为三个模式,学生模式、app开发定制公司宿管模式和系统管理模式,app开发定制公司分别面向学生、宿管和系统管理员,不同的模式有不同的功能,详细请见下方介绍。

本系统功能完善且丰富(可以将系统内的各种信息导出为excel文件哦),程序检错能力强,界面简洁好看(每个组件都经过细心调整),但当时偷懒,所以有些代码并没有经过优化,可能有些繁杂,且为了界面美观,有大部分代码都在调整界面组件,请勿介意,读者可自行取其精华去其糟粕。

程序源代码及程序设计说明书可在下方GitHub链接处进行下载,供各位需要的人学习参考。

GitHub链接:

目录



数据设计

本系统的数据库共有8张表格,数据库表格设计及ER图如下所示,详细数据设计请至开头处GitHub链接处下载数据设计表或程序设计说明书,进行查看。



程序流程

程序大概流程如下图:


功能展示

本程序功能及细节颇多,在此仅展示部分功能,若想了解完整功能及细节,请至文章开头处GitHub链接下载程序,进行体验。

欢迎界面-更换外观

打开本程序,首先来到欢迎界面,在此可选择学生登录和管理员登录,点击右上角“更换外观”可更改系统整体外观,共有5种不同风格的外观。



登录

在欢迎界面点击“学生登录”,然后输入学生账号密码,登录成功系统将进入学生模式;点击“管理员登录”,然后输入宿管账号密码,登录成功系统将进入宿管模式,若账号密码均输入“admin”,系统将进入系统管理模式。




学生模式

学生模式面向的群体是学生,学生输入自己的账号(即学号)和密码后,即可进入学生模式的菜单界面,在此可选择相应功能,学生模式的功能较少,功能如下。



个人信息

“个人信息”功能,可查看自己的个人详细信息。



宿舍报修

“宿舍报修”功能,可在此界面进行宿舍报修,提交的信息将被保存到数据库中,并在宿管模式和系统管理模式的相应界面展示。



建议与反馈

“建议与反馈”功能,可在此界面进行建议与反馈,提交的信息将被保存到数据库中,并在宿管模式和系统管理模式的相应界面展示。



修改密码

“修改密码”功能,可在此界面修改自己的密码,需输入旧密码和两次新密码,输入错误会有相应的提示。



系统管理模式

系统管理模式面向的群体是系统管理员,管理员输入指定的账号和密码(均为admin)后,即可进入系统管理模式的菜单界面,在此可选择相应功能,系统管理模式的功能最多最全,可对学生、宿管、宿舍等进行全面管理,具体功能如下。



管理功能

系统管理模式下可对宿舍楼、宿舍、宿管、学生、住宿信息进行全面管理,包括增删改查等,下面以“学生管理”为例展示管理功能。

点击“学生管理”,来到学生管理界面,在此可看到所有学生的简易信息。

点击某个学生行的“查看”按钮,可查看该学生的详细信息,在此可进行学生信息的修改和删除。

如点击“修改学生信息”按钮,则进行学生信息的修改操作,修改完成点击“保存”,信息会在数据库同步更新。

在“学生管理”界面点击上方的“添加”按钮,可向系统中添加学生,输入完整的学生信息并确认添加后,信息将被保存至数据库,成功添加学生。

在“学生管理”界面点击上方的“导出”按钮,可将学生信息导出成excel表格文件。

在“学生管理”界面点击顶部的“查询”按钮,将来到学生信息的查询界面,输入指定条件并点击“查询”,系统将查询出符合条件的学生,如下查询所有2019级的学生。

以上展示了“学生管理”功能,其他管理功能与此类似。

寝室分配

“寝室分配”功能,可自动为学生分配寝室,代替手动分配,以节省人力,若想精确分配、按意愿分配寝室,则需手动在“住宿管理”界面进行分配。



出入登记

“出入登记”功能,可登记学生出入宿舍楼的记录,可添加、删除、导出、查询出入记录,点击上方“登记”按钮,添加出入记录,输入相应信息,其中输入学号后将自动显示相应姓名,点击界面右侧的“获取当前时间”,可自动获取当前时间并自动输入。




宿舍报修

“宿舍报修”功能,在此界面可查看到所有学生提交的宿舍报修信息,点击“查看”按钮,可查看详细的报修信息,报修详细界面中可处理报修、删除报修,宿舍报修信息亦可导出和查询。




建议与反馈

“建议与反馈”功能,在此界面可查看到所有学生提交的建议与反馈,点击“查看”按钮,可进入详细界面查看详细内容,也可在此进行删除,建议与反馈亦可导出。




删库跑路

“删库跑路”功能,此功能需输入密码“ESCAPE”,然后点击“确认删库跑路”按钮,即可删除本系统的数据库进行跑路 ,此功能成功执行后,将自动退出程序,系统将无法继续使用。



宿管模式

宿管模式面向的群体是宿管,宿管输入自己的账号(即编号)和密码后,即可进入宿管模式的菜单界面,在此可选择相应功能,宿管模式的功能与系统管理模式类似,不同之处在于,宿管模式下宿管仅能对自己所管理的宿舍楼进行操作,由于两者功能类似,故在此不再展示宿管模式的功能,读者可下载程序自行进行体验。



代码展示

本程序代码巨多且有详细注释,在此仅展示部分重要代码,完整代码请至文章开头处GitHub链接下载程序,进行了解。

为了系统界面的美观强迫症患者 ,所以本程序的很多代码都在调整界面组件,请别介意。

Info类

信息类,定义各种对象的类,如:宿舍、学生、宿管等。

import java.util.*;import java.text.*;//各种信息类public class Info {	}class Floor { //宿舍楼	String floor_num; //楼号	int layer_amount; //层数	int room_amount; //房间数	String category; //类别	String sex; //居住时间	String admin_num; //宿管编号	public Floor(String floor_num, String layer_amount, String room_amount, String category, String sex, String admin_num) {		this.floor_num=floor_num;		this.layer_amount=Integer.parseInt(layer_amount);		this.room_amount=Integer.parseInt(room_amount);		this.category=category;		this.sex=sex;		this.admin_num=admin_num;	}}class Dormitory { //宿舍	String floor_num; //楼号	int layer; //楼层	int room_num; //宿舍号	int bed_total; //总床位数	int bed_surplus; //剩余床位数	int price; //单价	public Dormitory(String floor_num, String layer, String room_num, String bed_total, String bed_surplus, String price) {		this.floor_num=floor_num;		this.layer=Integer.parseInt(layer);		this.room_num=Integer.parseInt(room_num);		this.bed_total=Integer.parseInt(bed_total);		this.bed_surplus=Integer.parseInt(bed_surplus);		this.price=Integer.parseInt(price);	}}class Admin { //宿管	String admin_num; //编号	String password; //密码	String name; //姓名	String sex; //性别	String phone; //手机	public Admin(String admin_num, String password, String name, String sex, String phone) {		this.admin_num=admin_num;		this.password=password;		this.name=name;		this.sex=sex;		this.phone=phone;	}}class Student { //学生	String stu_num; //学号	String password; //密码	String name; //姓名	String sex; //性别	int birth; //出生日期	int grade; //年级	String faculty; //院系	String clas; //班级	String phone; //手机号	String yes_no; //是否入住	public Student(String stu_num, String password, String name, String sex, String birth, String grade, String faculty, String clas, String phone, String yes_no) {		this.stu_num=stu_num;		this.password=password;		this.name=name;		this.sex=sex;		this.birth=Integer.parseInt(birth);		this.grade=Integer.parseInt(grade);		this.faculty=faculty;		this.clas=clas;		this.phone=phone;		this.yes_no=yes_no;	}}class Stay { //住宿	String stu_num; //学号	String name; //姓名	String floor_num; //楼号	int layer; //楼层	int room_num; //宿舍号	Date time; //入住时间	public Stay(String stu_num, String name, String floor_num, String layer, String room_num, String time) {		SimpleDateFormat timeFormat=new SimpleDateFormat("yyyy-MM-dd");		this.stu_num=stu_num;		this.name=name;		this.floor_num=floor_num;		this.layer=Integer.parseInt(layer);		this.room_num=Integer.parseInt(room_num);		try {			this.time=timeFormat.parse(time);		} catch (ParseException e) {			e.printStackTrace();		}	}}class InOut { //出入	String stu_num; //学号	String name; //姓名	String floor_num; //楼号	String category; //类别	Date time; //时间	public InOut(String stu_num, String name, String floor_num, String category, String time) {		SimpleDateFormat timeFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");		this.stu_num=stu_num;		this.name=name;		this.floor_num=floor_num;		this.category=category;		try {			this.time=timeFormat.parse(time);		} catch (ParseException e) {			e.printStackTrace();		}	}}class Repair { //报修	String stu_num; //学号	String name; //姓名	String floor_num; //楼号	int layer; //楼层	int room_num; //宿舍号	String info; //报修详细	String yes_no; //是否处理	public Repair(String stu_num, String name, String floor_num, String layer, String room_num, String info, String yes_no) {		this.stu_num=stu_num;		this.name=name;		this.floor_num=floor_num;		this.layer=Integer.parseInt(layer);		this.room_num=Integer.parseInt(room_num);		this.info=info;		this.yes_no=yes_no;	}}class Advice { //建议与反馈	String stu_num; //学号	String name; //姓名	String info; //详细信息	public Advice(String stu_num, String name, String info) {		this.stu_num=stu_num;		this.name=name;		this.info=info;	}}class Stu { //学生,用于分配宿舍的信息	String stu_num; //学号	int grade; //年级	String faculty; //院系	String clas; //班级	public Stu(String stu_num, String grade, String faculty, String clas) {		this.stu_num=stu_num;		this.grade=Integer.parseInt(grade);		this.faculty=faculty;		this.clas=clas;	}}class Dor { //宿舍,用于分配宿舍的信息	String floor_num; //楼号	int layer; //楼层	int room_num; //宿舍号	int bed_surplus; //剩余床位数	public Dor(String floor_num, String layer, String room_num, String bed_surplus) {		this.floor_num=floor_num;		this.layer=Integer.parseInt(layer);		this.room_num=Integer.parseInt(room_num);		this.bed_surplus=Integer.parseInt(bed_surplus);	}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179

HomePage类

主页类,main方法包含在此类中,是程序的入口,定义了系统的欢迎界面、登录界面和更换外观功能,以及JDBC操作等。

import java.sql.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class HomePage { //主页类	static JFrame mainJFrame=new JFrame("学生宿舍管理系统");	static Container con=mainJFrame.getContentPane();	static boolean flag; //是否为管理员	static int appearance=0; //当前外观	static JLabel lb_appearance=new JLabel("<html>当前外观:<br>默认</html>"); //当前外观	static Connection connection=null;		public static void main(String[] args) {		mainJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		mainJFrame.setResizable(false);		con.setLayout(null);		welcomePage();	}		public static void welcomePage() { //欢迎界面		mainJFrame.setSize(550,400);		mainJFrame.setLocationRelativeTo(null);		JPanel pn=new JPanel();		pn.setSize(550,400);		pn.setLayout(null);		JLabel lb1=new JLabel("欢迎使用"),lb2=new JLabel("学生宿舍管理系统");		JButton bt1=new JButton("学生登录"),bt2=new JButton("管理员登录"),bt_changeAppearance=new JButton("更换外观",new ImageIcon("image/更换外观.png"));		lb1.setFont(new Font("黑体",0,35));		lb1.setBounds(200,30,150,100);		lb2.setFont(new Font("黑体",0,35));		lb2.setBounds(128,100,300,80);		bt1.setFont(new Font("黑体",0,22));		bt1.setBounds(70,210,170,70);		bt1.setCursor(new Cursor(Cursor.HAND_CURSOR));		lb_appearance.setFont(new Font("黑体",0,17));		lb_appearance.setBounds(5,5,150,40);		bt2.setFont(new Font("黑体",0,22));		bt2.setBounds(310,210,170,70);		bt2.setCursor(new Cursor(Cursor.HAND_CURSOR));		bt_changeAppearance.setFont(new Font("黑体",0,17));		bt_changeAppearance.setBounds(420,10,130,25);		bt_changeAppearance.setContentAreaFilled(false);		bt_changeAppearance.setBorderPainted(false);		bt_changeAppearance.setCursor(new Cursor(Cursor.HAND_CURSOR));		pn.add(lb1);		pn.add(lb2);		pn.add(lb_appearance);		pn.add(bt1);		pn.add(bt2);		pn.add(bt_changeAppearance);		con.add(pn);		mainJFrame.setVisible(true);		bt1.addActionListener(new ActionListener() { //进入学生登录界面			public void actionPerformed(ActionEvent e) {				flag=false;				con.remove(pn);				mainJFrame.repaint();				loginPage();				mainJFrame.validate();			}		});		bt2.addActionListener(new ActionListener() { //进入管理员登录界面			public void actionPerformed(ActionEvent e) {				flag=true;				con.remove(pn);				mainJFrame.repaint();				loginPage();				mainJFrame.validate();			}		});		bt_changeAppearance.addMouseListener(new MouseListener() { //更换整体界面外观			public void mouseEntered(MouseEvent arg0) {				bt_changeAppearance.setForeground(Color.blue);			}			public void mouseExited(MouseEvent arg0) {				bt_changeAppearance.setForeground(null);			}			public void mouseClicked(MouseEvent arg0) {				try {					appearance++;					String lookAndFeel=null;					switch(appearance) {					case 1: //Windows风格						lookAndFeel="com.sun.java.swing.plaf.windows.WindowsLookAndFeel";						lb_appearance.setText("<html>当前外观:<br>Windows</html>");						break;					case 2: //Nimbus风格						lookAndFeel="com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel";						lb_appearance.setText("<html>当前外观:<br>Nimbus</html>");						break;					case 3: //Windows Classic风格						lookAndFeel="com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel";						lb_appearance.setText("<html>当前外观:<br>Windows Classic</html>");						break;					case 4://Motif风格						lookAndFeel="com.sun.java.swing.plaf.motif.MotifLookAndFeel";						lb_appearance.setText("<html>当前外观:<br>Motif</html>");						break; 					case 5: //默认风格						lookAndFeel="javax.swing.plaf.metal.MetalLookAndFeel";						lb_appearance.setText("<html>当前外观:<br>默认</html>");						break;					}					UIManager.setLookAndFeel(lookAndFeel);					SwingUtilities.updateComponentTreeUI(mainJFrame);					if(appearance==5)						appearance=0;		        } catch(Exception ex) {		        	System.out.println(ex);		        }			}			public void mousePressed(MouseEvent arg0){}			public void mouseReleased(MouseEvent arg0){}		});	}		public static void loginPage() { //登录界面		mainJFrame.setSize(550,400);		mainJFrame.setLocationRelativeTo(null);		JPanel pn=new JPanel();		pn.setSize(550,400);		pn.setLayout(null);		JButton bt1=new JButton("返回",new ImageIcon("image/返回.png")),bt2=new JButton("登  录");		JTextField tf=new JTextField();		JPasswordField pf=new JPasswordField();		JLabel lb1,lb2=new JLabel("账号:"),lb3=new JLabel("密码:");		if(flag) {			lb1=new JLabel("管理员登录");			lb1.setFont(new Font("黑体",0,35));			lb1.setBounds(185,30,180,100);		}		else {			lb1=new JLabel("学生登录");			lb1.setFont(new Font("黑体",0,35));			lb1.setBounds(200,30,150,100);		}		lb2.setFont(new Font("黑体",0,25));		lb2.setBounds(100,100,80,100);		lb3.setFont(new Font("黑体",0,25));		lb3.setBounds(100,150,80,100);		tf.setFont(new Font("黑体",0,25));		tf.setBounds(170,130,230,40);		pf.setFont(new Font(null,0,25));		pf.setBounds(170,180,230,40);		bt2.setFont(new Font("黑体",0,25));		bt2.setBounds(200,250,150,60);		bt2.setCursor(new Cursor(Cursor.HAND_CURSOR));		bt1.setFont(new Font("黑体",0,17));		bt1.setBounds(1,10,92,25);		bt1.setContentAreaFilled(false);		bt1.setBorderPainted(false);		bt1.setCursor(new Cursor(Cursor.HAND_CURSOR));		pn.add(lb1);		pn.add(lb2);		pn.add(lb3);		pn.add(tf);		pn.add(pf);		pn.add(bt1);		pn.add(bt2);		con.add(pn);		bt1.addMouseListener(new MouseListener() { //返回到欢迎界面			public void mouseEntered(MouseEvent arg0) {				bt1.setForeground(Color.blue);			}			public void mouseExited(MouseEvent arg0) {				bt1.setForeground(null);			}			public void mouseClicked(MouseEvent arg0) {				con.remove(pn);				mainJFrame.repaint();				welcomePage();				mainJFrame.validate();			}			public void mousePressed(MouseEvent arg0){}			public void mouseReleased(MouseEvent arg0){}		});		bt2.addActionListener(new ActionListener() { //登录,连接数据库获取账号密码并检验,正确则进入功能界面			public void actionPerformed(ActionEvent e) {				databaseConnection(); //连接MySQL数据库				if(flag) //进行管理员账号密码检验					new Login().adminLogin(tf.getText(),String.valueOf(pf.getPassword()));				else //进行学生账号密码检验					new Login().studentLogin(tf.getText(),String.valueOf(pf.getPassword()));;			}		});	}		public static void databaseConnection() { //连接MySQL数据库		final String JDBC_DRIVER="com.mysql.cj.jdbc.Driver"; //JDBC驱动名	    final String DB_URL="jdbc:mysql://localhost:3306/dormitory_system?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"; //数据库URL	    final String USER="root"; //数据库用户名	    final String PASS="root"; //数据库密码	    try {	    	Class.forName(JDBC_DRIVER); //加载JDBC驱动	    	connection=DriverManager.getConnection(DB_URL,USER,PASS); //连接数据库	    }catch(SQLException e){            e.printStackTrace();        }catch(Exception e){            e.printStackTrace();        }	}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203

Login类

登录类,用于进行登录验证,包括学生、宿管、系统管理员的登录。

import java.sql.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Login { //登录类	JLabel lb_tips=new JLabel(); //提示窗口的内容		public void adminLogin(String account,String password) { //管理员登录(包括系统管理员和宿管)		boolean flag=false; //是否查找到相应账号密码		if(account.equals("admin") && password.equals("admin")) { //检验是否为系统管理员账号密码,若是,则进入系统管理员功能界面			lb_tips.setText("登录成功!");			loginTips();			new SysAdminFunction();			HomePage.mainJFrame.dispose();		}		else { //若不是,则进行宿管账号密码检测			String admin_num=null, pass; //宿管账号密码			try {				String sql="SELECT admin_num, password FROM admin"; //SQL语句				PreparedStatement ps; //创建PreparedStatement类对象ps,用来执行SQL语句				ps=HomePage.connection.prepareStatement(sql); //把操作数据库返回的结果保存到ps中	            ResultSet rs=ps.executeQuery(sql); //ResultSet类,用来存放获取的结果集	            while(rs.next()){ //遍历结果集	            	admin_num=rs.getString("admin_num");	                pass=rs.getString("password");	                if(account.equals(admin_num) && password.equals(pass)) {	                	flag=true;	                	break;	                }	            }	            rs.close();	            ps.close();			}catch(SQLException e){	            e.printStackTrace();	        }			if(flag) { //若宿管账号密码正确,则进入宿管功能界面				lb_tips.setText("登录成功!");				loginTips();				new DorAdminFunction(admin_num);				HomePage.mainJFrame.dispose();			}			else { //若账号密码错误,则进行提示				lb_tips.setText("账号或密码错误!");				loginTips();				try {					HomePage.connection.close(); //关闭数据库连接				} catch (SQLException e) {					e.printStackTrace();				}			}		}	}		public void studentLogin(String account,String password) { //学生登录		boolean flag=false; //是否查找到相应账号密码		String stu_num=null, pass; //学生账号密码		try {			String sql="SELECT stu_num, password FROM student"; //SQL语句			PreparedStatement ps; //创建PreparedStatement类对象ps,用来执行SQL语句			ps=HomePage.connection.prepareStatement(sql); //把操作数据库返回的结果保存到ps中            ResultSet rs=ps.executeQuery(sql); //ResultSet类,用来存放获取的结果集            while(rs.next()) { //遍历结果集            	stu_num=rs.getString("stu_num");                pass=rs.getString("password");                if(account.equals(stu_num) && password.equals(pass)) {                	flag=true;                	break;                }            }            rs.close();            ps.close();		}catch(SQLException e){            e.printStackTrace();        }		if(flag) { //若学生账号密码正确,则进入学生功能界面			lb_tips.setText("登录成功!");			loginTips();			new StudentFunction(stu_num);			HomePage.mainJFrame.dispose();		}		else { //若账号密码错误,则进行提示			lb_tips.setText("账号或密码错误!");			loginTips();			try {				HomePage.connection.close(); //关闭数据库连接			} catch (SQLException e) {				e.printStackTrace();			}		}	}		public void loginTips() { //登录时弹出的提示信息窗口		JDialog tips=new JDialog(HomePage.mainJFrame,"  提示",true);		JPanel pn_tips=new JPanel();		JButton bt_tips=new JButton("确 定");		tips.setSize(450,200);		tips.setLocationRelativeTo(null);		tips.setResizable(false);		tips.setLayout(null);		pn_tips.setBounds(0,30,450,70);		lb_tips.setFont(new Font("黑体",0,25));		bt_tips.setFont(new Font("黑体",0,20));		bt_tips.setBounds(175,100,100,50);		bt_tips.setCursor(new Cursor(Cursor.HAND_CURSOR));		pn_tips.add(lb_tips);		tips.add(pn_tips);		tips.add(bt_tips);		bt_tips.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				tips.dispose();			}		});		tips.setVisible(true);	}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116

… …
其他代码请见程序源码!

后记

本文章是为了记录下作者自己的过往,同时供各位学习参考,文章主要展示程序功能,详细程序代码及介绍请至文章开头处GitHub链接下载相应资源。

本程序仅供学习和参考,请勿抄袭或另作他用。

感谢观看,有什么问题可在下方评论区进行评论,若觉得本文章写得不错,还请点个赞呢。

关注我,收看更多精彩!( • ̀ω•́ )✧求点赞、评论、收藏、关注

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发