基于swing的人事管理系统

news2024/12/23 19:14:56

概述

个人项目人事管理系统,针对部门和人员之间的管理。

详细

一、项目UI

1.png

2.png

3.png

二、项目结构

4.png

三、项目使用方法

Eclipse导入现有现有项目到工作空间即可,会自动加载包内相关jar包,使用的java源文件

四、部分代码

MainFrm.java

package view;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
 
import java.awt.Color;
 
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
 
import org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper;
 
import java.awt.Event;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.PrintJob;
import java.awt.Toolkit;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
 
import javax.swing.JTabbedPane;
 
import java.awt.CardLayout;
import java.awt.GridLayout;
import java.util.Properties;
 
import javax.swing.SwingConstants;
 
/**
 * 主窗体类
 * @author 22219
 *
 */
public class MainFrm extends JFrame {
    /**
     * 版本串号serialVersionUID
     */
    private static final long serialVersionUID = 1L;
    public static JPanel contentPane;
    private static JTextField empNoTextField;
    private static JTextField empPositionTextField;
    private static JTextField empNameTextField;
    private static JTextField empSexTextField;
    private static JTextField empAgeTextField;
    private static JTextField idNumberTextField;
    private static JTextField depNameTextField;
    private static JTextField addressTextField;
    public static String userId;
 
    private static JTabbedPane tabbedPane;
    private static PanelDepartment panelDepartment;
    private static PanelEmployee panelEmployee;
    private static JPanel empInfo;
 
