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 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 blocke1.printStackTrace();} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (FileNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IOException e1) {// TODO Auto-generated catch blocke1.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 blocke1.printStackTrace();} catch (IOException e1) {// TODO Auto-generated catch blocke1.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();}}
}

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部