Eclipse+Java+Swing实现企业人事管理系统

一、系统介绍

本系统实现的功能:用户登录、员工信息的增删改查、导出Execl、计算器、记事本、信息排序。采用AES加密算法,数据库使用Mysql8.0.13,界面良好。

二、系统展示

1.登录页

在这里插入图片描述

2.主页面

在这里插入图片描述

3.添加员工信息

在这里插入图片描述

4.修改员工信息

在这里插入图片描述

5.计算器

在这里插入图片描述

6.记事本

在这里插入图片描述

7.导出Execl

在这里插入图片描述

三、系统实现

AccountDao.java

package com.sjsq.dao;

import java.util.List;

import com.sjsq.model.TbAccount;
import com.sjsq.model.TbDept;
import com.sjsq.model.TbPerson;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import com.sjsq.tools.JDBCUtils;

public class AccountDao {
	private static JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());

	public static List<TbAccount> findAllAccount() {
		try {
			String sql = "select * from tb_account";
			List<TbAccount> a = template.query(sql, new BeanPropertyRowMapper<TbAccount>(TbAccount.class));
			return a;
		} catch (DataAccessException e) {
			e.printStackTrace();
			return null;
		}
	}

	public static String findAccountMoneyById(int i) {
		try {
			String sql = "select * from tb_account where timecard_id=?";
			TbAccount tbAccount = template.queryForObject(sql, new BeanPropertyRowMapper<TbAccount>(TbAccount.class),
					i);
			return tbAccount.getMoney();
		} catch (DataAccessException e) {
			e.printStackTrace();
			return null;
		}
	}
}

DeptDao.java

package com.sjsq.dao;

import java.util.List;

import com.sjsq.model.TbDept;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import com.sjsq.tools.JDBCUtils;