    /**
     * Create the frame.
     */
    public MainFrm(String userid) {
        userId = userid;
        setIconImage(Toolkit.getDefaultToolkit().getImage(
                MainFrm.class.getResource("/images/storage_128px.png")));
        setTitle("人事管理系统");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setBounds(100, 100, 1600, 800);
        contentPane = new JPanel();
        contentPane.setBackground(Color.WHITE);
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(new BorderLayout(0, 0));
 
        JMenuBar menuBar = new JMenuBar();
        contentPane.add(menuBar, BorderLayout.NORTH);
        menuBar.setBackground(Color.WHITE);
 
        // 文件
        JMenu mnNewMenu = new JMenu("文件");
        mnNewMenu.setIcon(new ImageIcon(MainFrm.class
                .getResource("/images/base.png")));
        menuBar.add(mnNewMenu);
 
        // 文件->注销
        JMenuItem logoutMenuItem = new JMenuItem("注销");
        logoutMenuItem.setFont(new Font("微软雅黑", Font.PLAIN, 15));
        logoutMenuItem.setIcon(new ImageIcon(MainFrm.class
                .getResource("/images/password.png")));
        mnNewMenu.add(logoutMenuItem);
        logoutMenuItem.setMnemonic(KeyEvent.VK_A);
        logoutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
                Event.CTRL_MASK));
        logoutMenuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (JOptionPane.showConfirmDialog(null, "确认注销?", "提示",
                        JOptionPane.YES_NO_OPTION) == 0) {
                    dispose();
                    LogOnFrm frame = new LogOnFrm();
                    frame.setVisible(true);
                     
                }
            }
        });
 
        // 文件->退出
        JMenuItem mntmNewMenuItem_2 = new JMenuItem("退出");
        mntmNewMenuItem_2.setFont(new Font("微软雅黑", Font.PLAIN, 15));
        mntmNewMenuItem_2.setIcon(new ImageIcon(MainFrm.class
                .getResource("/images/exit.png")));
        mnNewMenu.add(mntmNewMenuItem_2);
        mntmNewMenuItem_2.setMnemonic(KeyEvent.VK_Q);
        mntmNewMenuItem_2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,
                Event.CTRL_MASK));
        mntmNewMenuItem_2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (JOptionPane.showConfirmDialog(null, "确认退出?", "提示",
                        JOptionPane.YES_NO_OPTION) == 0) {
                    System.exit(0);
                }
            }
        });
 
        // 功能
        JMenu mnNewMenu_3 = new JMenu("功能");
        mnNewMenu_3.setIcon(new ImageIcon(MainFrm.class
                .getResource("/images/bookTypeManager.png")));
        menuBar.add(mnNewMenu_3);
 
        // 功能->部门管理
        JMenuItem mntmNewMenuItem_1 = new JMenuItem("部门管理");
        mntmNewMenuItem_1.setFont(new Font("微软雅黑", Font.PLAIN, 15));
        mntmNewMenuItem_1.setIcon(new ImageIcon(MainFrm.class
                .getResource("/images/bookTypeManager.png")));
        mnNewMenu_3.add(mntmNewMenuItem_1);
        mntmNewMenuItem_1.setMnemonic(KeyEvent.VK_F2);
        mntmNewMenuItem_1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F2,
                0));
        mntmNewMenuItem_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                tabbedPane.setSelectedComponent(panelDepartment);
            }
        });
 
        // 功能->员工管理
        JMenuItem mntmNewMenuItem_3 = new JMenuItem("员工管理");
        mntmNewMenuItem_3.setFont(new Font("微软雅黑", Font.PLAIN, 15));
        mntmNewMenuItem_3.setIcon(new ImageIcon(MainFrm.class
                .getResource("/images/userName.png")));
        mnNewMenu_3.add(mntmNewMenuItem_3);
        mntmNewMenuItem_3.setMnemonic(KeyEvent.VK_F3);
        mntmNewMenuItem_3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,
                0));
        mntmNewMenuItem_3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                tabbedPane.setSelectedComponent(panelEmployee);
            }
        });
 
        // 功能->人员信息
        JMenuItem mntmNewMenuItem_4 = new JMenuItem("人员信息");
        mntmNewMenuItem_4.setFont(new Font("微软雅黑", Font.PLAIN, 15));
        mntmNewMenuItem_4.setIcon(new ImageIcon(MainFrm.class
                .getResource("/images/userName.png")));
        mnNewMenu_3.add(mntmNewMenuItem_4);
        mntmNewMenuItem_4.setMnemonic(KeyEvent.VK_F4);
        mntmNewMenuItem_4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4,
                0));
        mntmNewMenuItem_4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                tabbedPane.setSelectedComponent(empInfo);
            }
        });
 
        // 主题切换
        JMenu viewMenu = new JMenu("主题");
        viewMenu.setIcon(new ImageIcon(MainFrm.class
                .getResource("/images/view.png")));
        menuBar.add(viewMenu);
        ButtonGroup group = new ButtonGroup();
        JRadioButtonMenuItem v1 = new JRadioButtonMenuItem("Metal", true);
        v1.setFont(new Font("微软雅黑", Font.PLAIN, 15));
        v1.setIcon(new ImageIcon(MainFrm.class.getResource("/images/edit.png")));
        viewMenu.add(v1);
        v1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    UIManager
                            .setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
                    SwingUtilities.updateComponentTreeUI(MainFrm.this);
                } catch (ClassNotFoundException | InstantiationException
                        | IllegalAccessException
                        | UnsupportedLookAndFeelException e1) {
                }
            }
        });
        JRadioButtonMenuItem v2 = new JRadioButtonMenuItem("Motif");
        v2.setFont(new Font("微软雅黑", Font.PLAIN, 15));
        v2.setIcon(new ImageIcon(MainFrm.class.getResource("/images/edit.png")));
        viewMenu.add(v2);
        v2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    UIManager
                            .setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
                    SwingUtilities.updateComponentTreeUI(MainFrm.this);
                } catch (ClassNotFoundException | InstantiationException
                        | IllegalAccessException
                        | UnsupportedLookAndFeelException e1) {
                }
            }
        });
        JRadioButtonMenuItem v3 = new JRadioButtonMenuItem("Windows");
        v3.setFont(new Font("微软雅黑", Font.PLAIN, 15));
        v3.setIcon(new ImageIcon(MainFrm.class.getResource("/images/edit.png")));
        viewMenu.add(v3);
        v3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    UIManager
                            .setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
                    SwingUtilities.updateComponentTreeUI(MainFrm.this);
                } catch (ClassNotFoundException | InstantiationException
                        | IllegalAccessException
                        | UnsupportedLookAndFeelException e1) {
                }
            }
        });
        JRadioButtonMenuItem v4 = new JRadioButtonMenuItem("Nimbus");
        v4.setFont(new Font("微软雅黑", Font.PLAIN, 15));
        v4.setIcon(new ImageIcon(MainFrm.class.getResource("/images/edit.png")));
        viewMenu.add(v4);
        v4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    UIManager
                            .setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
                    SwingUtilities.updateComponentTreeUI(MainFrm.this);
                } catch (ClassNotFoundException | InstantiationException
                        | IllegalAccessException
                        | UnsupportedLookAndFeelException e1) {
                }
            }
        });
        JRadioButtonMenuItem v5 = new JRadioButtonMenuItem("beautyeye");
        v5.setFont(new Font("微软雅黑", Font.PLAIN, 15));
        v5.setIcon(new ImageIcon(MainFrm.class.getResource("/images/edit.png")));
        viewMenu.add(v5);
        v5.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow;
                    org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper
                            .launchBeautyEyeLNF();
                    UIManager.put("RootPane.setupButtonVisible", false);
                    SwingUtilities.updateComponentTreeUI(MainFrm.this);
                } catch (Exception e1) {
                }
            }
        });
        group.add(v1);
        group.add(v2);
        group.add(v3);
        group.add(v4);
        group.add(v5);
        viewMenu.add(v1);
        viewMenu.add(v2);
        viewMenu.add(v3);
        viewMenu.add(v4);
        viewMenu.add(v5);
 
        // 关于
        JMenu mnNewMenu_4 = new JMenu("关于");
        mnNewMenu_4.setIcon(new ImageIcon(MainFrm.class
                .getResource("/images/about.png")));
        menuBar.add(mnNewMenu_4);
 
        // 关于->帮助
        JMenuItem mntmNewMenuItem = new JMenuItem("帮助");
        mntmNewMenuItem.setFont(new Font("微软雅黑", Font.PLAIN, 15));
        mntmNewMenuItem.setIcon(new ImageIcon(MainFrm.class
                .getResource("/images/me.png")));
        mnNewMenu_4.add(mntmNewMenuItem);
        mntmNewMenuItem.setMnemonic(KeyEvent.VK_F1);
        mntmNewMenuItem.setAccelerator(KeyStroke
                .getKeyStroke(KeyEvent.VK_F1, 0));
        mntmNewMenuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(MainFrm.this, "人事管理系统:\n"
                        + "在企业中,人事管理工作是非常重要的一项工作,它负责整个企业的日常人事安排,\n"
                        + "人员的人事管理等。高效的人事管理可以提高企业的市场竞争力,使企业具有更强的凝\n" + "聚力和活力。"
                        + "", "关于", 1);
            }
        });
 
        // 添加管理板块选项卡面板(PanelDep+PanelEmp+empInfo)
        tabbedPane = new JTabbedPane(JTabbedPane.TOP);
        contentPane.add(tabbedPane, BorderLayout.CENTER);
 
        panelDepartment = new PanelDepartment("empsal", "dep");
        panelDepartment.setBorder(new EmptyBorder(5, 5, 5, 5));
        panelEmployee = new PanelEmployee("empsal", "emp");
        panelEmployee.setBorder(new EmptyBorder(5, 5, 5, 5));
        empInfo = new JPanel();
        empInfo.setBorder(new EmptyBorder(5, 5, 5, 5));
        empInfo.setLayout(new BorderLayout(0, 0));
        tabbedPane.addTab("部门管理", null, panelDepartment, null);
        tabbedPane.addTab("员工管理", null, panelEmployee, null);
        tabbedPane.addTab("人员信息", null, empInfo, null);
 
        // 个人信息选项卡
        JToolBar toolBar = new JToolBar();
        empInfo.add(toolBar, BorderLayout.NORTH);
 
        JButton btnNewButton = new JButton("\u4E0A\u4E00\u4E2A");
        btnNewButton.setIcon(new ImageIcon(EmpInfo.class
                .getResource("/images/NavBack.png")));
        toolBar.add(btnNewButton);
 
        JButton btnNewButton_1 = new JButton("\u4E0B\u4E00\u4E2A");
        btnNewButton_1.setIcon(new ImageIcon(EmpInfo.class
                .getResource("/images/NavForward.png")));
        toolBar.add(btnNewButton_1);
 
        JButton btnNewButton_5 = new JButton("\u589E\u52A0");
        btnNewButton_5.setIcon(new ImageIcon(EmpInfo.class
                .getResource("/images/add.png")));
        toolBar.add(btnNewButton_5);
 
        JButton btnNewButton_2 = new JButton("\u5BFC\u51FA");
        btnNewButton_2.setIcon(new ImageIcon(EmpInfo.class
                .getResource("/images/saveHS.png")));
        toolBar.add(btnNewButton_2);
 
        JButton btnNewButton_3 = new JButton("\u6253\u5370");
        btnNewButton_3.setIcon(new ImageIcon(EmpInfo.class
                .getResource("/images/PrintHS.png")));
        toolBar.add(btnNewButton_3);
 
        JButton btnNewButton_4 = new JButton("\u9000\u51FA");
        btnNewButton_4.setIcon(new ImageIcon(EmpInfo.class
                .getResource("/images/RestartHS.png")));
        toolBar.add(btnNewButton_4);
 
        JTabbedPane tabbedPane1 = new JTabbedPane(JTabbedPane.TOP);
        empInfo.add(tabbedPane1, BorderLayout.CENTER);
 
        JPanel fatherBaseInfoPanel = new JPanel();
        fatherBaseInfoPanel.setLayout(new BorderLayout());
        JPanel baseInfoPanel = new JPanel();
        fatherBaseInfoPanel.add(baseInfoPanel, BorderLayout.CENTER);
 
        tabbedPane1.addTab("基本信息", null, fatherBaseInfoPanel, null);
        baseInfoPanel.setLayout(new GridLayout(5, 4, 200, 100));
 
        JLabel empNoLabel = new JLabel("\u5458\u5DE5ID");
        empNoLabel.setHorizontalAlignment(SwingConstants.CENTER);
        baseInfoPanel.add(empNoLabel);
 
        empNoTextField = new JTextField();
        baseInfoPanel.add(empNoTextField);
        empNoTextField.setColumns(10);
 
        JLabel empNameLabel = new JLabel("\u59D3\u540D");
        empNameLabel.setHorizontalAlignment(SwingConstants.CENTER);
        baseInfoPanel.add(empNameLabel);
 
        empNameTextField = new JTextField();
        empNameTextField.setColumns(10);
        baseInfoPanel.add(empNameTextField);
 
        JLabel empAgeLabel = new JLabel("\u5E74\u9F84");
        empAgeLabel.setHorizontalAlignment(SwingConstants.CENTER);
        baseInfoPanel.add(empAgeLabel);
 
        empAgeTextField = new JTextField();
        empAgeTextField.setColumns(10);
        baseInfoPanel.add(empAgeTextField);
 
        JLabel empSexLabel = new JLabel("\u6027\u522B");
        empSexLabel.setHorizontalAlignment(SwingConstants.CENTER);
        baseInfoPanel.add(empSexLabel);
 
        empSexTextField = new JTextField();
        empSexTextField.setColumns(10);
        baseInfoPanel.add(empSexTextField);
 
        JLabel idNumberLabel = new JLabel("\u8EAB\u4EFD\u8BC1\u53F7");
        idNumberLabel.setHorizontalAlignment(SwingConstants.CENTER);
        baseInfoPanel.add(idNumberLabel);
 
        idNumberTextField = new JTextField();
        idNumberTextField.setColumns(10);
        baseInfoPanel.add(idNumberTextField);
 
        JLabel empPositionLabel = new JLabel("\u804C\u52A1");
        empPositionLabel.setHorizontalAlignment(SwingConstants.CENTER);
        baseInfoPanel.add(empPositionLabel);
 
        empPositionTextField = new JTextField();
        empPositionTextField.setColumns(10);
        baseInfoPanel.add(empPositionTextField);
 
        JLabel lblNewLabel_2 = new JLabel("\u6240\u5C5E\u90E8\u95E8");
        lblNewLabel_2.setHorizontalAlignment(SwingConstants.CENTER);
        baseInfoPanel.add(lblNewLabel_2);
 
        depNameTextField = new JTextField();
        depNameTextField.setColumns(10);
        baseInfoPanel.add(depNameTextField);
 
        JLabel addressLabel = new JLabel("\u5C45\u4F4F\u5730");
        addressLabel.setHorizontalAlignment(SwingConstants.CENTER);
        baseInfoPanel.add(addressLabel);
 
        addressTextField = new JTextField();
        addressTextField.setColumns(10);
        baseInfoPanel.add(addressTextField);
 
        JLabel lblNewLabel_3 = new JLabel(
                "     \u53CC\u51FB\u9009\u62E9\u7167\u7247");
        lblNewLabel_3.setBackground(Color.WHITE);
        fatherBaseInfoPanel.add(lblNewLabel_3, BorderLayout.EAST);
        lblNewLabel_3.setBorder(BorderFactory.createLineBorder(Color.black));
 
        JPanel panel_1 = new JPanel();
        tabbedPane1.addTab("社会关系", null, panel_1, null);
        panel_1.setLayout(null);
 
        JPanel panel_2 = new JPanel();
        tabbedPane1.addTab("工资晋升", null, panel_2, null);
        panel_2.setLayout(null);
 
        JPanel panel_3 = new JPanel();
        tabbedPane1.addTab("待开发", null, panel_3, null);
 
        JPanel panel_4 = new JPanel();
        tabbedPane1.addTab("待开发", null, panel_4, null);
 
        // 按钮监听
        addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                int code = e.getKeyCode();
                if (code == KeyEvent.VK_F5) {
                }
            }
 
        });
 
        // 关闭窗口监听
        this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
        this.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                if (JOptionPane.showConfirmDialog(null, "确认退出?", "提示",
                        JOptionPane.YES_NO_OPTION) == 0) {
                    System.exit(0);
                }
 
            }
        });
    }
 
 
    /**
     * 测试主窗口
     */
    public static void main(String[] args) {
        // try{
        // BeautyEyeLNFHelper.frameBorderStyle =
        // BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow;
        // org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
        // }catch(Exception e){}
        // UIManager.put("RootPane.setupButtonVisible", false);
        MainFrm frame = new MainFrm("NULL");
        frame.setVisible(true);
//      frame.printFrameAction();
    }
}

