Java Topics
HubJava Collections FrameworkCollections Practice ProgramsComparable vs ComparatorGenericsIteratorArrayListLinkedListStackVectorHashMapHashtableLinkedHashMapTreeMapArrayDequeDeque Double-Ended QueuePriorityQueueHashSetLinkedHashSetTreeSetAdapter PatternBuilder PatternFactory PatternMVC PatternObserver PatternSingleton PatternDynamic ProgrammingGraphHashingHeapLinked List DSAQueue DSARecursionSearching AlgorithmsSorting AlgorithmsStack DSATime ComplexityTreesException Handling Best PracticesCustom ExceptionException Hierarchyfinally BlockException Handlingthrow aur throwstry-catchBuffered StreamsByte StreamsCharacter StreamsDeserializationFile ClassJava NIO New I/OSerializationArrays in JavaArray OperationsArray Practice ProgramsArray Interview QuestionsJagged ArrayMulti-Dimensional ArraysOne Dimensional Arraybreak aur continuedo-while Loopfor Loopif-else StatementsNested Loopsswitch-case Statementwhile LoopJava Compilation ProcessJava ki FeaturesPehla Java ProgramHistory of JavaJava EditionsJava Program StructureJDK, JRE aur JVMJava Kya Hai?Immutable StringsString Class in JavaString Interview QuestionsString MethodsString Practice ProgramsStringBufferStringBuilderComments in JavaData Types in JavaIdentifiers in JavaInput & Output in JavaJava KeywordsOperators in JavaType Casting in JavaVariables in JavaJava Coding Interview QuestionsCollections Interview QuestionsCore Java Interview QuestionsJDBC Interview QuestionsMultithreading Interview QuestionsOOPs Interview QuestionsSpring Framework Interview QuestionsJava 8 Date/Time APIDefault aur Static Methods in InterfaceFunctional InterfaceLambda ExpressionMethod ReferenceOptional ClassStream APIBatch ProcessingCallableStatementJDBC ArchitectureJDBC — Java Database ConnectivityJDBC Practice ProjectsMySQL ConnectionPreparedStatementResultSetStatement InterfaceTransaction ManagementCreating ThreadsDaemon ThreadExecutor FrameworkInter-Thread CommunicationMultithreading Practice ProgramsRunnable InterfaceSynchronizationThread ClassMultithreading IntroductionThread Life CycleThread PriorityJava Cheat SheetImportant Formulas & Key ConceptsImportant Java ProgramsJava Quick RevisionAbstract ClassAbstractionAnonymous ClassClass and ObjectConstructorEncapsulationInheritanceInner ClassInterfaceMethod OverloadingMethod OverridingObject ClassObject CloningObject-Oriented Programming OOPPolymorphismstatic Keywordsuper Keywordthis KeywordWrapper ClassesArray Practice ProgramsBasic Java Practice ProgramsCollection Practice ProgramsJDBC Practice ProgramsMultithreading Practice ProgramsOOPs Practice ProgramsPlacement Coding QuestionsString Practice ProgramsBanking SystemChat ApplicationE-Commerce Backend — Spring Boot REST APIEmployee Management SystemLibrary Management SystemSpring Boot Fullstack ProjectStudent Management SystemCookies in ServletExpression Language ELGenericServletHttpServletJavaServer Pages JSPJSP TagsMVC ArchitectureHttpServletRequest & HttpServletResponseServlet IntroductionServlet Life CycleSession TrackingDependency InjectionSpring BeansSpring CoreSpring FrameworkAPI GatewaySpring Cloud Config ServerDocker DeploymentEureka Server — Service DiscoverySpring Boot CRUD ApplicationException Handling in Spring BootJWT AuthenticationREST API in Spring BootSpring SecuritySpring BootSpring Data JPAValidation in Spring Boot
Employee Management System
Last Updated : 26 May, 2026
title: Employee Management System
Projects61 words5 headingsExamples included
title: Employee Management System description: Java aur JDBC se Employee Management System
Employees, departments aur salaries manage karne ka system.
Features
- Employee add, update, delete, search
- Department management
- Salary calculate karna (basic + allowances)
- Attendance track karna
- Payslip generate karna
- Department-wise report
Technology Stack
- Java SE 17+
- JDBC
- MySQL
Database Setup
sql exampleWoHoTech
CREATE DATABASE employee_db;
USE employee_db;
CREATE TABLE departments (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) UNIQUE NOT NULL,
manager_name VARCHAR(100)
);
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
emp_code VARCHAR(20) UNIQUE NOT NULL,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
phone VARCHAR(15),
designation VARCHAR(100),
department_id INT,
basic_salary DOUBLE,
joining_date DATE,
is_active BOOLEAN DEFAULT TRUE,
FOREIGN KEY (department_id) REFERENCES departments(id)
);
CREATE TABLE salary_records (
id INT PRIMARY KEY AUTO_INCREMENT,
employee_id INT,
month INT,
year INT,
basic DOUBLE,
hra DOUBLE,
da DOUBLE,
gross DOUBLE,
pf_deduction DOUBLE,
tax DOUBLE,
net_salary DOUBLE,
paid_date DATE,
FOREIGN KEY (employee_id) REFERENCES employees(id)
);Employee Model
package model;
import java.time.LocalDate;
public class Employee {
private int id;
private String empCode;
private String name;
private String email;
private String phone;
private String designation;
private int departmentId;
private String departmentName;
private double basicSalary;
private LocalDate joiningDate;
private boolean isActive;
public Employee() {}
public Employee(String name, String email, String designation,
int deptId, double basicSalary) {
this.name = name;
this.email = email;
this.designation = designation;
this.departmentId = deptId;
this.basicSalary = basicSalary;
this.joiningDate = LocalDate.now();
this.isActive = true;
this.empCode = "EMP" + System.currentTimeMillis() % 100000;
}
// Getters aur Setters
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getEmpCode() { return empCode; }
public void setEmpCode(String empCode) { this.empCode = empCode; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public String getPhone() { return phone; }
public void setPhone(String phone) { this.phone = phone; }
public String getDesignation() { return designation; }
public void setDesignation(String designation) { this.designation = designation; }
public int getDepartmentId() { return departmentId; }
public void setDepartmentId(int departmentId) { this.departmentId = departmentId; }
public String getDepartmentName() { return departmentName; }
public void setDepartmentName(String departmentName) { this.departmentName = departmentName; }
public double getBasicSalary() { return basicSalary; }
public void setBasicSalary(double basicSalary) { this.basicSalary = basicSalary; }
public LocalDate getJoiningDate() { return joiningDate; }
public void setJoiningDate(LocalDate joiningDate) { this.joiningDate = joiningDate; }
public boolean isActive() { return isActive; }
public void setActive(boolean active) { isActive = active; }
@Override
public String toString() {
return String.format("[%s] %-25s | %-20s | Dept: %-15s | Basic: Rs.%.2f",
empCode, name, designation, departmentName, basicSalary);
}
}
SalaryService — Payslip Generate
java exampleWoHoTech
package service;
import model.Employee;
public class SalaryService {
public double calculateHRA(double basic) { return basic * 0.20; }
public double calculateDA(double basic) { return basic * 0.15; }
public double calculatePF(double basic) { return basic * 0.12; }
public double calculateTax(double gross) {
if (gross <= 20000) return 0;
if (gross <= 40000) return gross * 0.05;
if (gross <= 60000) return gross * 0.10;
return gross * 0.20;
}
public void generatePayslip(Employee emp) {
double basic = emp.getBasicSalary();
double hra = calculateHRA(basic);
double da = calculateDA(basic);
double gross = basic + hra + da;
double pf = calculatePF(basic);
double tax = calculateTax(gross);
double net = gross - pf - tax;
System.out.println("=".repeat(50));
System.out.println(" SALARY SLIP");
System.out.println("=".repeat(50));
System.out.println("Employee: " + emp.getName());
System.out.println("Code: " + emp.getEmpCode());
System.out.println("Designation: " + emp.getDesignation());
System.out.println("-".repeat(50));
System.out.printf("Basic Salary: Rs. %10.2f%n", basic);
System.out.printf("HRA (20%%): Rs. %10.2f%n", hra);
System.out.printf("DA (15%%): Rs. %10.2f%n", da);
System.out.printf("Gross Salary: Rs. %10.2f%n", gross);
System.out.println("-".repeat(50));
System.out.printf("PF Deduction: Rs. %10.2f%n", pf);
System.out.printf("Tax: Rs. %10.2f%n", tax);
System.out.println("-".repeat(50));
System.out.printf("NET SALARY: Rs. %10.2f%n", net);
System.out.println("=".repeat(50));
}
}Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Employee Management System.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Java topic.
Search Terms
java, java programming, core java, java master course, java notes, master, course, projects
Related Java Topics
Continue learning this concept
ProjectsLibrary Management Systemtitle: Library Management SystemProjectsStudent Management Systemtitle: Student Management SystemProjectsBanking Systemtitle: Banking SystemProjectsChat Applicationtitle: Chat ApplicationProjectsE-Commerce Backend — Spring Boot REST APItitle: E-Commerce BackendProjectsSpring Boot Fullstack Projecttitle: Spring Boot Fullstack Project