public class DeptDao {
	private static JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());

	public static TbDept findDeptById(int deptId) {
		String sql = "select * from tb_dept where id=?";
		TbDept dept = template.queryForObject(sql, new BeanPropertyRowMapper<TbDept>(TbDept.class), deptId);
		return dept;

	}

	public static List<TbDept> findAllDept() {
		try {
			String sql = "select * from tb_dept";
			List<TbDept> tbDept = template.query(sql, new BeanPropertyRowMapper<TbDept>(TbDept.class));
			return tbDept;
		} catch (DataAccessException e) {
			e.printStackTrace();
			return null;
		}
	}

	public static int findDeptIdByName(String item) {
		String sql = "select * from tb_dept where name=?";
		TbDept dept = template.queryForObject(sql, new BeanPropertyRowMapper<TbDept>(TbDept.class), item);
		return dept.getId();
	}

	public static List<TbDept> findAllDeptExceptZero() {
		try {
			String sql = "select * from tb_dept where id<>0";
			List<TbDept> tbDept = template.query(sql, new BeanPropertyRowMapper<TbDept>(TbDept.class));
			return tbDept;
		} catch (DataAccessException e) {
			e.printStackTrace();
			return null;
		}
	}

	public static TbDept findDeptByName(String name) {
		try {
			String sql = "select * from tb_dept where name=?";
			TbDept dept = template.queryForObject(sql, new BeanPropertyRowMapper<TbDept>(TbDept.class), name);
			return dept;
		} catch (DataAccessException e) {
			e.printStackTrace();
			return null;
		}
	}

	public static void addDept(TbDept d2) {
		try {
			String sql = "insert into tb_dept(name) values (?)";
			template.update(sql, d2.getName());
		} catch (DataAccessException e) {
			e.printStackTrace();
		}

	}

	public static void deleteDeptById(int id) {
		try {
			String sql = "delete from tb_dept where id=?";
			template.update(sql, id);
		} catch (DataAccessException e) {
			e.printStackTrace();
		}

	}

	public static void updateDept(int id, String input) {
		try {
			String sql = "update tb_dept set name = ? where id = ?";
			template.update(sql, input, id);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

PersonDao.java

package com.sjsq.dao;

import java.util.List;

import com.sjsq.model.TbPerson;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import com.sjsq.tools.JDBCUtils;
import com.sjsq.tools.PwEncryption;

public class PersonDao {
	private static JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());

	public static TbPerson queryRecordByNum(String num) {
		try {
			String sql = "select * from tb_person where record_number=?";
			TbPerson tbRecord = template.queryForObject(sql, new BeanPropertyRowMapper<TbPerson>(TbPerson.class), num);
			return tbRecord;
		} catch (DataAccessException e) {
			e.printStackTrace();
			return null;
		}
	}

	public static List<TbPerson> findAllPerson() {
		try {
			String sql = "select * from tb_person";
			List<TbPerson> tbPerson = template.query(sql, new BeanPropertyRowMapper<TbPerson>(TbPerson.class));
			return tbPerson;
		} catch (DataAccessException e) {
			e.printStackTrace();
			return null;
		}
	}

	public static List<TbPerson> likePersonByRecordNumber(String recordNumber) {
		try {
			String sql = "select * from tb_person where record_number like '%' ? '%'";
			List<TbPerson> tbPerson = template.query(sql, new BeanPropertyRowMapper<TbPerson>(TbPerson.class),
					recordNumber);
			return tbPerson;
		} catch (DataAccessException e) {
			e.printStackTrace();
			return null;
		}
	}

	public static List<TbPerson> findPersonByDeptId(int i) {
		try {
			String sql = "select * from tb_person where dept_id=?";
			List<TbPerson> tbPerson = template.query(sql, new BeanPropertyRowMapper<TbPerson>(TbPerson.class), i);
			return tbPerson;
		} catch (DataAccessException e) {
			e.printStackTrace();
			return null;
		}
	}

	public static TbPerson findPersonByRecordNumber(String recordNumber) {
		try {
			String sql = "select * from tb_person where record_number=?";
			TbPerson tbPerson = template.queryForObject(sql, new BeanPropertyRowMapper<TbPerson>(TbPerson.class),
					recordNumber);
			return tbPerson;
		} catch (DataAccessException e) {
			System.out.println("查找员工为空数据");
			e.printStackTrace();
			return null;
		}
	}

	public static void updatePerson(TbPerson person) {
		try {
			String sql = "update tb_person set dept_id=?,duty_id=?,name=?,sex=?,"
					+ "birthday=?,photo=?,id_card=?,marriaged=?,native_place_id=?,"
					+ "party_member=?,school_age=?,specialty=?,foreign_language=?,"
					+ "grade=?,state=?,role_id=? where record_number=?";
			template.update(sql, person.getDeptId(), person.getDutyId(), person.getName(), person.getSex(),
					person.getBirthday(), person.getPhoto(), person.getIdCard(), person.getMarriaged(),
					person.getNativePlaceId(), person.getPartyMember(), person.getSchoolAge(), person.getSpecialty(),
					person.getForeignLanguage(), person.getGrade(), person.getState(), person.getRoleId(),
					person.getRecordNumber());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void addPerson(TbPerson person) {
		try {
			String sql = "insert into tb_person(record_number,dept_id,duty_id,name,sex,"
					+ "birthday,photo,id_card,marriaged,native_place_id,"
					+ "party_member,school_age,specialty,foreign_language,"
					+ "grade,state,role_id) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
			template.update(sql, person.getRecordNumber(), person.getDeptId(), person.getDutyId(), person.getName(),
					person.getSex(), person.getBirthday(), person.getPhoto(), person.getIdCard(), person.getMarriaged(),
					person.getNativePlaceId(), person.getPartyMember(), person.getSchoolAge(), person.getSpecialty(),
					person.getForeignLanguage(), person.getGrade(), person.getState(), person.getRoleId());
		} catch (DataAccessException e) {
			e.printStackTrace();
		}

	}

	public static void deletePersonByrecordNumber(String recordNumber) {
		try {
			String sql = "delete from tb_person where record_number=?";
			template.update(sql, recordNumber);
		} catch (DataAccessException e) {
			e.printStackTrace();
		}
	}

	public static TbPerson login(TbPerson person) {
		try {
			String sql = "select * from tb_person where record_number=? and password=?";
			TbPerson tbPerson = template.queryForObject(sql, new BeanPropertyRowMapper<TbPerson>(TbPerson.class),
					person.getRecordNumber(), person.getPassword());
			return tbPerson;
		} catch (DataAccessException e) {
			System.out.println("空结果数据访问异常");
			e.printStackTrace();
			return null;
		}
	}

	public static void updatePersonPassword(TbPerson person) {
		try {
			String sql = "update tb_person set password = ? where record_number= ?";
			template.update(sql, person.getPassword(), person.getRecordNumber());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static List<TbPerson> likePersonByName(String name) {
		try {
			String sql = "select * from tb_person where name like '%' ? '%'";
			List<TbPerson> tbPerson = template.query(sql, new BeanPropertyRowMapper<TbPerson>(TbPerson.class), name);
			return tbPerson;
		} catch (DataAccessException e) {
			e.printStackTrace();
			return null;
		}
	}

	public static void main(String args[]) {
		String userName = "T00001";
		String password = "123456";
		TbPerson person = new TbPerson(userName, PwEncryption.encrypt(password, "key"));
		login(person);
	}
}

JDBCUtils.java

package com.sjsq.tools;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * Druid连接池工具类,将来dao层调用
 */
public class JDBCUtils {
	private static DataSource dataSource; // 定义成员变量DataSource
	static {
		try {
			// 加载配置文件
			Properties properties = new Properties();
			properties.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));

			// 获取DataSource
			dataSource = DruidDataSourceFactory.createDataSource(properties);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 获取连接
	 */
	public static Connection getConnection() throws SQLException {
		return dataSource.getConnection();
	}

	/**
	 * 释放资源
	 */
	public static void close(Statement statement, Connection connection) {
		close(null, statement, connection);
	}

	public static void close(ResultSet resultSet, Statement statement, Connection connection) {
		if (resultSet != null) {
			try {
				resultSet.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		if (statement != null) {
			try {
				statement.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		if (connection != null) {
			try {
				connection.close();// 归还连接
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * 获取连接池方法
	 */
	public static DataSource getDataSource() {
		return dataSource;
	}
}

LoginFrame.java

package com.sjsq.view;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Toolkit;
import java.io.IOException;
import java.sql.Connection;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.SwingConstants;

import com.sjsq.model.TbPerson;

import org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper;

import com.sjsq.dao.PersonDao;
import com.sjsq.tools.PwEncryption;
import com.sjsq.tools.StringUtil;
import com.sjsq.tools.TxtExport;

/**
 * 登陆窗体类,为用户第一窗体
 * 
 * @author 22219
 *
 */
public class LoginFrame extends JFrame {

	/**
	 * 串行版本标识serialVersionUID
	 */
	private static final long serialVersionUID = 1L;

	private JPanel contentPane;
	public static JTextField userNameTxt;
	private JPasswordField passwordTxt;
	public static String time;
	public static String userId;

	/**
	 * 登陆窗体类的构造函数
	 */
	public LoginFrame() {

		this.setBounds(0, 0, 500, 400);
		this.setLocationRelativeTo(null);
		setResizable(false);
		//setIconImage(Toolkit.getDefaultToolkit().getImage(LoginFrame.class.getResource("/images/storage_128px.png")));
		setTitle("登录");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JLabel lblNewLabel = new JLabel("企业人事管理系统");
		lblNewLabel.setBounds(96, 29, 300, 48);
		lblNewLabel.setFont(new Font("方正粗黑宋简体", Font.BOLD, 27));
		lblNewLabel.setIcon(new ImageIcon(LoginFrame.class.getResource("/images/hrm.png")));

		JLabel lblNewLabel_1 = new JLabel("账号");
		lblNewLabel_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
		lblNewLabel_1.setBounds(34, 126, 80, 18);
		lblNewLabel_1.setIcon(new ImageIcon(LoginFrame.class.getResource("/images/userName.png")));

		JLabel lblNewLabel_2 = new JLabel("密码");
		lblNewLabel_2.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
		lblNewLabel_2.setBounds(34, 185, 65, 18);
		lblNewLabel_2.setIcon(new ImageIcon(LoginFrame.class.getResource("/images/password.png")));

		userNameTxt = new JTextField();
		userNameTxt.setHorizontalAlignment(SwingConstants.CENTER);
		userNameTxt.setBounds(96, 110, 308, 46);
		userNameTxt.setFont(new Font("微软雅黑", Font.BOLD, 20));
		userNameTxt.setToolTipText("输入用户名");
		userNameTxt.setColumns(10);

		passwordTxt = new JPasswordField();
		passwordTxt.setHorizontalAlignment(SwingConstants.CENTER);
		passwordTxt.setBounds(96, 169, 308, 46);
		passwordTxt.setFont(new Font("微软雅黑", Font.BOLD, 20));
		passwordTxt.setToolTipText("输入密码");

		JButton btnNewButton = new JButton("登录");
		btnNewButton.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
		btnNewButton.setBounds(120, 252, 90, 40);
		this.getRootPane().setDefaultButton(btnNewButton);
		btnNewButton.setIcon(new ImageIcon(LoginFrame.class.getResource("/images/login.png")));
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				loginActionPerformed(e);
			}
		});

		JButton btnNewButton_1 = new JButton("重置");
		btnNewButton_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
		btnNewButton_1.setBounds(280, 252, 90, 40);
		btnNewButton_1.setIcon(new ImageIcon(LoginFrame.class.getResource("/images/reset.png")));
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				resetValueActionPerformed(e);
			}
		});

		JButton btnNewButton_2 = new JButton("注/改");
		btnNewButton_2.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
		btnNewButton_2.setBounds(305, 252, 90, 40);
		btnNewButton_2.setIcon(new ImageIcon(LoginFrame.class.getResource("/images/add.png")));
		btnNewButton_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				enrollValueActionPerformed(e);
			}
		});

		contentPane.add(lblNewLabel);
		contentPane.add(lblNewLabel_1);
		contentPane.add(lblNewLabel_2);
		contentPane.add(passwordTxt);
		contentPane.add(userNameTxt);
		contentPane.add(btnNewButton);
		contentPane.add(btnNewButton_1);
		//contentPane.add(btnNewButton_2);

		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);
				}
			}
		});

		// bg------------------------------------------------
		JLabel lbBg = new JLabel(new ImageIcon(this.getClass().getResource("/images/timg.png")));
		lbBg.setBounds(0, 0, 500, 400);
		this.getContentPane().add(lbBg);
		// bg------------------------------------------------

		// sj------------------------------------------------
		JLabel timeLabel = new JLabel();
		timeLabel.setBounds(260, 319, 220, 18);
		contentPane.add(timeLabel);

		TimerTask task = new TimerTask() {
			public void run() {
				String sdate = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date());
				timeLabel.setText(sdate);
			}
		};
		Timer t = new Timer();
		t.scheduleAtFixedRate(task, new Date(), 1000);
		// sj-------------------------------------------------
	}

	/**
	 * 登陆事件处理
	 * 
	 * @param e
	 */
	private void loginActionPerformed(ActionEvent e) {
		String userName = this.userNameTxt.getText();
		String password = new String(this.passwordTxt.getPassword());
		if (StringUtil.isEmpty(userName)) {
			JOptionPane.showMessageDialog(this, "用户名不能为空!");
			return;
		}
		if (StringUtil.isEmpty(password)) {
			JOptionPane.showMessageDialog(this, "密码不能为空!");
			return;
		}

		TbPerson person = new TbPerson(userName, PwEncryption.encrypt(password, "key"));
		// TbPerson person = new TbPerson(userName,password);
		TbPerson personNew = PersonDao.login(person);
		if (personNew != null) {
			JOptionPane.showMessageDialog(this, "登陆成功!");
			MainFrame mainFrame = new MainFrame(userNameTxt.getText());
			mainFrame.frame.setVisible(true);

			// 导出登陆日志(用户id+时间)
			SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			time = df.format(new Date());
			System.out.println("用户Id:" + userNameTxt.getText() + "\t登陆时间:" + time);

			try {
				TxtExport.creatTxtFile("Enterprise Personnel Management System");
				TxtExport.writeTxtFile("员工Id:" + userNameTxt.getText() + "\t登陆时间:" + time);
			} catch (IOException e1) {
				e1.printStackTrace();
			}

			dispose();// 销毁窗体
		} else {
			JOptionPane.showMessageDialog(this, "用户名或密码错误!");
		}
	}

	/**
	 * 重置事件处理
	 * 
	 * @param e
	 */
	private void resetValueActionPerformed(ActionEvent evt) {
		this.userNameTxt.setText("");
		this.passwordTxt.setText("");
		userNameTxt.requestFocus();

	}

	/**
	 * 注册事件处理
	 * 
	 * @param e
	 */
	private void enrollValueActionPerformed(ActionEvent e) {

		String str = JOptionPane.showInputDialog(this, "输入超级管理员密码", "KEY", 2);
		TbPerson p = PersonDao.findPersonByRecordNumber("T00001");
		if (str == null) {
			return;
		} else if ("".equals(str)) {
			JOptionPane.showMessageDialog(this, "请至少输入一个字符", "", 1);
		} else if (p.getPassword().equals(PwEncryption.encrypt(str, "key"))) {
			// }else if (str.equals(p.getPassword())) {
			this.setVisible(false);
			dispose();
			EnrolmentFrame enrollFrame = new EnrolmentFrame();
			enrollFrame.setVisible(true);
		} else {
			JOptionPane.showMessageDialog(this, "密码错误", "", 0);
		}

	}

	/**
	 * 登陆窗口
	 */
	public static void main(String[] args) {

		LoginFrame frame = new LoginFrame();
		frame.setVisible(true);
	}

}