EmployeeDao.java
package dao;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
import javax.swing.JOptionPane;
 
import util.DbUtil;
import view.MainFrm;
import model.Employee;
 
/**
 * 员工Dao类
 * 实现Employee的添、删、改、查数据库操作类EmployeeDao
 * @author 22219
 *
 */   
public class EmployeeDao {
 
    private EmployeeDao() {}
 
    /**
     * 添加员工
     * @param e
     */
    public static void addEmployee(Employee e) {
        Connection conn = null;
        try {
            conn = DbUtil.getCon();
            PreparedStatement ps = conn
                    .prepareStatement("INSERT INTO emp (empNo,empName,depName,empPosition,empSex,empAge,idNumber,address) VALUES (?,?,?,?,?,?,?,?)");
            ps.setString(1, e.getEmpNo());
            ps.setString(2, e.getEmpName());
            ps.setString(3, e.getDepName());
            ps.setString(4, e.getEmpPosition());
            ps.setString(5, e.getEmpSex());
            ps.setString(6, e.getEmpAge());
            ps.setString(7, e.getIdNumber());
            ps.setString(8, e.getAddress());
             
            ps.executeUpdate();
            ps.close();
        } catch (Exception ex) { 
            JOptionPane.showMessageDialog(MainFrm.contentPane,
                    "插入出错,请检查:\n1.员工id是否重复输入!\n2.部门名是否拼写错误!");
        } finally {
            DbUtil.closeCon(conn);
        }
    }
 
