java项目 小区出入登记软件

 

为加强新型冠状病毒感染的肺炎疫情防控工作,有效减少人员聚集,阻断疫情传播,社区决定实行小区人员进出管理制度,开发一套小区出入登记软件。

项目功能包括:

1.软件用户分为小区管理员小区门禁执勤人员两类。

2.小区管理员登录后可以管理(增删查改)软件中的管理员用户执勤人员用户小区人员。

3.小区管理员可以使用软件从文件或excel表中导入小区用户名单(包括楼号、单元号、门牌号、姓名、性别、电话、照片(可选)等必要信息)。

4.小区管理员可以查看所有的小区人员进出记录,可以根据日期范围、姓名或门牌号等信息筛选进出记录。

5.小区执勤人员在小区人员进出时测量人员体温,并将人员的进出方向进出时间体温等信息录入软件。

整体设计思路如下:

  1. Login.java类是核心类,制作了登陆界面:管理员和执勤人员可以登录进入系统。
  2. 根据人员编号不同分别进入不同的界面,如以A开头,则打开管理员界面;以B开头,则进入执勤人员界面。
  3. 点击登录界面的注册按钮后,则进入Register.java类进行注册(即对worker数据库增加)。注册成功后会重新进入登录界面进行登录。
  4. 登录成功之后会出现提示并且进入欢迎界面。Manger.java类包括管理员名单,执勤人员名单,居住人员名单,进出人员名单的调用,还有一个返回上一界面的按钮。

登录界面:

注册界面(管理员和执勤人员):

管理员登录界面:

当点击“管理员名单”时,会调用JTable1M.java类,里面有增删查改功能(查需要调用JTable2M.java类,与数据库建立连接并导出所需内容)。

当点击“执勤人员名单”时,会调用JTable1A.java类,里面有增删查改功能(查需要调用JTable2A.java类,与数据库建立连接并导出所需内容)。

小区用户人员名单和进出人员名单同上。

每个界面都有设置返回按钮,当想要退出系统时,出现如下提示:点击“是”即可退出。

主要使用windowbuilder插件来实现图画界面,结合数据库的使用实现对表的增删查改。登录,提交时使用if语句来判断是否符合,符合即登录注册,不符合则弹出对话框。

登录界面主要方法:

			/**
			 *监听 登录按钮
			 *检索用户信息
			 *判断
			 */
			public void actionPerformed(ActionEvent e) {
				try {
					
					String url = "jdbc:mysql://地址:端口/数据库名";
					String user = "";
					String password = "";
					Properties prop = new Properties();

					prop.load(new FileInputStream("jdbc.prop"));
					user = prop.getProperty("user");
					password = prop.getProperty("password");

					Mysql_con mysql_con = new Mysql_con(url, user, password);
					
					char fir = name.getText().charAt(0);//获取用户名字符串的第一个字符
					
					LinkedList<Worker> workers = mysql_con.getWork();
					
					
					for (Worker wor : workers) {
						if (name.getText() == null && String.valueOf(passwordField.getPassword()) == null) {
							JOptionPane.showMessageDialog(null, "输入为空", "提示", JOptionPane.ERROR_MESSAGE);
							return;
						}

						if (name.getText().isEmpty() || String.valueOf(passwordField.getPassword()).isEmpty()) {
							JOptionPane.showMessageDialog(null, "用户名或密码为空", "提示", JOptionPane.ERROR_MESSAGE);
							return;
						}

						if (name.getText().equals(wor.getName())) {
							b = !b;
							if (String.valueOf(passwordField.getPassword()).equals(wor.getPassword())) {
								a = !a;
								if (fir == 'A') {
									Login.this.dispose();
									JOptionPane.showMessageDialog(null, "登录成功", "提示消息", JOptionPane.WARNING_MESSAGE);
									dispose();
									// TODO:打开管理员界面
									Manger manger = new Manger(name.getText());
									manger.setVisible(true);
									break;

								}
								if (fir == 'B') {
									Login.this.dispose();
									JOptionPane.showMessageDialog(null, "登录成功", "提示消息", JOptionPane.WARNING_MESSAGE);
									dispose();
									// TODO:打开执勤人员界面
									Administrator ad = new Administrator(name.getText());
									ad.setVisible(true);
									break;
								}

							}
						}

					}

					if (!b) {
						JOptionPane.showMessageDialog(null, "用户不存在", "提示错误", JOptionPane.ERROR_MESSAGE);
						return;
					}

					if (!a) {

						JOptionPane.showMessageDialog(null, "用户名或密码错误", "输入错误", JOptionPane.ERROR_MESSAGE);
						return;

					}

				} catch (ClassNotFoundException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (FileNotFoundException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

			}
		});

 注册界面主要方法:

