Java实现增删改查系统代码(全~纯干货)

代码结构:

business 包

       EmployeeManager类

data包

       AccessFile类

ui包

      AddFrame类

     MainFrame类

vo包

      Employee类

效果展示:

 

EmployeeManager类:

package business;

import java.util.*;

import data.AccessFile;
import vo.Employee;

//实现所有的业务功能:新增员工,修改员工信息,删除员工信息,各种查询员工信息
public class EmployeeManager {
	
	AccessFile af;
	
	public EmployeeManager()
	{
		af=new AccessFile();
	}
	
	/**
	 * 新增员工
	 * @param e:待新增的员工对象
	 * @return:新增的结果的布尔值
	 */
	public boolean addEmployee(Employee e)
	{
		boolean result=false;
		try {
			//从文件读取集合,讲雇员加入集合,再将集合写入文件
			List employees=af.readFile();
			employees.add(e);
			af.writeFile(employees);
			result=true;
			
		} catch (Exception e2) {
			e2.printStackTrace();
		}
		return result;
	}
	//获取所有员工的信息
	public List getEmployees() {
		return af.readFile();
	}
	//根据id号进行查询
	public Employee findEmployeeByID(String id) {
		Employee employee=null;
		//得到所有员工
		List<Employee> employees=this.getEmployees();
		for (Employee ee : employees) {
			if (ee.getId().equals(id)) {
				employee=ee;
				break;
			}
		}
		
		return employee;
	}
	//根据name进行查询
	public List<Employee> findEmployeeByName(String name) {
		List<Employee> emps=new ArrayList<Employee>();
		//得到所有员工
		List<Employee> employees=this.getEmployees();
		for(Employee ee:employees) {
			if (ee.getName().contains(name)) {
				emps.add(ee);
			}
		}
		return emps;
	}
	//用性别查找
	public List<Employee> findEmployeeBysex(String sex) {
		List<Employee> emps=new ArrayList<Employee>();
		//得到所有员工
		List<Employee> employees=this.getEmployees();
		for(Employee ee:employees) {
			if (ee.getSex().equals(sex)) {
				emps.add(ee);
			}
		}
		return emps;
	}
	
	public boolean deleteEmployee(String id) {
		boolean result = false;
		try {
			List<Employee> employees = this.getEmployees();
			Employee e = this.findEmployeeByID(id);
			if(e == null) {
				return false;
			}
			for (int i = 0; i<employees.size();i++) {
				Employee ee = employees.get(i);
				if(ee.getId().equals(id)) {
					employees.remove(i);
					af.writeFile(employees);
					result = true;
					break;
				}
			}
		}catch(Exception ex) {
				ex.getStackTrace();
		}
		return result;
	}


	/**
	 * 修改雇员
	 * @param id:雇员id号
	 * @param newemp:新的雇员信息
	 * @return
	 */
	public boolean updateEmployee(String id, Employee newemp)
	{
		
		boolean result=false;
		try {
			List<Employee> employees=this.getEmployees();
			
			for(Employee ee:employees)
			{
				if(ee.getId().equals(id))
				{
					ee.setPost(newemp.getPost());
					ee.setName(newemp.getName());
					ee.setSex(newemp.getSex());
					ee.setDuty(newemp.getDuty());
					ee.setDegree(newemp.getDegree());
					ee.setDept(newemp.getDept());
					break;
				}
			}
			af.writeFile(employees);
			result=true;
			
		}catch(Exception ex)
		{
			ex.printStackTrace();
		}
		return result;
	}
}

  AccessFile类:

package data;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

//访问文件
public class AccessFile {
	public static final String FILENAME="D:\\employee.dat";
	
	/**
	 * 将集合employees写入文件
	 * @param employees:List集合对象
	 */
	public void writeFile(List employees)
	{
		//初始情况
		if(employees==null)
		{
			employees=new ArrayList();
		}
		
		try {
		    FileOutputStream fout=new FileOutputStream(FILENAME);//节点流
		    ObjectOutputStream objout=new ObjectOutputStream(fout);//处理流
		    
		    objout.writeObject(employees);//将集合对象写入文件
		    objout.flush();
		    objout.close();
		    		    
		}catch(Exception ex)
		{
			ex.printStackTrace();
		}
	}

	/**
	 * 读文件
	 * @return:返回读出的集合对象
	 */
	public List readFile()
	{
		List employees=null;
		try
		{
			File file=new File(FILENAME);
			if(file.exists()==false)//文件不存在
			{
				this.writeFile(null);//利用写文件的方法来创建文件
			}
			
			if(file.length()==0)//文件存在,但是文件是空的
			{
				return employees;
			}
			
			FileInputStream fin=new FileInputStream(file);//节点流
			ObjectInputStream objin=new ObjectInputStream(fin);//处理流
			
			employees=(List)objin.readObject();
			
			objin.close();			
		}catch(Exception ex)
		{
			ex.printStackTrace();
		}
		
		return employees;
	}

}

 

  AddFrame类:

package ui;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTabbedPane;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JPasswordField;
import javax.swing.JEditorPane;
import java.awt.event.ActionListener;
import java.util.List;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.border.EtchedBorder;

import business.EmployeeManager;
import data.AccessFile;
import vo.Employee;

import java.awt.Font;
import javax.swing.JTextPane;
import javax.swing.AbstractButton;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JScrollBar;
import javax.swing.JProgressBar;
import javax.swing.ImageIcon;

public class AddFrame extends JFrame {

	private JPanel contentPane;
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_2;
	private JTextField textField_3;
	private JTextField textField_4;
	private final JButton btnNewButton = new JButton("\u4FDD\u5B58");
	private JTextField textField_5;
	JComboBox comboBox_2,comboBox_3,comboBox_1,comboBox,comboBox_4;

	EmployeeManager em;
	AccessFile af;
	String id;

	
	public AddFrame(String id)
	{
		this();//调用不带参的构造方法
		//获取传递过来的id
		this.id=id;
		//将id赋给文本框
		this.textField.setText(id);
		//根据id号找到雇员
		Employee e=em.findEmployeeByID(id);
		//将原来雇员的信息填充到相应的组件上
		textField_4.setText(e.getName());
	    comboBox_2.setSelectedItem(e.getSex());
	    comboBox_3.setSelectedItem(e.getDept()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值