    /**
     * 删除员工
     * @param id
     */
    public static void deleteEmployee(String id) {
        Connection conn = null;
        try {
            conn = DbUtil.getCon();
            PreparedStatement ps = conn
                    .prepareStatement("DELETE FROM emp WHERE empNo=?");
            ps.setString(1, id);
            ps.executeUpdate();
            ps.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            DbUtil.closeCon(conn);
        }
    }
 
    /**
     * 修改员工信息
     * @param a
     */
    public static void updateEmployee(Employee a) {
        Connection conn = null;
        try {
            conn = DbUtil.getCon();
            String Sql = "UPDATE emp SET empNo=?,empName=?,depName=?,empPosition=?,empSex=?,empAge=?,idNumber=?,address=? WHERE empNo =?";
            PreparedStatement ps = conn.prepareStatement(Sql);
            ps.setString(1, a.getEmpNo());
            ps.setString(2, a.getEmpName());
            ps.setString(3, a.getDepName());
            ps.setString(4, a.getEmpPosition());
            ps.setString(5, a.getEmpSex());
            ps.setString(6, a.getEmpAge());
            ps.setString(7, a.getIdNumber());
            ps.setString(8, a.getAddress());
            ps.setString(9, a.getEmpNo());
 
            ps.executeUpdate();
            ps.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            DbUtil.closeCon(conn);
        }
    }
 