/**
		 * 监听提交按钮
		 * 注册成功 返回到登录界面
		 * 
		 */
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				char[] chr =password.getPassword();
				
				
				if (name.getText().isEmpty()) {
					name.setBackground(new Color(255, 204, 153));
					JOptionPane.showMessageDialog(null, "请输入用户名", "提示消息", JOptionPane.WARNING_MESSAGE);
					return;
				}
				
				if (String.valueOf(chr).isEmpty()) {
					password.setBackground(new Color(255, 204, 153));
					JOptionPane.showMessageDialog(null, "请输入密码", "提示消息", JOptionPane.WARNING_MESSAGE);
					return;
				}
				
				if (!choose.isSelected()) {
					choose.setBackground(new Color(255, 204, 153));
					JOptionPane.showMessageDialog(null, "请确定注册规则", "提示消息", JOptionPane.WARNING_MESSAGE);
					return;

				}else {

					try {

						// 加载驱动
						Class.forName("com.mysql.cj.jdbc.Driver");
					} catch (ClassNotFoundException e1) {
						e1.printStackTrace();
					}

					// 创建连接
					String url = "jdbc:mysql://地址:端口/数据库名";
					String user = "";
					String password = "";
					Properties prop = new Properties();
					try {

						prop.load(new FileInputStream("jdbc.prop"));

						user = prop.getProperty("user");
						password = prop.getProperty("password");

						Connection conn = DriverManager.getConnection(url, user, password);
						// 创建语句
						String insert = "insert into worker(sname,spassword) values(? , ? )";
						
						PreparedStatement pStatement = conn.prepareStatement(insert);
						pStatement.setString(1, name.getText());
						pStatement.setString(2,String.valueOf(chr));
						pStatement.executeUpdate();
						conn.close();
						JOptionPane.showMessageDialog(null, "注册成功");
						dispose();
						EventQueue.invokeLater(new Runnable() {
							public void run() {
								try {
									Login frame = new Login();
									frame.setVisible(true);
								} catch (Exception e) {
									e.printStackTrace();
								}
							}
						});
					} catch (SQLException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
				
				
			
			
			}
		});

增删查改主要方法:
 

protected void insert() {
		try (Connection connection = DriverManager.getConnection(url, dbuser, dbpassword)) {
			String insert = "insert into administrator(aname,asex,atelephone,aaddress) values(?,?,?,?)";
			PreparedStatement pStatement = connection.prepareStatement(insert);
			pStatement.setString(1, name.getText());
			pStatement.setString(2, sex.getText());
			pStatement.setString(3, tele.getText());
			pStatement.setString(4, addr.getText());
			pStatement.executeUpdate();
			initTable();
		} catch (SQLException e) {
			e.printStackTrace();
		}

	}

protected void delete() {
		int row = table.getSelectedRow();
		if (row == -1) {
			return;
		}
		int id = (int) table.getValueAt(row, 0);
		try (Connection connection = DriverManager.getConnection(url, dbuser, dbpassword)) {
			String delete = "delete from administrator  where aname=?";
			PreparedStatement pStatement = connection.prepareStatement(delete);
			pStatement.setString(1, name.getText());
			pStatement.executeUpdate();

		} catch (SQLException e) {
			e.printStackTrace();
		}
		initTable();
	}
protected void search() {
		try (Connection connection = DriverManager.getConnection(url, dbuser, dbpassword)) {
			String select = "select *from administrator where aname='" + name.getText() + "'";
			PreparedStatement pStatement = connection.prepareStatement(select);
			pStatement.executeQuery(select);
			ResultSet set = pStatement.executeQuery();
			tableModel.setRowCount(0);
			while (set.next()) {
				tableModel.addRow(new Object[] { set.getInt("id"), set.getString("aname"), set.getString("asex"),
						set.getString("atelephone"), set.getString("aaddress") });

			}
			EventQueue.invokeLater(new Runnable() {
				public void run() {
					try {
						dispose();
						JTable2A frame = new JTable2A(tableModel);
						frame.setVisible(true);

					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			});

		} catch (SQLException e) {
			e.printStackTrace();
		}

	}
protected void updateDB() {
		int row = table.getSelectedRow();
		if (row == -1) {
			return;
		}
		int id = (int) table.getValueAt(row, 0);

		try (Connection connection = DriverManager.getConnection(url, dbuser, dbpassword)) {
			String update = "update administrator set aname=?,asex=?,atelephone=?,aaddress=? where id=?";
			PreparedStatement pStatement = connection.prepareStatement(update);
			pStatement.setString(1, name.getText());
			pStatement.setString(2, sex.getText());
			pStatement.setString(3, tele.getText());
			pStatement.setString(4, addr.getText());
			pStatement.setInt(5, id);
			pStatement.executeUpdate();

			initTable();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

自己本身也是小白,如果有意见,欢迎留言哦。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值