四、其他

1.其他系统实现

Java+JSP系统系列实现

Java+JSP实现学生图书管理系统
Java+JSP实现学生信息管理系统
Java+JSP实现用户信息管理系统

Java+Servlet+JSP系统系列实现

Java+Servlet+JSP实现航空订票系统
Java+Servlet+JSP实现新闻发布系统
Java+Servlet+JSP实现图书管理系统
Java+Servlet+JSP实现停车场管理系统
Java+Servlet+JSP实现房屋租赁管理系统
Java+Servlet+JSP实现学生选课管理系统
Java+Servlet+JSP实现宠物诊所管理系统
Java+Servlet+JSP实现学生宿舍管理系统
Java+Servlet+JSP实现学生信息管理系统
Java+Servlet+JSP实现学生成绩管理系统1
Java+Servlet+JSP实现学生成绩管理系统2

Java+SSM系统系列实现

Java+SSM+JSP实现图书管理系统
Java+SSM+JSP实现宠物商城系统
Java+SSM+JSP实现超市订单系统
Java+SSM+JSP实现网上考试系统
Java+SSM+JSP实现学生成绩管理系统
Java+SSM+JSP实现学生信息管理系统
Java+SSM+Bootstrap+Maven实现网上书城系统
Java+SSM+Bootstrap+Maven实现学校教务管理系统