    /**
     * 根据员工号empNo查询
     * @param id
     * @return
     */
    public static Employee getEmployee(String id) {
        Employee e = null;
        Connection conn = null;
        try {
            conn = DbUtil.getCon();
            // 建立PreparedStatement对象用于预编译SQL语句
            PreparedStatement ps = conn
                    .prepareStatement("SELECT * FROM emp WHERE empno=?");
            ps.setString(1, id);
            ResultSet rs = ps.executeQuery(); // 执行查询,返回结果集
            if (rs.next()) { // 因为管理员id是惟一的,所以只返回一个结果既可
                e = new Employee(rs.getString(1), rs.getString(2),
                        rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8));
            }
            ps.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            DbUtil.closeCon(conn);
        }
        return e;
    }
 
    // 查询表中的所有记录(员工),返回迭代器对象
    public static Iterator<Employee> getAllEmployee() {
        List<Employee> l = new ArrayList<Employee>();// 数组列表类对象,大小可自动增加
        Connection conn = null;
        try {
            conn = DbUtil.getCon(); // 获得数据连接
            Statement stmt = conn.createStatement(); // 建立Statement用于执行SQL操作
            ResultSet rs = stmt.executeQuery("SELECT * FROM emp");// 执行查询,返回结果集
            while (rs.next()) {// 循环得到所有记录,并添加到数组列表中
                l.add(new Employee(rs.getString(1), rs.getString(2),
                        rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8)));
            }
            stmt.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            DbUtil.closeCon(conn);
        }
        return l.iterator();// 返回迭代器对象
    }
 
    /*
     * 主程序测试功能
     */
    public static void main(String[] args) {
//      Employee admin = new Employee();
//      EmployeeDao.addEmployee(admin);
        for (Iterator<Employee> it = EmployeeDao.getAllEmployee(); it.hasNext();) {
            Employee a1 = (Employee) it.next();
            System.out.println(a1.getEmpNo() + "\t" + a1.getEmpName() + "\t"
                    + a1.getDepName());
        }
    }
 
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1190367.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IP-guard WebServer 远程命令执行漏洞

