diff --git a/Spring-HTML/src/main/java/com/example/demo/controller/MainController.java b/Spring-HTML/src/main/java/com/example/demo/controller/MainController.java index 1404cb5..bc6363e 100644 --- a/Spring-HTML/src/main/java/com/example/demo/controller/MainController.java +++ b/Spring-HTML/src/main/java/com/example/demo/controller/MainController.java @@ -1,42 +1,112 @@ package com.example.demo.controller; +import java.util.List; + +import jakarta.servlet.http.HttpSession; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; + +import com.example.demo.entity.Employee; +import com.example.demo.form.EmployeeForm; +import com.example.demo.form.LoginForm; +import com.example.demo.service.EmployeeService; @Controller public class MainController { - @RequestMapping(value = "/",method = RequestMethod.GET) - public String loin() { - return"login"; - } - @RequestMapping(value = "/doLogin",method = RequestMethod.POST) - public String doLoin() { - return"menu"; - } - @RequestMapping(value = "/logout",method = RequestMethod.POST) - public String logout() { - return "login"; - } - @RequestMapping(value = "/select",method = RequestMethod.POST) - public String select() { - return "select"; - } - @RequestMapping(value = "/back",method = RequestMethod.POST) - public String back() { - return "menu"; - } - @RequestMapping(value = "/insert",method = RequestMethod.POST) - public String insert() { - return "insert"; - } - @RequestMapping(value = "/update",method = RequestMethod.POST) - public String update() { - return "update"; - } - @RequestMapping(value = "/delete",method = RequestMethod.POST) - public String delete() { - return "delete"; - } -} + @Autowired + private HttpSession session; + + @Autowired + private EmployeeService employeeService; + + @GetMapping("/") + public String login(Model model) { + model.addAttribute("loginForm", new LoginForm()); + return "login"; + } + + @PostMapping("/doLogin") + public String doLogin(@ModelAttribute LoginForm form, Model model) { + var employeeOpt = employeeService.login(form.getMail(), form.getPass()); + if (employeeOpt.isPresent()) { + session.setAttribute("login_emp", employeeOpt.get()); + return "menu"; + } + model.addAttribute("error", "メールアドレスまたはパスワードが違います"); + return "login"; + } + + @PostMapping("/logout") + public String logout() { + session.invalidate(); // Session ကို ဖျက်ပစ်ခြင်း + return "redirect:/"; + } + + @PostMapping("/back") + public String back() { + return "menu"; + } + + // --- ရှာဖွေခြင်း (select) --- + @PostMapping("/select") + public String select(Model model) { + List list = employeeService.getAllEmployee(); + model.addAttribute("employeeList",list); + return "select"; + } + + // --- သစ်ထည့်ခြင်း (insert) --- + @PostMapping("/insert") + public String insert(Model model) { + model.addAttribute("employeeForm", new EmployeeForm()); + return "insert"; + } + + @PostMapping("/insertConfirm") + public String insertConfirm(@ModelAttribute EmployeeForm form, Model model) { + model.addAttribute("employeeForm", form); + return "insertConfirm"; + } + + @PostMapping("/insertResult") + public String insertResult(@ModelAttribute EmployeeForm form) { + // Form -> Entity သို့ ပြောင်းပြီး Save လုပျရပါမညျ + return "insertResult"; + } + + // --- ပြင်ဆင်ခြင်း (update) --- + @PostMapping("/update") + public String update(Model model) { + model.addAttribute("employeeForm", new EmployeeForm()); + return "update"; + } + + @PostMapping("/updateConfirm") + public String updateConfirm(@ModelAttribute EmployeeForm form, Model model) { + model.addAttribute("employeeForm", form); + return "updateConfirm"; + } + + @PostMapping("/updateResult") + public String updateResult(@ModelAttribute EmployeeForm form) { + return "updateResult"; + } + + // --- ဖျက်ဆီးခြင်း (delete) --- + @PostMapping("/delete") + public String delete() { + return "delete"; + } + + @PostMapping("/deleteResult") + public String deleteResult(Integer id) { + // employeeService.deleteById(id); + return "deleteResult"; + } +} \ No newline at end of file diff --git a/Spring-HTML/src/main/java/com/example/demo/entity/Employee.java b/Spring-HTML/src/main/java/com/example/demo/entity/Employee.java new file mode 100644 index 0000000..749ac79 --- /dev/null +++ b/Spring-HTML/src/main/java/com/example/demo/entity/Employee.java @@ -0,0 +1,29 @@ +package com.example.demo.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +import lombok.Data; +@Data +@Entity +@Table(name="employee") +public class Employee { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name ="id_employee", nullable=false) + private Integer idEmployee; + @Column(name ="nm_employee", nullable=false) + private String nmEmployee; + @Column(name ="kn_employee", nullable=false) + private String knEmployee; + @Column(name ="mail_address", nullable=false) + private String mailAddress; + @Column(name ="password", nullable=false) + private String password; + @Column(name ="id_department", nullable=false) + private Integer idDepartment; +} diff --git a/Spring-HTML/src/main/java/com/example/demo/form/EmployeeForm.java b/Spring-HTML/src/main/java/com/example/demo/form/EmployeeForm.java new file mode 100644 index 0000000..0164d00 --- /dev/null +++ b/Spring-HTML/src/main/java/com/example/demo/form/EmployeeForm.java @@ -0,0 +1,14 @@ +package com.example.demo.form; + + +import lombok.Data; + +@Data +public class EmployeeForm { + + private String nmEmp; + + private String knEmp; + + +} \ No newline at end of file diff --git a/Spring-HTML/src/main/java/com/example/demo/form/LoginForm.java b/Spring-HTML/src/main/java/com/example/demo/form/LoginForm.java new file mode 100644 index 0000000..6a00136 --- /dev/null +++ b/Spring-HTML/src/main/java/com/example/demo/form/LoginForm.java @@ -0,0 +1,15 @@ +package com.example.demo.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class LoginForm { + private String mail; + private String pass; + +} + diff --git a/Spring-HTML/src/main/java/com/example/demo/repsitory/EmployeeRepository.java b/Spring-HTML/src/main/java/com/example/demo/repsitory/EmployeeRepository.java new file mode 100644 index 0000000..888f131 --- /dev/null +++ b/Spring-HTML/src/main/java/com/example/demo/repsitory/EmployeeRepository.java @@ -0,0 +1,12 @@ +package com.example.demo.repsitory; + +import java.util.Optional; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.entity.Employee; + +public interface EmployeeRepository extends JpaRepository { + Optional findByMailAddressAndPassword(String mail, String pass); + +} diff --git a/Spring-HTML/src/main/java/com/example/demo/service/EmployeeService.java b/Spring-HTML/src/main/java/com/example/demo/service/EmployeeService.java new file mode 100644 index 0000000..0a760df --- /dev/null +++ b/Spring-HTML/src/main/java/com/example/demo/service/EmployeeService.java @@ -0,0 +1,36 @@ +package com.example.demo.service; + +import java.util.List; +import java.util.Optional; + +import jakarta.transaction.Transactional; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.example.demo.entity.Employee; +import com.example.demo.repsitory.EmployeeRepository; + +@Service +@Transactional +public class EmployeeService { + @Autowired + private EmployeeRepository employeeRepository; + + // Login စစ်ဆေးခြင်း + public Optional login(String mail, String pass) { + return employeeRepository.findByMailAddressAndPassword(mail, pass); + } + // အချက်အလက်အားလုံး ရှာဖွေခြင်း + public List getAllEmployee() { + return employeeRepository.findAll(); + } + // အချက်အလက် သိမ်းဆည်းခြင်း / ပြင်ဆင်ခြင်း + public Employee save(Employee employee) { + return employeeRepository.save(employee); + } + // အချက်အလက် ဖျက်ဆီးခြင်း + public void deleteById(Integer id) { + employeeRepository.deleteById(id); + } +} \ No newline at end of file diff --git a/Spring-HTML/src/main/resources/templates/delete.html b/Spring-HTML/src/main/resources/templates/delete.html index 42f9527..513716f 100644 --- a/Spring-HTML/src/main/resources/templates/delete.html +++ b/Spring-HTML/src/main/resources/templates/delete.html @@ -1,20 +1,25 @@ - 削除ページ - -

削除

+

削除

+ + +
+
+
+ +
+ +
- - \ No newline at end of file diff --git a/Spring-HTML/src/main/resources/templates/deleteResult.html b/Spring-HTML/src/main/resources/templates/deleteResult.html new file mode 100644 index 0000000..bf01606 --- /dev/null +++ b/Spring-HTML/src/main/resources/templates/deleteResult.html @@ -0,0 +1,20 @@ + + + + + + 削除確認ページ + + + +

削除完了しました。

+
+ +
+
+ +
+ + + + \ No newline at end of file diff --git a/Spring-HTML/src/main/resources/templates/insert.html b/Spring-HTML/src/main/resources/templates/insert.html index daaf8bb..8ad6e26 100644 --- a/Spring-HTML/src/main/resources/templates/insert.html +++ b/Spring-HTML/src/main/resources/templates/insert.html @@ -11,6 +11,17 @@
+ +
+
+
+
+
+
+
+ +
+
diff --git a/Spring-HTML/src/main/resources/templates/insertConfirm.html b/Spring-HTML/src/main/resources/templates/insertConfirm.html new file mode 100644 index 0000000..22bc43a --- /dev/null +++ b/Spring-HTML/src/main/resources/templates/insertConfirm.html @@ -0,0 +1,17 @@ + + + + +insert Result + + +

登録完了しました。

+
+ +
+
+ +
+ + + \ No newline at end of file diff --git a/Spring-HTML/src/main/resources/templates/login.html b/Spring-HTML/src/main/resources/templates/login.html index 23ed56a..6784de0 100644 --- a/Spring-HTML/src/main/resources/templates/login.html +++ b/Spring-HTML/src/main/resources/templates/login.html @@ -8,6 +8,8 @@
+ +
diff --git a/Spring-HTML/src/main/resources/templates/menu.html b/Spring-HTML/src/main/resources/templates/menu.html index 154de2d..1f5aece 100644 --- a/Spring-HTML/src/main/resources/templates/menu.html +++ b/Spring-HTML/src/main/resources/templates/menu.html @@ -21,7 +21,13 @@
+
+ + +
+ +
diff --git a/Spring-HTML/src/main/resources/templates/select.html b/Spring-HTML/src/main/resources/templates/select.html index 20351f1..540665e 100644 --- a/Spring-HTML/src/main/resources/templates/select.html +++ b/Spring-HTML/src/main/resources/templates/select.html @@ -6,15 +6,32 @@ 検索ページ - -

検索

+ +

検索

+ + + + + + + + + + + + + + + +
ID名前カナメールアドレス
+
- + \ No newline at end of file diff --git a/Spring-HTML/src/main/resources/templates/update.html b/Spring-HTML/src/main/resources/templates/update.html index 9dd2da8..0e0ce09 100644 --- a/Spring-HTML/src/main/resources/templates/update.html +++ b/Spring-HTML/src/main/resources/templates/update.html @@ -11,6 +11,18 @@
+ +
+
+
+
+
+
+
+
+ +
+
diff --git a/Spring-HTML/src/main/resources/templates/updateConfirm.html b/Spring-HTML/src/main/resources/templates/updateConfirm.html new file mode 100644 index 0000000..c8ef839 --- /dev/null +++ b/Spring-HTML/src/main/resources/templates/updateConfirm.html @@ -0,0 +1,21 @@ + + + + + + 更新ページ + + + +

更新完了しました。

+
+ +
+
+
+ +
+ + + + \ No newline at end of file