Java+SSH系统系列实现

Java+SSH+Bootstrap实现在线考试系统
Java+SSH+JSP实现医院在线挂号系统

Java+Springboot系统系列实现

Java+Springboot+H-ui+Maven实现营销管理系统
Java+Springboot+Bootstrap+Maven实现网上商城系统
Java+Springboot+Bootstrap+Maven实现景区旅游管理系统

JavaSwing+Mysql系统系列实现

Java+Swing实现斗地主游戏
Java+Swing实现图书管理系统
Java+Swing实现医院管理系统
Java+Swing实现考试管理系统
Java+Swing实现酒店管理系统
Java+Swing实现超市管理系统
Java+Swing实现网上订餐系统
Java+Swing实现电影购票系统
Java+Swing实现仓库管理系统1
Java+Swing实现仓库管理系统2
Java+Swing实现进销存管理系统
Java+Swing实现通讯录管理系统
Java+Swing实现停车场管理系统
Java+Swing实现员工工资管理系统
Java+Swing实现学生宿舍管理系统
Java+Swing实现学生选课管理系统
Java+Swing实现学生成绩管理系统
Java+Swing实现学校教材管理系统
Java+Swing实现学校教务管理系统
Java+Swing实现企业人事管理系统
Java+Swing实现电子相册管理系统
Java+Swing实现学生信息管理系统1
Java+Swing实现学生信息管理系统2
Java+Swing实现自助取款机(ATM)系统