IP-guard WebServer 远程命令执行漏洞 免责声明漏洞描述漏洞影响漏洞危害网络测绘Fofa: app="ip-guard"漏洞复现1. 构造poc2. 访问文件3. 执行命令免责声明 仅用于技术交流,目的是向相关安全人员展示漏洞利用方式,以便更好地提高网络安全意识和技术水平。 任何人不得…

playwright与cypress各有什么优势与劣势

Playwright和Cypress都是用于自动化测试的工具&#xff0c;但它们在一些方面有所不同。 Playwright的优势&#xff1a; 跨浏览器支持&#xff1a;Playwright支持多种浏览器&#xff0c;包括Chrome、Firefox和Safari等&#xff0c;可以在不同浏览器上运行测试&#xff0c;提高…

对象反序列化

使用到的流是对象字节输入流&#xff1a;ObjectInputStream 作用&#xff1a;以内存为基准&#xff0c;把存储到磁盘文件中去的对象数据恢复成内存中的对象&#xff0c;称为对象反序列化。 ObjectInputStream反序列化方法 /**目标&#xff1a;学会进行对象反序列化&#xff1…

c语言刷题第10周(16~20)

规律&#xff1a; 若多个次数最多按ASCII码顺序输出。 用for循环i取&#xff08;0~26&#xff09; 则输出满足条件的字符串中位置最靠前的那个。 用while循环遍历&#xff08;while&#xff08;a[i]!\0&#xff09;&#xff09; 从键盘输入任意只含有大小写字母的串s&…

