You are on page 1of 11

Java Major Project

Name- Ramya M
USN - 1DS20IS078

Employee.java

package com.employermanagement.system.model;
public class Employee {
private int employeeId;
private String name;
private double salary;
private String email;
public Employee() {
}
public Employee(int employeeId, String name, double salary, String email) {
this.employeeId = employeeId;
this.name = name;
this.salary = salary;
this.email = email;
}
public int getEmployeeId() {
return employeeId;
}
public void setEmployeeId(int employeeId) {
this.employeeId = employeeId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Employee{" +
"employeeId=" + employeeId +
", name='" + name + '\'' +
", salary=" + salary +
", email='" + email + '\'' +
'}';
}
}

EmployeeDao.java
package com.employermanagement.system.dao;
import com.employermanagement.system.model.Employee;
import java.util.List;
public interface EmployeeDao {
void createEmployeeTable();
void insertEmployee(Employee employee);
List<Employee> selectAllEmployees();
void updateEmployee(Employee employee);
void deleteEmployee(int employeeId);
void createEmployeeNameProcedure();
Employee getTopSalariedEmployee();
}

EmployeeDaoImpl.java

package com.employermanagement.system.dao;
import com.employermanagement.system.model.Employee;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class EmployeeDaoImpl implements EmployeeDao {
private static final String URL = "jdbc:oracle:thin:@localhost:1522:xe";
private static final String USERNAME = "system";
private static final String PASSWORD = "SYS";
@Override
public void createEmployeeTable() {
try (Connection conn = DriverManager.getConnection(URL, USERNAME,
PASSWORD);
Statement stmt = conn.createStatement()) {
String sql = "CREATE TABLE Employee (" +
"employeeId INT PRIMARY KEY," +
"name VARCHAR(255)," +
"salary NUMBER," +
"email VARCHAR(255)" +
")";
stmt.executeUpdate(sql);
System.out.println("Employee table created successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void insertEmployee(Employee employee) {
try (Connection conn = DriverManager.getConnection(URL, USERNAME,
PASSWORD);
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO
Employee VALUES (?, ?, ?, ?)")) {
pstmt.setInt(1, employee.getEmployeeId());
pstmt.setString(2, employee.getName());
pstmt.setDouble(3, employee.getSalary());
pstmt.setString(4, employee.getEmail());
pstmt.executeUpdate();
System.out.println("Employee record inserted successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public List<Employee> selectAllEmployees() {
List<Employee> employees = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(URL, USERNAME,
PASSWORD);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Employee")) {
while (rs.next()) {
Employee employee = new Employee();
employee.setEmployeeId(rs.getInt("employeeId"));
employee.setName(rs.getString("name"));
employee.setSalary(rs.getDouble("salary"));
employee.setEmail(rs.getString("email"));
employees.add(employee);
}
} catch (SQLException e) {
e.printStackTrace();
}
return employees;
}
@Override
public void updateEmployee(Employee employee) {
try (Connection conn = DriverManager.getConnection(URL, USERNAME,
PASSWORD);
PreparedStatement pstmt = conn.prepareStatement("UPDATE Employee
SET name=?, salary=?, email=? WHERE employeeId=?")) {
pstmt.setString(1, employee.getName());
pstmt.setDouble(2, employee.getSalary());
pstmt.setString(3, employee.getEmail());
pstmt.setInt(4, employee.getEmployeeId());
pstmt.executeUpdate();
System.out.println("Employee record updated successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void deleteEmployee(int employeeId) {
try (Connection conn = DriverManager.getConnection(URL, USERNAME,
PASSWORD);
PreparedStatement pstmt = conn.prepareStatement("DELETE FROM
Employee WHERE employeeId=?")) {
pstmt.setInt(1, employeeId);
pstmt.executeUpdate();
System.out.println("Employee record deleted successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override

public void createEmployeeNameProcedure() {


try (Connection conn = DriverManager.getConnection(URL, USERNAME,
PASSWORD);
Statement stmt = conn.createStatement()) {
String sql = "CREATE OR REPLACE PROCEDURE get_employee_name_by_id
(p_employee_id IN NUMBER, p_employee_name OUT VARCHAR2) "
+ "AS "
+ "BEGIN "
+ " SELECT name INTO p_employee_name FROM Employee WHERE
employeeId = p_employee_id; "
+ "END;";
stmt.execute(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public Employee getTopSalariedEmployee() {
Employee topSalariedEmployee = null;
String query = "SELECT * FROM Employee ORDER BY salary DESC FETCH FIRST
1 ROW ONLY";
try (Connection conn = DriverManager.getConnection(URL, USERNAME,
PASSWORD);
PreparedStatement pstmt = conn.prepareStatement(query);
ResultSet rs = pstmt.executeQuery()) {
if (rs.next()) {

int employeeId = rs.getInt("employeeId");


String name = rs.getString("name");
double salary = rs.getDouble("salary");
String email = rs.getString("email");

topSalariedEmployee = new Employee(employeeId, name, salary,


email);
}
} catch (SQLException e) {
e.printStackTrace();
}
return topSalariedEmployee;
}

EmployeeService.java

package com.employermanagement.system.service;
import com.employermanagement.system.dao.EmployeeDao;
import com.employermanagement.system.dao.EmployeeDaoImpl;
import com.employermanagement.system.model.Employee;
import java.util.List;
import java.util.Scanner;
public class EmployeeService {
private EmployeeDao employeeDao;
public EmployeeService() {
this.employeeDao = new EmployeeDaoImpl();
}
public boolean authenticate(String username, String password) {
if (username.equals("Ramya") && password.equals("123")) {
return true;
} else {
return false;
}
}
public void performAction(int option) {
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
switch (option) {
case 1:
employeeDao.createEmployeeTable();
break;
case 2:
System.out.println("Enter employee details:");
System.out.print("Employee ID: ");
int empId = scanner.nextInt();
scanner.nextLine();
System.out.print("Name: ");
String name = scanner.nextLine();
System.out.print("Salary: ");
double salary = scanner.nextDouble();
scanner.nextLine();
System.out.print("Email: ");
String email = scanner.nextLine();
Employee employee = new Employee(empId, name, salary, email);
employeeDao.insertEmployee(employee);
break;
case 3:
List<Employee> employees = employeeDao.selectAllEmployees();
System.out.println("All Employees:");
for (Employee emp : employees) {
System.out.println(emp);
}
break;
case 4:

System.out.print("Enter employee ID to update: ");


int idToUpdate = scanner.nextInt();
scanner.nextLine(); // Consume newline
Employee employeeToUpdate =
employeeDao.selectAllEmployees().stream()
.filter(emp -> emp.getEmployeeId() == idToUpdate)
.findFirst().orElse(null);
if (employeeToUpdate != null) {
System.out.println("Enter updated details for employee ID "
+ idToUpdate + ":");
System.out.print("Name: ");
String updatedName = scanner.nextLine();
System.out.print("Salary: ");
double updatedSalary = scanner.nextDouble();
scanner.nextLine();
System.out.print("Email: ");
String updatedEmail = scanner.nextLine();
employeeToUpdate.setName(updatedName);
employeeToUpdate.setSalary(updatedSalary);
employeeToUpdate.setEmail(updatedEmail);
employeeDao.updateEmployee(employeeToUpdate);
} else {
System.out.println("Employee with ID " + idToUpdate + " not
found.");
}
break;
case 5:
System.out.print("Enter employee ID to delete: ");
int idToDelete = scanner.nextInt();
employeeDao.deleteEmployee(idToDelete);
break;
case 6:
System.out.println("Creating stored procedure..");
employeeDao.createEmployeeNameProcedure();
System.out.println("Stored procedure created successfully.");
break;

case 7:
// Read the details of the top salaried employee
Employee topSalariedEmployee =
employeeDao.getTopSalariedEmployee();
if (topSalariedEmployee != null) {
System.out.println("Details of the top salaried
employee:");
System.out.println("Employee ID: " +
topSalariedEmployee.getEmployeeId());
System.out.println("Name: " +
topSalariedEmployee.getName());
System.out.println("Salary: " +
topSalariedEmployee.getSalary());
System.out.println("Email: " +
topSalariedEmployee.getEmail());
} else {
System.out.println("No employees found.");
}
break;
default:
System.out.println("Invalid option. Please choose a valid
option.");
}
}

public static void main(String[] args) {


EmployeeService employeeService = new EmployeeService();
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
System.out.println("Enter username:");
String username = scanner.nextLine();
System.out.println("Enter password:");
String password = scanner.nextLine();
if (!employeeService.authenticate(username, password)) {
System.out.println("Authentication failed!");
return;
}
System.out.println("Authentication successful!");
while (true) {
System.out.println("\nSelect an option:");
System.out.println("1) Create Employee table");
System.out.println("2) Insert Record for employees");
System.out.println("3) Select all employee details");
System.out.println("4) Update the employee details for a particular
employee");
System.out.println("5) Delete the details of a particular
employee");
System.out.println("6) Create a stored procedure in Oracle to
return the name of an employee by giving the id");
System.out.println("7)Read the details of the top salaried employee");
System.out.println("0) Exit");
int option = scanner.nextInt();
if (option == 0) {
System.out.println("Exiting...");
break;
}
employeeService.performAction(option);
}
}
}

You might also like