JavaSwing+Txt系统系列实现

Java+Swing实现超市管理系统-TXT存储信息
Java+Swing实现宠物商店管理系统-TXT存储信息
Java+Swing实现自助取款机(ATM)系统-TXT存储信息

2.获取源码

这个代码的原项目创作是一个非常优秀的小哥哥,多才多艺,技术水平非常不错,他自己有博客。
Rawchen的博客
Rawchen的Gitbub

免费获取源码
企业人事管理系统EPMS

3.备注

如有侵权请联系我删除。

献上你宝贵的赞,你会越来越幸运!

  • 25
    点赞
  • 187
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
系统可作为OA、网站、电子政务、ERP、CRM、APP后台等基于B/S架构的应用软件系统的快速开发框架。 一、特色功能 1、采用Spring MVC的静态加载缓存功能,在首页将Javascript文件、CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度。 2、三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3、分别封装了模型层、控制层、业务逻辑层和数据持久层的通用操作模块,层次分明,大大减少代码冗余,二次开发效率高。 4、系统是公司多个项目的基础框架,稳定性好,支持大并发。 二、主要功能 1、采用ExtJS 4.2.1.883无限制版本,放心用于网站开发。 2、ExtJS富文本编辑器增加修改信息。 3、ExtJS的HtmlEditor的图片文件上传插件。 4、Grid列表和表单,包含添加、删除、批量删除、修改、查看、图片查看和按条件查询列表等功能。 5、导入导出Excel数据,支持xlsx和xls文件。 6、资源管理(菜单管理)。 7、用户管理和部门管理。 8、权限管理。不仅可管理各个功能模块的权限,也可以管理功能模块里的页面按钮权限。 9、报表统计。也可以嵌入其他报表工具插件。 10、采用开源的互动地图Javascript库Leaflet,处理自定义在线地图。Panel里包含2个组件,在2个组件间传递参数显示数据。 三、开发工具和采用技术 1、开发工具:Eclipse、MyEclipse和其他IDE。 2、采用Spring 3中最新最稳定的Spring MVC 3.2.8版本。 3、采用Hibernate 4.1.7。Spring MVC 3.2.8支持的最高Hibernate版本是4.1.7,更高的Hibernate版本和Spring MVC 3.2.8组合会遇到兼容问题。 4、Hibernate集成二级缓存框架Ehcache。 5、数据库是MySQL、Oracle和SQL Server,Hibernate的Dialect可使程序移植到其他数据库。 6、采用开源的互动地图Javascript库Leaflet,处理自定义在线地图。 7、采用Google Guava Collections,性能高于Apache Collections。
员工工资管理系统是一个常见的软件应用程序,可以帮助公司管理员工的基本信息、薪资、考勤、福利等方面的内容。本文将介绍如何使用 Eclipse+Java+Swing+Mysql 实现员工工资管理系统。 步骤1:创建数据库 首先,我们需要在 Mysql 中创建一个名为 salary 的数据库,并在其中创建三个表:employee、salary_record 和 department。 employee 表用于存储员工的基本信息,包括员工编号、姓名、性别、部门编号等字段。salary_record 表用于存储员工的薪资记录,包括员工编号、发放日期、基本工资、奖金、扣款等字段。department 表用于存储部门的基本信息,包括部门编号、部门名称等字段。 步骤2:创建 Java 项目Eclipse 中创建一个新的 Java 项目,命名为 SalaryManagementSystem。在项目中创建三个包:entity、dao 和 view。 entity 包用于存储实体类,包括 Employee、SalaryRecord 和 Department 等类。dao 包用于存储数据访问对象,包括 EmployeeDao、SalaryRecordDao 和 DepartmentDao 等类。view 包用于存储界面类,包括 LoginFrame、MainFrame 和 AddEmployeeFrame 等类。 步骤3:编写实体类 在 entity 包中创建 Employee、SalaryRecord 和 Department 等类,并为每个类添加相应的属性和方法。例如,Employee 类包括员工编号、姓名、性别、所属部门等属性,以及获取和设置这些属性的方法。 步骤4:编写数据访问对象 在 dao 包中创建 EmployeeDao、SalaryRecordDao 和 DepartmentDao 等类,并实现相应的数据访问方法。例如,EmployeeDao 类包括添加员工、删除员工、更新员工信息、查询员工信息等方法。 步骤5:编写界面类 在 view 包中创建 LoginFrame、MainFrame 和 AddEmployeeFrame 等类,并实现相应的界面和事件处理方法。例如,LoginFrame 类用于显示登录界面,并处理用户登录事件;AddEmployeeFrame 类用于显示添加员工界面,并处理添加员工事件。 步骤6:连接数据库 使用 JDBC 连接 Mysql 数据库,为每个数据访问对象创建相应的连接和预编译语句,实现数据库的增删改查操作。 步骤7:测试程序 在 Eclipse 中运行程序,测试各个功能是否正常。例如,登录功能、员工信息查询功能、添加员工功能等。 总结 本文介绍了如何使用 Eclipse+Java+Swing+Mysql 实现员工工资管理系统。通过实现实体类、数据访问对象和界面类等模块,实现对员工信息、薪资、部门信息等数据的管理。这个项目可以作为 Java 开发入门的练手项目,帮助初学者熟悉 Java 开发Swing 界面设计和 Mysql 数据库操作等技术。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水坚石青

你的鼓励是我更新的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值