Python全栈安全:构建安全的全栈应用

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 第一部分&#xff1a;全…

2022ICPC济南站

K Stack Sort 题意&#xff1a;给你一个长度为n的排列&#xff0c;设有m个栈&#xff0c;你需要将这n个数按出现顺序入栈&#xff0c;每次入栈操作从m个栈中选择一个栈从栈顶入栈。当所有元素入栈完成后&#xff0c;需要不断选择栈&#xff0c;将栈中元素弹空。需满足出栈顺序…

行人检测综述 之 精华提取——图表与挑战

From Handcrafted to Deep Features for Pedestrian Detection:A Survey 从手工制作到深度特征的行人检测&#xff1a;一项调查 调查内容&#xff1a; 关于行人检测的传统算法和深度学习算法&#xff1b;关于行人检测的单光谱检测和多光谱检测&#xff1b;关于行人检测的多种数…

Web APIs——综合案例

1、学生就业统计表 2、渲染业务 根据持久化数据渲染页面 步骤&#xff1a; ①&#xff1a;读取localstorage本地数据 如果有数据则转换为对象放到变量里面一会使用它渲染页面如果没有则用默认空数组[]为了测试效果&#xff0c;可以先把initData存入本地存储看效果 ②&…

超声波热量表和电磁热量表有哪些区别?

随着我们能源消耗日益增长&#xff0c;热量计量已成为节能减排、能源管理的重要手段。热量表是用于测量热能消耗的仪表&#xff0c;其中超声波热量表和电磁热量表是常见的两种类型。下面&#xff0c;就由小编来为大家详细的介绍下超声波热量表和电磁热量表的区别&#xff0c;一…

电影《二手杰作》观后感

上周看了电影《二手杰作》,在看电影的时候&#xff0c;自己感觉其实多少有些文艺范&#xff0c;或者有些尴尬的&#xff0c;但是在电影里还好&#xff0c;不过整个故事看下来&#xff0c;多少有点代入感&#xff0c;不多但还是有点。 故事情节&#xff0c;比较简单&#xff0c…

为你摘星辰

