From 543da4f9deb639994badf230ffbff5e001286deb Mon Sep 17 00:00:00 2001 From: Madhav Subedi Date: Thu, 19 May 2016 15:15:51 +0545 Subject: [PATCH 1/5] #2 #3 #4 Completes 2/3/4 assignments --- .../com/lftechnology/phpjava/main/Runner.java | 12 ++++++ .../lftechnology/phpjava/main/Scanner.java | 9 +++++ .../com/lftechnology/phpjava/main/Task.java | 28 ++++++++++++++ .../lftechnology/phpjava/main/views/Menu.java | 21 +++++++++++ .../phpjava/numbers/AddMultiples.java | 26 +++++++++++++ .../phpjava/numbers/Fibonacci.java | 26 +++++++++++++ .../phpjava/strings/NameSplitter.java | 37 +++++++++++++++++++ .../com/lftechnology/phpjava/two/MyClass.java | 27 -------------- 8 files changed, 159 insertions(+), 27 deletions(-) create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/main/Runner.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/main/Scanner.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/main/Task.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/main/views/Menu.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/numbers/AddMultiples.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/numbers/Fibonacci.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/strings/NameSplitter.java delete mode 100644 madhav/src/main/java/com/lftechnology/phpjava/two/MyClass.java diff --git a/madhav/src/main/java/com/lftechnology/phpjava/main/Runner.java b/madhav/src/main/java/com/lftechnology/phpjava/main/Runner.java new file mode 100644 index 0000000..d912e87 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/main/Runner.java @@ -0,0 +1,12 @@ +package main.java.com.lftechnology.phpjava.main; + +import main.java.com.lftechnology.phpjava.main.views.Menu; + +public class Runner { + + public static void main(String[] args) { + int menu = Menu.getMenu(); + Task t = new Task(); + t.runTask(menu); + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/main/Scanner.java b/madhav/src/main/java/com/lftechnology/phpjava/main/Scanner.java new file mode 100644 index 0000000..fb71128 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/main/Scanner.java @@ -0,0 +1,9 @@ +package main.java.com.lftechnology.phpjava.main; + +public class Scanner { + private static java.util.Scanner reader = new java.util.Scanner(System.in);; + + public static java.util.Scanner get() { + return reader; + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/main/Task.java b/madhav/src/main/java/com/lftechnology/phpjava/main/Task.java new file mode 100644 index 0000000..bcf7bd0 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/main/Task.java @@ -0,0 +1,28 @@ +package main.java.com.lftechnology.phpjava.main; + +import main.java.com.lftechnology.phpjava.numbers.AddMultiples; +import main.java.com.lftechnology.phpjava.numbers.Fibonacci; +import main.java.com.lftechnology.phpjava.strings.NameSplitter; + +public class Task { + public void runTask(int taskNumber) { + switch (taskNumber) { + case 1: + NameSplitter ns = new NameSplitter(); + ns.getAndExtractname(); + break; + case 2: + AddMultiples am = new AddMultiples(); + am.getMultiples(); + break; + case 3: + Fibonacci f = new Fibonacci(); + f.getFibonacciSum(); + break; + case 0: + default: + System.out.println("Bye!"); + System.exit(0); + } + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/main/views/Menu.java b/madhav/src/main/java/com/lftechnology/phpjava/main/views/Menu.java new file mode 100644 index 0000000..f4156cb --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/main/views/Menu.java @@ -0,0 +1,21 @@ +package main.java.com.lftechnology.phpjava.main.views; + +import main.java.com.lftechnology.phpjava.main.Scanner; + +public class Menu { + public static String[] menu = { + "1. Extract salutation from name", + "2. Check sum of multiples", + "3. Find sum of fibonaccis", + "0. Exit" + }; + + public static int getMenu() { + System.out.println("Please enter the action to perform:"); + for (String option : menu) { + System.out.println(option); + } + int option = Scanner.get().nextInt(); + return option; + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/numbers/AddMultiples.java b/madhav/src/main/java/com/lftechnology/phpjava/numbers/AddMultiples.java new file mode 100644 index 0000000..d7705f9 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/numbers/AddMultiples.java @@ -0,0 +1,26 @@ +package main.java.com.lftechnology.phpjava.numbers; + +import main.java.com.lftechnology.phpjava.main.Scanner; + +public class AddMultiples { + + /** + * Gets three inputs - limit, number1, and number2 from user. + * Then displays sum of all multiples of either number1 or number2 below the limit. + */ + public void getMultiples() { + System.out.println("Enter the limit:"); + int max = Scanner.get().nextInt(); + System.out.println("Enter the first number:"); + int num1 = Scanner.get().nextInt(); + System.out.println("Enter the second number:"); + int num2 = Scanner.get().nextInt(); + int sum = 0; + for (int i = 0; i < max; i++) { + if (i % 3 == 0 || i % 5 == 0) { + sum += i; + } + } + System.out.println("Sum of " + num1 + " and " + num2 + "'s multiples upto " + max + ": " + sum); + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/numbers/Fibonacci.java b/madhav/src/main/java/com/lftechnology/phpjava/numbers/Fibonacci.java new file mode 100644 index 0000000..4490569 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/numbers/Fibonacci.java @@ -0,0 +1,26 @@ +package main.java.com.lftechnology.phpjava.numbers; + +import main.java.com.lftechnology.phpjava.main.Scanner; + +public class Fibonacci { + + /** + * Displays sum of all even fibonacci numbers within given range + */ + public void getFibonacciSum() { + System.out.println("Enter the limit:"); + int max = Scanner.get().nextInt(); + int f = 1; + int sum = 0; + int i = 0; + while(f + i < max) { + int j = f; + f = i + f; + i = j; + if(f % 2 == 0) { + sum += f; + } + } + System.out.println("Sum of even fibonaccis upto " + max + ": " + sum); + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/strings/NameSplitter.java b/madhav/src/main/java/com/lftechnology/phpjava/strings/NameSplitter.java new file mode 100644 index 0000000..276356d --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/strings/NameSplitter.java @@ -0,0 +1,37 @@ +package main.java.com.lftechnology.phpjava.strings; + +import main.java.com.lftechnology.phpjava.main.Scanner; + +/** + * + * @author madhav + * + */ +public class NameSplitter { + /** + * Gets input from user(in console) assumed to be full name, and displays extracted salutation and name + * + * @author madhav + */ + public void getAndExtractname() { + String allName = ""; + + while (allName == "") { + System.out.println("Enter Your Name(with Salutation): "); + allName = Scanner.get().nextLine(); + allName = allName.trim(); + String[] nameParts = allName.split(" "); + if (nameParts.length < 2) { + continue; + } + String salutation = nameParts[0]; + String fullName = ""; + for (int i = 1; i < nameParts.length; i++) { + fullName += nameParts[i] + " "; + } + fullName = fullName.trim(); + System.out.println("Salutation: " + salutation); + System.out.println("Name: " + fullName); + } + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/two/MyClass.java b/madhav/src/main/java/com/lftechnology/phpjava/two/MyClass.java deleted file mode 100644 index 352c762..0000000 --- a/madhav/src/main/java/com/lftechnology/phpjava/two/MyClass.java +++ /dev/null @@ -1,27 +0,0 @@ -package main.java.com.lftechnology.phpjava.two; - -import java.util.Scanner; -import java.util.StringTokenizer; - -import main.java.com.lftechnology.phpjava.one.PublicClass; - -public class MyClass { - public static void main(String[] args) { - /* assignment 1 */ - int sum = 0; - for(int i = 0; i < 100; i++) { - if(i % 3 == 0 || i % 5 == 0) { - sum += i; - } - } - System.out.println("Sum of 3/5's multiples:"+sum); - - /* assignment 2 */ - Scanner reader = new Scanner(System.in); // Reading from System.in - System.out.print("Enter Your Name(with Salutation): "); - String allName = reader.nextLine(); - String[] nameParts = allName.split(" "); - System.out.println(nameParts[0]); - System.out.println(nameParts[1]); - } -} From b8b048b07e92c2857f4437b229ccb7f10d844f8f Mon Sep 17 00:00:00 2001 From: Madhav Subedi Date: Thu, 11 Aug 2016 10:41:07 +0545 Subject: [PATCH 2/5] Old assignments --- .../phpjava/arrays/DayOfWeek.java | 35 +++++++++++++++++++ .../com/lftechnology/phpjava/main/Task.java | 5 +++ .../lftechnology/phpjava/main/views/Menu.java | 1 + 3 files changed, 41 insertions(+) create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/arrays/DayOfWeek.java diff --git a/madhav/src/main/java/com/lftechnology/phpjava/arrays/DayOfWeek.java b/madhav/src/main/java/com/lftechnology/phpjava/arrays/DayOfWeek.java new file mode 100644 index 0000000..075357e --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/arrays/DayOfWeek.java @@ -0,0 +1,35 @@ +package main.java.com.lftechnology.phpjava.arrays; + +import java.util.HashMap; +import java.util.Map; + +import main.java.com.lftechnology.phpjava.main.Scanner; + +public class DayOfWeek { + private Map weekdays = new HashMap(); + + public DayOfWeek() { + weekdays.put(1, "Sunday"); + weekdays.put(2, "Monday"); + weekdays.put(3, "Tuesday"); + weekdays.put(4, "Wednesday"); + weekdays.put(5, "Thursday"); + weekdays.put(6, "Friday"); + weekdays.put(7, "Saturday"); + } + + /** + * Gets input from user(in console), and displays associated day of week name + * + * @author madhav + */ + public void findDayOfWeek() { + System.out.println("Enter day of week number:"); + int day = Scanner.get().nextInt(); + if (weekdays.containsKey(day)) { + System.out.println("Day is: " + weekdays.get(day)); + } else { + System.out.println("Not a valid day."); + } + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/main/Task.java b/madhav/src/main/java/com/lftechnology/phpjava/main/Task.java index bcf7bd0..12cb5ba 100644 --- a/madhav/src/main/java/com/lftechnology/phpjava/main/Task.java +++ b/madhav/src/main/java/com/lftechnology/phpjava/main/Task.java @@ -1,5 +1,6 @@ package main.java.com.lftechnology.phpjava.main; +import main.java.com.lftechnology.phpjava.arrays.DayOfWeek; import main.java.com.lftechnology.phpjava.numbers.AddMultiples; import main.java.com.lftechnology.phpjava.numbers.Fibonacci; import main.java.com.lftechnology.phpjava.strings.NameSplitter; @@ -19,6 +20,10 @@ public void runTask(int taskNumber) { Fibonacci f = new Fibonacci(); f.getFibonacciSum(); break; + case 4: + DayOfWeek d = new DayOfWeek(); + d.findDayOfWeek(); + break; case 0: default: System.out.println("Bye!"); diff --git a/madhav/src/main/java/com/lftechnology/phpjava/main/views/Menu.java b/madhav/src/main/java/com/lftechnology/phpjava/main/views/Menu.java index f4156cb..38081e3 100644 --- a/madhav/src/main/java/com/lftechnology/phpjava/main/views/Menu.java +++ b/madhav/src/main/java/com/lftechnology/phpjava/main/views/Menu.java @@ -7,6 +7,7 @@ public class Menu { "1. Extract salutation from name", "2. Check sum of multiples", "3. Find sum of fibonaccis", + "4. Get day of week", "0. Exit" }; From d690e99bad5c7219eecdf9dc63203b7feab9b9bc Mon Sep 17 00:00:00 2001 From: Madhav Subedi Date: Fri, 12 Aug 2016 03:10:26 +0545 Subject: [PATCH 3/5] Completes login and prepares the outline for employee menu --- .../phpjava/empmgmt/controller/Employee.java | 38 +++++++++++++++++++ .../phpjava/empmgmt/dao/DBConnection.java | 26 +++++++++++++ .../phpjava/empmgmt/dao/LoginDao.java | 38 +++++++++++++++++++ .../phpjava/empmgmt/service/IOService.java | 16 ++++++++ .../phpjava/empmgmt/service/LoginService.java | 19 ++++++++++ .../phpjava/empmgmt/utils/Task.java | 26 +++++++++++++ .../phpjava/empmgmt/view/LoginView.java | 16 ++++++++ .../phpjava/empmgmt/view/MenuView.java | 29 ++++++++++++++ .../phpjava/one/DefaultClass.java | 6 +-- 9 files changed, 211 insertions(+), 3 deletions(-) create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/Employee.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/DBConnection.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/IOService.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/LoginService.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Task.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/LoginView.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/MenuView.java diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/Employee.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/Employee.java new file mode 100644 index 0000000..d82416a --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/Employee.java @@ -0,0 +1,38 @@ +package main.java.com.lftechnology.phpjava.empmgmt.controller; + +import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; +import main.java.com.lftechnology.phpjava.empmgmt.service.LoginService; +import main.java.com.lftechnology.phpjava.empmgmt.utils.Task; +import main.java.com.lftechnology.phpjava.empmgmt.view.LoginView; +import main.java.com.lftechnology.phpjava.empmgmt.view.MenuView; + +public class Employee { + + public static void main(String[] args) { + LoginView lv = new LoginView(); + String[] loginData = lv.login(); + LoginService ls = new LoginService(loginData[0], loginData[1]); + String role = ls.checkLogin(); + if (role == "") { + IOService.output("Invalid Login, exiting"); + System.exit(0); + } + MenuView menu = new MenuView(role); + String option = menu.getMenu(); + + Task.runTask(option); + } + + public void listEmployees() { + + } + + public void addEmployee() { + + } + + public void deleteEmployee() { + + } + +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/DBConnection.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/DBConnection.java new file mode 100644 index 0000000..0946735 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/DBConnection.java @@ -0,0 +1,26 @@ +package main.java.com.lftechnology.phpjava.empmgmt.dao; + +import java.sql.Connection; +import java.sql.DriverManager; + +import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; + +public class DBConnection { + private String dbuser = "root"; + private String dbpass = "root"; + private String database = "jdbc:mysql://localhost:3306/empmgmt"; + public DBConnection(){ + + } + public Connection getConnection(){ + Connection conn = null; + try { + Class.forName("com.mysql.jdbc.Driver"); + conn = DriverManager.getConnection(this.database, this.dbuser, this.dbpass); + } catch(Exception e) { + IOService.output(e.getMessage()); + } + return conn; + } + +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java new file mode 100644 index 0000000..fe1a162 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java @@ -0,0 +1,38 @@ +package main.java.com.lftechnology.phpjava.empmgmt.dao; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; + +public class LoginDao { + private Connection conn; + public LoginDao() { + DBConnection dbconn = new DBConnection(); + conn = dbconn.getConnection(); + } + + public String getUserRole(String username, String password) { + PreparedStatement pst = null; + String sql = "SELECT * FROM user WHERE username=? AND password=?"; + try { + pst = conn.prepareStatement(sql); + + pst.setString(1, username); + pst.setString(2, password); + + ResultSet rs = pst.executeQuery(); + + if (rs.next()) { + return rs.getString(4); + } else { + return null; + } + + } catch (Exception e) { + IOService.output(e.getMessage()); + } + return ""; + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/IOService.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/IOService.java new file mode 100644 index 0000000..a8c3325 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/IOService.java @@ -0,0 +1,16 @@ +package main.java.com.lftechnology.phpjava.empmgmt.service; + +import java.util.Scanner; + +public class IOService { + + public static String input() { + Scanner reader = new Scanner(System.in); + String input = reader.nextLine(); + return input; + } + + public static void output(String message){ + System.out.println(message); + } +} \ No newline at end of file diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/LoginService.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/LoginService.java new file mode 100644 index 0000000..700aefe --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/LoginService.java @@ -0,0 +1,19 @@ +package main.java.com.lftechnology.phpjava.empmgmt.service; + +import main.java.com.lftechnology.phpjava.empmgmt.dao.LoginDao; + +public class LoginService { + public String username; + public String password; + + public LoginService(String username, String password) { + this.username = username; + this.password = password; + } + + public String checkLogin() { + LoginDao loginDao = new LoginDao(); + String role = loginDao.getUserRole(this.username, this.password); + return role; + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Task.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Task.java new file mode 100644 index 0000000..1824f07 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Task.java @@ -0,0 +1,26 @@ +package main.java.com.lftechnology.phpjava.empmgmt.utils; + +import main.java.com.lftechnology.phpjava.empmgmt.controller.Employee; +import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; + +public class Task { + public static void runTask(String taskNumber) { + Employee e = new Employee(); + + switch (taskNumber) { + case "1": + e.listEmployees(); + break; + case "2": + e.addEmployee(); + break; + case "3": + e.deleteEmployee(); + break; + case "0": + default: + IOService.output("Exiting"); + System.exit(0); + } + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/LoginView.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/LoginView.java new file mode 100644 index 0000000..eee1ea2 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/LoginView.java @@ -0,0 +1,16 @@ +package main.java.com.lftechnology.phpjava.empmgmt.view; +import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; + +public class LoginView { + public String[] login() { + String[] loginData = new String[2]; + IOService.output("Enter username:"); + String username = IOService.input(); + IOService.output("Enter password:"); + String password = IOService.input(); + loginData[0] = username; + loginData[1] = password; + + return loginData; + } +} \ No newline at end of file diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/MenuView.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/MenuView.java new file mode 100644 index 0000000..ac4f736 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/MenuView.java @@ -0,0 +1,29 @@ +package main.java.com.lftechnology.phpjava.empmgmt.view; + +import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; +import main.java.com.lftechnology.phpjava.main.Scanner; + +public class MenuView { + private String role; + private String[] adminMenu = { "1. List Employees", "2. Add Employee", "3. Delete Employee", "0. Exit" }; + private String[] normalMenu = { "1. List Employees", "0. Exit" }; + private String[] currentMenu; + + public MenuView(String role) { + this.role = role; + if (this.role == "admin") { + this.currentMenu = this.adminMenu; + } else { + this.currentMenu = this.normalMenu; + } + } + + public String getMenu() { + System.out.println("Please enter the action to perform:"); + for (String option : this.currentMenu) { + System.out.println(option); + } + String option = IOService.input(); + return option; + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/one/DefaultClass.java b/madhav/src/main/java/com/lftechnology/phpjava/one/DefaultClass.java index 905ea28..4e370ae 100644 --- a/madhav/src/main/java/com/lftechnology/phpjava/one/DefaultClass.java +++ b/madhav/src/main/java/com/lftechnology/phpjava/one/DefaultClass.java @@ -1,7 +1,7 @@ package main.java.com.lftechnology.phpjava.one; class DefaultClass { - public void outputString() { - System.out.println("Output from method of default class"); - } + public void outputString() { + System.out.println("Output from method of default class"); + } } From 684672a293d362f0e2639d0c4350dbb025f4dbc0 Mon Sep 17 00:00:00 2001 From: Madhav Subedi Date: Fri, 19 Aug 2016 11:34:37 +0545 Subject: [PATCH 4/5] Completes CRUD with user role separation --- madhav/pom.xml | 26 +++++-- .../phpjava/empmgmt/config/db.properties | 4 + .../controller/EmployeeController.java | 44 +++++++++++ .../{Employee.java => LoginController.java} | 25 +------ .../empmgmt/controller/MenuController.java | 14 ++++ .../phpjava/empmgmt/dao/DBConnection.java | 14 ++-- .../phpjava/empmgmt/dao/EmpDao.java | 75 +++++++++++++++++++ .../phpjava/empmgmt/dao/LoginDao.java | 3 + .../phpjava/empmgmt/service/EmpService.java | 47 ++++++++++++ .../phpjava/empmgmt/utils/Session.java | 5 ++ .../phpjava/empmgmt/utils/Task.java | 4 +- .../phpjava/empmgmt/view/EmpView.java | 32 ++++++++ .../phpjava/empmgmt/view/MenuView.java | 19 ++--- 13 files changed, 266 insertions(+), 46 deletions(-) create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/config/db.properties create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/EmployeeController.java rename madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/{Employee.java => LoginController.java} (57%) create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/MenuController.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/EmpDao.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/EmpService.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Session.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/EmpView.java diff --git a/madhav/pom.xml b/madhav/pom.xml index 84c095b..83edf4d 100644 --- a/madhav/pom.xml +++ b/madhav/pom.xml @@ -1,9 +1,19 @@ - - 4.0.0 - - com.lftechnology.phpjava - phpjava - 1.0.0 - - madhav + + 4.0.0 + + com.lftechnology.phpjava + phpjava + 1.0.0 + + madhav + + + + mysql + mysql-connector-java + 5.1.39 + + + \ No newline at end of file diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/config/db.properties b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/config/db.properties new file mode 100644 index 0000000..e2432e0 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/config/db.properties @@ -0,0 +1,4 @@ +database=jdbc:mysql://localhost:3306/empmgmt +driver=com.mysql.jdbc.Driver +user=root +pass=root \ No newline at end of file diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/EmployeeController.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/EmployeeController.java new file mode 100644 index 0000000..7300532 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/EmployeeController.java @@ -0,0 +1,44 @@ +package main.java.com.lftechnology.phpjava.empmgmt.controller; + +import java.sql.ResultSet; + +import main.java.com.lftechnology.phpjava.empmgmt.service.EmpService; +import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; +import main.java.com.lftechnology.phpjava.empmgmt.service.LoginService; +import main.java.com.lftechnology.phpjava.empmgmt.utils.Session; +import main.java.com.lftechnology.phpjava.empmgmt.utils.Task; +import main.java.com.lftechnology.phpjava.empmgmt.view.EmpView; +import main.java.com.lftechnology.phpjava.empmgmt.view.LoginView; +import main.java.com.lftechnology.phpjava.empmgmt.view.MenuView; + +public class EmployeeController { + public static void main(String[] args) { + Session.role = LoginController.Login(); + MenuController.showMenu(); + } + + public void listEmployees() { + EmpService es = new EmpService(); + ResultSet rs = es.listEmployees(); + EmpView ev = new EmpView(); + ev.list(rs); + MenuController.showMenu(); + } + + public void addEmployee() { + EmpView ev = new EmpView(); + String[] empData = ev.add(); + EmpService es = new EmpService(); + es.addEmployee(empData); + MenuController.showMenu(); + } + + public void deleteEmployee() { + EmpView ev = new EmpView(); + String empname = ev.delete(); + EmpService es = new EmpService(); + es.deleteEmployee(empname); + MenuController.showMenu(); + } + +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/Employee.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/LoginController.java similarity index 57% rename from madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/Employee.java rename to madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/LoginController.java index d82416a..460bbe4 100644 --- a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/Employee.java +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/LoginController.java @@ -2,13 +2,10 @@ import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; import main.java.com.lftechnology.phpjava.empmgmt.service.LoginService; -import main.java.com.lftechnology.phpjava.empmgmt.utils.Task; import main.java.com.lftechnology.phpjava.empmgmt.view.LoginView; -import main.java.com.lftechnology.phpjava.empmgmt.view.MenuView; -public class Employee { - - public static void main(String[] args) { +public class LoginController { + public static String Login(){ LoginView lv = new LoginView(); String[] loginData = lv.login(); LoginService ls = new LoginService(loginData[0], loginData[1]); @@ -17,22 +14,6 @@ public static void main(String[] args) { IOService.output("Invalid Login, exiting"); System.exit(0); } - MenuView menu = new MenuView(role); - String option = menu.getMenu(); - - Task.runTask(option); - } - - public void listEmployees() { - - } - - public void addEmployee() { - - } - - public void deleteEmployee() { - + return role; } - } diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/MenuController.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/MenuController.java new file mode 100644 index 0000000..07050a8 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/MenuController.java @@ -0,0 +1,14 @@ +package main.java.com.lftechnology.phpjava.empmgmt.controller; + +import main.java.com.lftechnology.phpjava.empmgmt.utils.Session; +import main.java.com.lftechnology.phpjava.empmgmt.utils.Task; +import main.java.com.lftechnology.phpjava.empmgmt.view.MenuView; + +public class MenuController { + public static void showMenu() { + String role = Session.role; + MenuView menu = new MenuView(role); + String option = menu.getMenu(); + Task.runTask(option); + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/DBConnection.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/DBConnection.java index 0946735..c6ad705 100644 --- a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/DBConnection.java +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/DBConnection.java @@ -1,22 +1,26 @@ package main.java.com.lftechnology.phpjava.empmgmt.dao; +import java.io.FileInputStream; +import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; +import java.util.Properties; import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; public class DBConnection { - private String dbuser = "root"; - private String dbpass = "root"; - private String database = "jdbc:mysql://localhost:3306/empmgmt"; public DBConnection(){ } public Connection getConnection(){ + Properties properties = new Properties(); Connection conn = null; try { - Class.forName("com.mysql.jdbc.Driver"); - conn = DriverManager.getConnection(this.database, this.dbuser, this.dbpass); + String filePath = "src/main/java/com/lftechnology/phpjava/empmgmt/config/db.properties"; + InputStream input = new FileInputStream(filePath); + properties.load(input); + Class.forName(properties.getProperty("driver")); + conn = DriverManager.getConnection(properties.getProperty("database"), properties.getProperty("user"), properties.getProperty("pass")); } catch(Exception e) { IOService.output(e.getMessage()); } diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/EmpDao.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/EmpDao.java new file mode 100644 index 0000000..adbac9e --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/EmpDao.java @@ -0,0 +1,75 @@ +package main.java.com.lftechnology.phpjava.empmgmt.dao; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; + +public class EmpDao { + private Connection conn; + public EmpDao() { + DBConnection dbconn = new DBConnection(); + conn = dbconn.getConnection(); + } + + public ResultSet listEmployees() { + PreparedStatement pst = null; + ResultSet rs = null; + String sql = "SELECT * FROM employee WHERE is_deleted=0"; + try { + pst = conn.prepareStatement(sql); + rs = pst.executeQuery(); + } catch (SQLException e) { + IOService.output(e.getMessage()); + } catch (Exception e) { + IOService.output(e.getMessage()); + } + return rs; + } + + public ResultSet getEmployeeByName(String empname) { + PreparedStatement pst = null; + ResultSet rs = null; + String sql = "SELECT * FROM employee WHERE fullname=?"; + try { + pst = conn.prepareStatement(sql); + pst.setString(1, empname); + rs = pst.executeQuery(); + } catch (SQLException e) { + IOService.output(e.getMessage()); + } catch (Exception e) { + IOService.output(e.getMessage()); + } + return rs; + } + + public void addEmployee(String[] empData) { + PreparedStatement pst = null; + String sql = "INSERT INTO employee(fullname) VALUES(?)"; + try { + pst = conn.prepareStatement(sql); + pst.setString(1, empData[0]); + pst.executeUpdate(); + } catch (SQLException e) { + IOService.output(e.getMessage()); + } catch (Exception e) { + IOService.output(e.getMessage()); + } + } + + public void deleteEmployee(String empname) { + PreparedStatement pst = null; + String sql = "DELETE FROM employee WHERE fullname=?"; + try { + pst = conn.prepareStatement(sql); + pst.setString(1, empname); + pst.executeUpdate(); + } catch (SQLException e) { + IOService.output(e.getMessage()); + } catch (Exception e) { + IOService.output(e.getMessage()); + } + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java index fe1a162..82c8b78 100644 --- a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java @@ -3,6 +3,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.sql.SQLException; import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; @@ -30,6 +31,8 @@ public String getUserRole(String username, String password) { return null; } + } catch (SQLException e) { + IOService.output(e.getMessage()); } catch (Exception e) { IOService.output(e.getMessage()); } diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/EmpService.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/EmpService.java new file mode 100644 index 0000000..8ed1f17 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/EmpService.java @@ -0,0 +1,47 @@ +package main.java.com.lftechnology.phpjava.empmgmt.service; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import main.java.com.lftechnology.phpjava.empmgmt.dao.EmpDao; + +public class EmpService { + public ResultSet listEmployees() { + EmpDao ed = new EmpDao(); + return ed.listEmployees(); + } + + public void addEmployee(String[] empData) { + EmpDao ed = new EmpDao(); + + ResultSet checkExisting = ed.getEmployeeByName(empData[0]); + try { + if (checkExisting.next()) { + throw new Exception("Employee already exists"); + } + ed.addEmployee(empData); + IOService.output("Employee " + empData[0] + " added successfully."); + } catch (SQLException ex) { + IOService.output(ex.getMessage()); + } catch (Exception ex) { + IOService.output(ex.getMessage()); + } + } + + public void deleteEmployee(String empname) { + EmpDao ed = new EmpDao(); + + ResultSet checkExisting = ed.getEmployeeByName(empname); + try { + if (!checkExisting.next()) { + throw new Exception("Employee " + empname + " does not exists"); + } + ed.deleteEmployee(empname); + IOService.output("Employee " + empname + " deleted successfully."); + } catch (SQLException ex) { + IOService.output(ex.getMessage()); + } catch (Exception ex) { + IOService.output(ex.getMessage()); + } + } +} \ No newline at end of file diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Session.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Session.java new file mode 100644 index 0000000..94007fb --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Session.java @@ -0,0 +1,5 @@ +package main.java.com.lftechnology.phpjava.empmgmt.utils; + +public class Session { + public static String role; +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Task.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Task.java index 1824f07..d381808 100644 --- a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Task.java +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/utils/Task.java @@ -1,11 +1,11 @@ package main.java.com.lftechnology.phpjava.empmgmt.utils; -import main.java.com.lftechnology.phpjava.empmgmt.controller.Employee; +import main.java.com.lftechnology.phpjava.empmgmt.controller.EmployeeController; import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; public class Task { public static void runTask(String taskNumber) { - Employee e = new Employee(); + EmployeeController e = new EmployeeController(); switch (taskNumber) { case "1": diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/EmpView.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/EmpView.java new file mode 100644 index 0000000..d2eda48 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/EmpView.java @@ -0,0 +1,32 @@ +package main.java.com.lftechnology.phpjava.empmgmt.view; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; + +public class EmpView { + + public void list(ResultSet rs) { + try { + while(rs.next()) { + IOService.output(rs.getString(2)); + } + } catch (SQLException ex) { + ex.printStackTrace(); + } + } + + public String[] add() { + String[] empData = new String[1]; + IOService.output("Add new user:"); + empData[0] = IOService.input(); + return empData; + } + + public String delete() { + IOService.output("Enter employee name to delete:"); + String empname = IOService.input(); + return empname; + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/MenuView.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/MenuView.java index ac4f736..405bab5 100644 --- a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/MenuView.java +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/view/MenuView.java @@ -7,22 +7,23 @@ public class MenuView { private String role; private String[] adminMenu = { "1. List Employees", "2. Add Employee", "3. Delete Employee", "0. Exit" }; private String[] normalMenu = { "1. List Employees", "0. Exit" }; - private String[] currentMenu; public MenuView(String role) { this.role = role; - if (this.role == "admin") { - this.currentMenu = this.adminMenu; - } else { - this.currentMenu = this.normalMenu; - } } public String getMenu() { - System.out.println("Please enter the action to perform:"); - for (String option : this.currentMenu) { - System.out.println(option); + IOService.output("Please enter the action to perform:"); + if (this.role.equals("admin")) { + for (String oa : this.adminMenu) { + IOService.output(oa); + } + } else { + for (String on : this.normalMenu) { + IOService.output(on); + } } + String option = IOService.input(); return option; } From 18dad5d389b5b63aa4e33c602389b5386f092259 Mon Sep 17 00:00:00 2001 From: Madhav Subedi Date: Mon, 22 Aug 2016 17:35:08 +0545 Subject: [PATCH 5/5] Adds initial seeding of admin user --- .../controller/EmployeeController.java | 2 + .../phpjava/empmgmt/dao/EmpDao.java | 4 +- .../phpjava/empmgmt/dao/LoginDao.java | 4 +- .../phpjava/empmgmt/dao/UserDao.java | 48 +++++++++++++++++++ .../phpjava/empmgmt/service/UserService.java | 21 ++++++++ 5 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/UserDao.java create mode 100644 madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/UserService.java diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/EmployeeController.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/EmployeeController.java index 7300532..bafa991 100644 --- a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/EmployeeController.java +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/controller/EmployeeController.java @@ -2,6 +2,7 @@ import java.sql.ResultSet; +import main.java.com.lftechnology.phpjava.empmgmt.service.UserService; import main.java.com.lftechnology.phpjava.empmgmt.service.EmpService; import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; import main.java.com.lftechnology.phpjava.empmgmt.service.LoginService; @@ -13,6 +14,7 @@ public class EmployeeController { public static void main(String[] args) { + UserService.checkDefaultUser(); Session.role = LoginController.Login(); MenuController.showMenu(); } diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/EmpDao.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/EmpDao.java index adbac9e..c2904dd 100644 --- a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/EmpDao.java +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/EmpDao.java @@ -11,7 +11,7 @@ public class EmpDao { private Connection conn; public EmpDao() { DBConnection dbconn = new DBConnection(); - conn = dbconn.getConnection(); + this.conn = dbconn.getConnection(); } public ResultSet listEmployees() { @@ -19,7 +19,7 @@ public ResultSet listEmployees() { ResultSet rs = null; String sql = "SELECT * FROM employee WHERE is_deleted=0"; try { - pst = conn.prepareStatement(sql); + pst = this.conn.prepareStatement(sql); rs = pst.executeQuery(); } catch (SQLException e) { IOService.output(e.getMessage()); diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java index 82c8b78..3870553 100644 --- a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/LoginDao.java @@ -11,14 +11,14 @@ public class LoginDao { private Connection conn; public LoginDao() { DBConnection dbconn = new DBConnection(); - conn = dbconn.getConnection(); + this.conn = dbconn.getConnection(); } public String getUserRole(String username, String password) { PreparedStatement pst = null; String sql = "SELECT * FROM user WHERE username=? AND password=?"; try { - pst = conn.prepareStatement(sql); + pst = this.conn.prepareStatement(sql); pst.setString(1, username); pst.setString(2, password); diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/UserDao.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/UserDao.java new file mode 100644 index 0000000..4a7e1ad --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/dao/UserDao.java @@ -0,0 +1,48 @@ +package main.java.com.lftechnology.phpjava.empmgmt.dao; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import main.java.com.lftechnology.phpjava.empmgmt.service.IOService; + +public class UserDao { + private Connection conn; + public UserDao() { + DBConnection dbconn = new DBConnection(); + this.conn = dbconn.getConnection(); + } + + public ResultSet getAdminUsers() { + PreparedStatement pst = null; + ResultSet rs = null; + String sql = "SELECT * FROM user WHERE role='admin'"; + try { + pst = conn.prepareStatement(sql); + rs = pst.executeQuery(); + } catch (SQLException e) { + IOService.output(e.getMessage()); + } catch (Exception e) { + IOService.output(e.getMessage()); + } + return rs; + } + + public void addUser(String[] userData) { + PreparedStatement pst = null; + String sql = "INSERT INTO user(fullname, username, password, role) VALUES(?, ?, ?, ?)"; + try { + pst = conn.prepareStatement(sql); + pst.setString(1, userData[0]); + pst.setString(2, userData[1]); + pst.setString(3, userData[2]); + pst.setString(4, userData[3]); + pst.executeUpdate(); + } catch (SQLException e) { + IOService.output(e.getMessage()); + } catch (Exception e) { + IOService.output(e.getMessage()); + } + } +} diff --git a/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/UserService.java b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/UserService.java new file mode 100644 index 0000000..ef663b3 --- /dev/null +++ b/madhav/src/main/java/com/lftechnology/phpjava/empmgmt/service/UserService.java @@ -0,0 +1,21 @@ +package main.java.com.lftechnology.phpjava.empmgmt.service; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import main.java.com.lftechnology.phpjava.empmgmt.dao.UserDao; + +public class UserService { + public static void checkDefaultUser() { + UserDao ud = new UserDao(); + ResultSet adminUsers = ud.getAdminUsers(); + try { + if(!adminUsers.next()) { + String[] admin = {"Administrator", "admin", "admin", "admin"}; + ud.addUser(admin); + } + } catch (SQLException e) { + IOService.output(e.getMessage()); + } + } +}