欢迎来到程序小院 为你摘星辰 玩法&#xff1a;鼠标控制人物方向&#xff0c;点击鼠标键上升人物&#xff0c;经过⭐️⭐️吃掉获得分数&#xff0c;共三次生命&#xff0c;碰到红色障碍物减去一次生命&#xff0c; 人物掉落底部游戏结束&#xff0c;看你获得多少分^^。开始游…

Linux C基础(9)

1、指针的算术元素 总结&#xff1a; p n:pn对于p向地址增大的方向移动n个数据实际的变化&#xff1a;p sizeof(数据类型)*np - n:p-n对于p向地址减小的方向移动n个数据实际的变化&#xff1a;p - sizeof(数据类型)*np:p向地址增大的方向移动1个数据实际的变化&#xff1a;p …

【手把手教你】将python程序打包成exe可执行文件

1. 安装环境 pip install pyinstaller6.0.02. 打包文件 pyinstaller -D “要启动的文件名“.py比如我的命令就是&#xff1a;pyinstaller -D eval.py 执行完后&#xff0c;会生两个文件夹dist和bulib两个文件和一个xxx.spec文件 3. 删除生成的文件 删除生成的bulid和dist文…

Java实现调用openAI接口返回流式数据

一&#xff0c;添加依赖 <dependency><groupId>com.github.plexpt</groupId><artifactId>chatgpt</artifactId><version>4.0.7</version> </dependency>二&#xff0c;重写SseEmitter 改为UTF-8编码 import org.springframe…

TSINGSEE青犀智能分析网关工服识别算法,如何最大限度保障工人安全?

众所周知&#xff0c;TSINGSEE青犀智能分析网关算法繁多&#xff0c;大多数算法已经和大家讲解过了&#xff0c;今天就和大家聊一聊工服识别算法。工服识别算法一般应用于工地、化工、煤矿等场所&#xff0c;用来监督检测施工人员是否按照要求着工服&#xff0c;最大程度保障人…

助力网络安全攻防演练 | 中睿天下获国网蒙东电力数字化事业部感谢信

近日&#xff0c;中睿天下因积极协助和支撑国网蒙东电力数字化事业部在2023年国家网络安全专项演习期间的工作&#xff0c;有效保障了护网行动期间网络的安全稳定运行&#xff0c;因而获得了国网蒙东电力数字化事业部的高度认可&#xff0c;并向我司致书面表扬信&#xff0c;这…

Aria2 任意文件写入漏洞复现

漏洞描述 Aria2 是一款轻量级、多协议、多源下载工具&#xff08;支持 HTTP/HTTPS、FTP、BitTorrent、Metalink&#xff09;&#xff0c;内置 XML-RPC 和 JSON-RPC 接口。 我们可以使用 RPC 接口来操作 aria2 并将文件下载到任意目录&#xff0c;从而造成任意文件写入漏洞。 …

【CSS】transition、transform以及animation

1.CSS transition 介绍 通常当 CSS 的属性值更改后&#xff0c;浏览器会立即更新相应的样式。 在 CSS3 中加入了一项过渡功能&#xff0c;通过该功能&#xff0c;我们可以将元素从一种样式在指定时间内平滑的过渡到另一种样式&#xff0c;类似于简单的动画&#xff0c;但无需…

Android中Toast与Snack

1. Toast : 使用Toast类的makeText()方法创建Toast对象&#xff0c;makeText()方法有两个参数&#xff0c;第一个参数为显示Tosat的上下文环境&#xff0c;第二个参数为显示时长&#xff08; Toast.LENGTH_LONG 或 Toast.LENGTH_SHORT &#xff09;。 使用Toast类的show()方法…

lvgl 转换和使用新字体

一、背景 如果lvgl 提供的默认字体不符合我们的显示要求&#xff0c;我们可以在网上下载开源字体&#xff0c;或者利用系统自带&#xff08;注意版权问题&#xff09;的字体文件转换lvgl 能识别和调用的字体。 或者为了压缩存储空间&#xff0c;某些字体我们只需要个别字符&…