From 8d2d26b65ed62e43c6b49ee5d4cc62f2a66c2a08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Miguez=20Laur=C3=ADa?= Date: Wed, 9 Aug 2023 10:29:10 -0300 Subject: [PATCH 01/12] employee entity added --- .../crudapplication/entity/Employee.java | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/main/java/com/manumiguezz/crudapplication/entity/Employee.java diff --git a/src/main/java/com/manumiguezz/crudapplication/entity/Employee.java b/src/main/java/com/manumiguezz/crudapplication/entity/Employee.java new file mode 100644 index 0000000..f2811ff --- /dev/null +++ b/src/main/java/com/manumiguezz/crudapplication/entity/Employee.java @@ -0,0 +1,68 @@ +package com.manumiguezz.crudapplication.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "/employee") +public class Employee { + + @Id + @Column(name = "id") + private int id; + + @Column(name = "first_name") + private String firstName; + + @Column(name = "last_name") + private String lastName; + + @Column(name = "email") + private String email; + + public Employee(String firstName, String lastName, String email) { + this.firstName = firstName; + this.lastName = lastName; + this.email = email; + } + + public int getId() { + return id; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + @Override + public String toString() { + return "Employee{" + + "id=" + id + + ", firstName='" + firstName + '\'' + + ", lastName='" + lastName + '\'' + + ", email='" + email + '\'' + + '}'; + } +} From 20ae251b44efd524fa139fdcc45d401c4eb0be08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Miguez=20Laur=C3=ADa?= Date: Wed, 9 Aug 2023 10:34:48 -0300 Subject: [PATCH 02/12] updated and solved errors --- .../crudapplication/entity/Employee.java | 16 +++++++++++----- src/main/resources/application.properties | 1 + 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/manumiguezz/crudapplication/entity/Employee.java b/src/main/java/com/manumiguezz/crudapplication/entity/Employee.java index f2811ff..75200c1 100644 --- a/src/main/java/com/manumiguezz/crudapplication/entity/Employee.java +++ b/src/main/java/com/manumiguezz/crudapplication/entity/Employee.java @@ -1,15 +1,13 @@ package com.manumiguezz.crudapplication.entity; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; +import jakarta.persistence.*; @Entity -@Table(name = "/employee") +@Table(name = "employee") public class Employee { @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private int id; @@ -22,6 +20,10 @@ public class Employee { @Column(name = "email") private String email; + public Employee () { + + } + public Employee(String firstName, String lastName, String email) { this.firstName = firstName; this.lastName = lastName; @@ -32,6 +34,10 @@ public int getId() { return id; } + public void setId(int id) { + this.id = id; + } + public String getFirstName() { return firstName; } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 33b3c40..361323e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,3 +1,4 @@ +spring.datasource.url=jbdc:mysql://localhost::3306/employee_directory spring.datasource.username=springstudent spring.datasource.password=springstudent \ No newline at end of file From 13778b93884eb9fe5827e702c6fbacd6d7b5aa9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Miguez=20Laur=C3=ADa?= Date: Wed, 9 Aug 2023 10:51:30 -0300 Subject: [PATCH 03/12] defined constructors and DAO implementations --- .../crudapplication/dao/Employee.java | 8 +++++ .../dao/EmployeeDAOJPAImpl.java | 29 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/main/java/com/manumiguezz/crudapplication/dao/Employee.java create mode 100644 src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJPAImpl.java diff --git a/src/main/java/com/manumiguezz/crudapplication/dao/Employee.java b/src/main/java/com/manumiguezz/crudapplication/dao/Employee.java new file mode 100644 index 0000000..8d4f3ed --- /dev/null +++ b/src/main/java/com/manumiguezz/crudapplication/dao/Employee.java @@ -0,0 +1,8 @@ +package com.manumiguezz.crudapplication.dao; + +import java.util.List; + +public interface Employee { + + List findAll(); +} diff --git a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJPAImpl.java b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJPAImpl.java new file mode 100644 index 0000000..cd55be3 --- /dev/null +++ b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJPAImpl.java @@ -0,0 +1,29 @@ +package com.manumiguezz.crudapplication.dao; + +import jakarta.persistence.EntityManager; +import jakarta.persistence.TypedQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public class EmployeeDAOJPAImpl implements Employee{ + + private EntityManager entityManager; + + @Autowired + public EmployeeDAOJPAImpl(EntityManager theEntityManager) { + entityManager = theEntityManager; + } + + @Override + public List findAll() { + + TypedQuery theQuery = entityManager.createQuery("from Employee", Employee.class); + + List employees = theQuery.getResultList(); + + return employees; + } +} From f3a92392a52ff2cd0f32ad5022feaa35cd08568b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Miguez=20Laur=C3=ADa?= Date: Thu, 10 Aug 2023 22:49:58 -0300 Subject: [PATCH 04/12] service layer added --- .gitignore | 2 +- .../dao/{Employee.java => EmployeeDAO.java} | 5 +-- ...AOJPAImpl.java => EmployeeDAOJpaImpl.java} | 6 ++-- .../rest/EmployeeRestController.java | 29 ++++++++++++++++++ .../service/EmployeeService.java | 9 ++++++ .../service/EmployeeServiceImpl.java | 24 +++++++++++++++ src/main/resources/application.properties | 2 +- target/classes/application.properties | 4 +++ .../CrudapplicationApplication.class | Bin 0 -> 796 bytes .../crudapplication/dao/EmployeeDAO.class | Bin 0 -> 270 bytes .../dao/EmployeeDAOJpaImpl.class | Bin 0 -> 1533 bytes .../crudapplication/entity/Employee.class | Bin 0 -> 2452 bytes .../rest/EmployeeRestController.class | Bin 0 -> 1131 bytes .../service/EmployeeService.class | Bin 0 -> 282 bytes .../service/EmployeeServiceImpl.class | Bin 0 -> 1040 bytes .../CrudapplicationApplicationTests.class | Bin 0 -> 594 bytes 16 files changed, 75 insertions(+), 6 deletions(-) rename src/main/java/com/manumiguezz/crudapplication/dao/{Employee.java => EmployeeDAO.java} (54%) rename src/main/java/com/manumiguezz/crudapplication/dao/{EmployeeDAOJPAImpl.java => EmployeeDAOJpaImpl.java} (78%) create mode 100644 src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java create mode 100644 src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java create mode 100644 src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java create mode 100644 target/classes/application.properties create mode 100644 target/classes/com/manumiguezz/crudapplication/CrudapplicationApplication.class create mode 100644 target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAO.class create mode 100644 target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.class create mode 100644 target/classes/com/manumiguezz/crudapplication/entity/Employee.class create mode 100644 target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class create mode 100644 target/classes/com/manumiguezz/crudapplication/service/EmployeeService.class create mode 100644 target/classes/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.class create mode 100644 target/test-classes/com/manumiguezz/crudapplication/CrudapplicationApplicationTests.class diff --git a/.gitignore b/.gitignore index 549e00a..fc4cf7a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ HELP.md -target/ +#target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ !**/src/test/**/target/ diff --git a/src/main/java/com/manumiguezz/crudapplication/dao/Employee.java b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java similarity index 54% rename from src/main/java/com/manumiguezz/crudapplication/dao/Employee.java rename to src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java index 8d4f3ed..67b9869 100644 --- a/src/main/java/com/manumiguezz/crudapplication/dao/Employee.java +++ b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java @@ -1,8 +1,9 @@ package com.manumiguezz.crudapplication.dao; -import java.util.List; +import com.manumiguezz.crudapplication.entity.Employee; -public interface Employee { +import java.util.List; +public interface EmployeeDAO { List findAll(); } diff --git a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJPAImpl.java b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java similarity index 78% rename from src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJPAImpl.java rename to src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java index cd55be3..4c4f483 100644 --- a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJPAImpl.java +++ b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java @@ -1,5 +1,6 @@ package com.manumiguezz.crudapplication.dao; +import com.manumiguezz.crudapplication.entity.Employee; import jakarta.persistence.EntityManager; import jakarta.persistence.TypedQuery; import org.springframework.beans.factory.annotation.Autowired; @@ -8,12 +9,12 @@ import java.util.List; @Repository -public class EmployeeDAOJPAImpl implements Employee{ +public class EmployeeDAOJpaImpl implements EmployeeDAO { private EntityManager entityManager; @Autowired - public EmployeeDAOJPAImpl(EntityManager theEntityManager) { + public EmployeeDAOJpaImpl(EntityManager theEntityManager) { entityManager = theEntityManager; } @@ -26,4 +27,5 @@ public List findAll() { return employees; } + } diff --git a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java new file mode 100644 index 0000000..a42ece4 --- /dev/null +++ b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java @@ -0,0 +1,29 @@ +package com.manumiguezz.crudapplication.rest; + +import com.manumiguezz.crudapplication.dao.EmployeeDAO; +import com.manumiguezz.crudapplication.entity.Employee; +import com.manumiguezz.crudapplication.service.EmployeeService; +import com.manumiguezz.crudapplication.service.EmployeeServiceImpl; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/api") +public class EmployeeRestController { + + private EmployeeService employeeService; + + public EmployeeRestController (EmployeeService theEmployeeService) { + employeeService = theEmployeeService; + } + + @GetMapping("/employees") + public List findAll(){ + return employeeService.findAll(); + } + + +} diff --git a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java new file mode 100644 index 0000000..ee2e9a6 --- /dev/null +++ b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java @@ -0,0 +1,9 @@ +package com.manumiguezz.crudapplication.service; + +import com.manumiguezz.crudapplication.entity.Employee; + +import java.util.List; + +public interface EmployeeService { + List findAll(); +} diff --git a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java new file mode 100644 index 0000000..2008c1f --- /dev/null +++ b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java @@ -0,0 +1,24 @@ +package com.manumiguezz.crudapplication.service; + +import com.manumiguezz.crudapplication.dao.EmployeeDAO; +import com.manumiguezz.crudapplication.entity.Employee; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class EmployeeServiceImpl implements EmployeeService{ + + private EmployeeDAO employeeDAO; + + @Autowired + public EmployeeServiceImpl (EmployeeDAO theEmployeeDAO) { + employeeDAO = theEmployeeDAO; + } + + @Override + public List findAll() { + return employeeDAO.findAll(); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 361323e..4a4b39a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,4 @@ -spring.datasource.url=jbdc:mysql://localhost::3306/employee_directory +spring.datasource.url=jdbc:mysql://localhost:3306/employee_directory spring.datasource.username=springstudent spring.datasource.password=springstudent \ No newline at end of file diff --git a/target/classes/application.properties b/target/classes/application.properties new file mode 100644 index 0000000..4a4b39a --- /dev/null +++ b/target/classes/application.properties @@ -0,0 +1,4 @@ + +spring.datasource.url=jdbc:mysql://localhost:3306/employee_directory +spring.datasource.username=springstudent +spring.datasource.password=springstudent \ No newline at end of file diff --git a/target/classes/com/manumiguezz/crudapplication/CrudapplicationApplication.class b/target/classes/com/manumiguezz/crudapplication/CrudapplicationApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..67b0794eca1cfa0d9017ec92cb91a9600e8e2ddf GIT binary patch literal 796 zcmbVKO;6iE5PcgG970+kd_$|Mw~zySZuh6 zegHoTb=DxomC{Qsc}DX+``$c0-9G?0!rK;Vmbp^HokcvF-UsgOr=bQES!dabTqn-TW z_`v8ZTHT5$m6Z|X_TfH5ePG6tVJTEvek!s^+OIyBp%a=|q$6RKw_lufcdc@U!|?xc z@iQ}_=zSaASjpeEGd%ycPCHo#uhV3tf zb}Ex2l`9X6*2a}=Qmf;cXqG&Q!Wn|Kgj2q-c0vSJVC~~Q0y;DQ)xi9rkz68+lV+qF zyM`c1ioOZ-76d;MceS literal 0 HcmV?d00001 diff --git a/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAO.class b/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAO.class new file mode 100644 index 0000000000000000000000000000000000000000..d27e71abcb8032c4e1bd4d02ab2694334eb623fe GIT binary patch literal 270 zcmaivO9}!p5Jao}jh~Hp3f-6k_yIv(4Y=?GF%yTDOfrm#pht7z0X&o#U5MbqT@}?- zy}m!LHvlvA64VGnxk41uhJy2;FBhSzkjb(%tfXgWMJAnC6{T@!t(S{Uf(D^~kS8gO zw7J;q4qACavS*tuj3Eq$qx78z&qkzt^budd*~HTR7vuOf-y#s|@l${zaucoSljv$_N7Z?&?i2T4O2 literal 0 HcmV?d00001 diff --git a/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.class b/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..f099748e61085fc85d836d4230b35000ea0ee939 GIT binary patch literal 1533 zcmbVMYflqF6g|@dOQF1qJVhEEKAPECN%>WpXbgVv z2l%6mciU2+HmTvm?#{h4_ntHNp1r^S{QL#r4K{`lL)=1N68#up7(W)D1$Ts3<$I-L zX&Z)tP30-G#SqUd7ZVsn!opAz!$>l0*uKkM;f1cMhVtx;+d3?ZTFp_mFv|CMS@=Bf z)*Qbs<=foe`P$aU!%4ye4&^0wX#rr!tf}%Pp|4P7a97t{jy{jD=1HX2;Gv@hoa<=Cspum;S_~dk==6knIjc2 zye{iTWl;r+&~u*Wn}+%t;J&W% zpceJ05`~=l`h=IH@B&^Dw()hHi*^9dg~mTsT9ygiswl6Vb4aX%M5EREbk|BLI`Q&xM>b8(9*g|e_W?Ebps-i5#j=E?8VvU{8;C# zE2W6{;32pGi3q6|JOB@c`1b5cZ0wU#F3#@G?(FP0GvAE;*WYjcB%)1vk*5SDGn6XO z6r~xJUh-Gmvbo!{zTAH)I*L*HzI3J9Vw9|`wR4oET!!)mnx+CHtK&JA!`*=+djs+M zwbk(lUEc58vcr}1TuZo0sw1o6^lk4*2u8Udq#vjq?qEIJ8osuxeChUT+Wxr$&1mCU zn;T8N`Cfr$_2!gtxU}`oe1XnWnNdP^8L{Rp{JB`51-iuOg2N9*-E#rr8>tSk3KVx$ z!036UIr-?j?5s^HFHC(QR{kAfT2Fl$Lu(|8WCx-aG1tH=0ixJA2K&Zy8;QeWUK#1ILB!lpAIs zA7^J%NgZ&y@B5m+fs+Lcv2l3x*X0*T_da{MC@{G zX2VQq(umViD?Ro+r8(3$aSCSA^e|74=y8VXx>BBiSi=gG?kn$5SO%ggo^9Syo)7;0 zJQ{>Z(HMQk-L5Tym6qon4*IpXrtV)CL&{F7e>bvaI#6viOOc5>x9wf2L@i6(jBcL< z@JHF*Wa~?(EoO6-t*$Sfv=JkP{X;K*0wJ0%YOW52Km-{AW3EobBhJkXJ!iD|c2zV^ z6BGIn%_@QJl){LPMMxo}OO&K5nBRxIDCh%Pf+C~k06GcXT_e3|%+bL|I6!BdJXpa2 zy5r=*EDWIxD2?$d9{U6{!#q{}gV=9aBrgW%-TQ|8rp!3 zIfZ#%8>n7Crc8DHn2OaK$5a~HE8_;i%M?7!!NYU3NON#e+pe1Xk!@IteAO%MoJKMq zdXuE#g6XQ6h%&#~c#Z-;ObPH)2$D|`Wj%fp!tTQkf zzC@UGycm5Ni>Ww{=~gVJ&*Cu^$1&XoraNa~GE|K)>HMKmV=MR2e5E(24H^eo9|2j8=#iqkVao4?B|d|+ g)*#=9)#U*HwzeQ-Aw0m>pr?@XSUsaJs6`9^0O`N(#{d8T literal 0 HcmV?d00001 diff --git a/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class b/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class new file mode 100644 index 0000000000000000000000000000000000000000..f5ee39cbf0cd2321dfec70e276399ace25f5f0b0 GIT binary patch literal 1131 zcmbVL+invv5IxRqNgA4v(n2V=a#Io{{89-}(n?j;@{$5-P+oX)Hg4jwyAED&s`jfu z0wH+d1NbP!?B;?hBm#Z#<#^7V8IQ+5et!E7U<;25NFnVYQ$!XyhVro(3+{W>*F=3W8hOeUR_TBn8Ct&Q zk34-UU#`2qlSWIhtg7X!Z89oq7krgH zn%!CJsZ}BGs>HTE++cXIO7nsS8MYgj?x)#j$i32mWLWE}SiVc6fiy>A5R#|f)xHS( z!YGFq&YT^qgkg7Ostd|=b7(VE?O2{qXf})5TWQBScrT2Iq?LwpY<@^%t0LJ~iJ}5J zajflZ#`NxGSDO(}CPu}hp`)B?^N|mvh!Z{(zSU;R#gf1~snw^-$beE8dukL5n;L3y z|DPf3tZYnDQFgjqi}oIAmU=ohzC2LwyKS5|_Sfn?bE9Tx{I~3c`jy&FCz3BHZEVrn zXTWfsPR6Z1{X7omaT8gr6FMNAp}W-j2G)A|72fAr%q@CWDF&z^M|)aC9UFw!=h4{2 zZ9>Gu9a3euOLm?S0PfK#kn29(%&j<4T&itCjP6qF3%u{R%J7L$1}>G0cj7LElXJrJ T6c5PG;31u@ne}L?{}}iKdO{oR literal 0 HcmV?d00001 diff --git a/target/test-classes/com/manumiguezz/crudapplication/CrudapplicationApplicationTests.class b/target/test-classes/com/manumiguezz/crudapplication/CrudapplicationApplicationTests.class new file mode 100644 index 0000000000000000000000000000000000000000..1fa5dc4ee168f89656265aefb9ef2cb0ec021a09 GIT binary patch literal 594 zcmbtRJx{|h5IwhrLR)AlEJzFt417po^ct-3p|30D$3avVVYS4>C@`~ZFw z;%tflF))zfUGCn!cRu^|?fC@&j$y3<6{yys)`B^hXV965JHb<-6Mh*_lynT{k5HpK zVNl)P8P#Ed!KpME&x9^BOiDGKa%s!4$nzAXaA-8||IB+|)KC?!U{LFuv0~7UP^*hF ziX>Nu!;5aFG#XvRuC^wZlw}ut1vE)7rSO z0&yFWu?e4)v^-&sPFXH;BQxka5^Tal@IV{dtE zjN^`6`Rs6f5IWAN9)`gt)ajZ0=aC)?7%b8sr^tL|_X*fzpc{mq29h)hTOSP+mnZ{R jCbkm9dzAUUU&7`$A>CLIwyDwEb|_Y0C14jmtE&L-AK;f0 literal 0 HcmV?d00001 From a9b996a8d0d6069109e63447e2341f1f8745b335 Mon Sep 17 00:00:00 2001 From: Manumiguezz Date: Fri, 11 Aug 2023 10:04:26 -0300 Subject: [PATCH 05/12] Create README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..4d53534 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# BasicSpringBootAPI + +Efficient REST API crafted using Core Java and Spring Boot, enabling smooth CRUD operations on an employee database. From e4683fd0c20027960d5d9ee96a8aee770946ae62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Miguez=20Laur=C3=ADa?= Date: Fri, 11 Aug 2023 11:50:09 -0300 Subject: [PATCH 06/12] DAO methods added to the interface and implementation --- .../crudapplication/dao/EmployeeDAO.java | 6 ++++++ .../dao/EmployeeDAOJpaImpl.java | 19 ++++++++++++++++++ .../crudapplication/dao/EmployeeDAO.class | Bin 270 -> 564 bytes .../dao/EmployeeDAOJpaImpl.class | Bin 1533 -> 0 bytes 4 files changed, 25 insertions(+) delete mode 100644 target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.class diff --git a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java index 67b9869..2272379 100644 --- a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java +++ b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java @@ -6,4 +6,10 @@ public interface EmployeeDAO { List findAll(); + + Employee findById(int theId); + + Employee save(Employee theEmployee); + + void deleteByID(int theId); } diff --git a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java index 4c4f483..06153e7 100644 --- a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java +++ b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java @@ -28,4 +28,23 @@ public List findAll() { return employees; } + @Override + public Employee findById(int theId) { + Employee theEmployee = entityManager.find(Employee.class, theId); + return theEmployee; + } + + @Override + public Employee save(Employee theEmployee) { + // if ID of passed employee is equal to 0, it will insert a new one, else it will just update + Employee dbEmployee = entityManager.merge(theEmployee); + return dbEmployee; + } + + @Override + public void deleteByID(int theId) { + Employee theEmployee = entityManager.find(Employee.class, theId); + entityManager.remove(theEmployee); + } + } diff --git a/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAO.class b/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAO.class index d27e71abcb8032c4e1bd4d02ab2694334eb623fe..0f4fc6ac3d2fe8063f3ed308394ddb8f573b8964 100644 GIT binary patch delta 219 zcmeBU+QPzh>ff$?3=9mm3?dV`4hV3hW#*+gReGi{GMH$1YWhqRP?)$)K%J36z&Eud zBR?e|u_!S&wIsEun2~|CBqJ51kfk`WER~TVMFXmu38qbnk%1ei#x=JfC%-ZksDvve zH3z5}Xubff$?3=9mm4BYGtOpFZrlMNXaCK}9|yq!@~nvsQ(ft7)cfsuh7sDz1u K1IXe8v$z14lnEjL diff --git a/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.class b/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.class deleted file mode 100644 index f099748e61085fc85d836d4230b35000ea0ee939..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1533 zcmbVMYflqF6g|@dOQF1qJVhEEKAPECN%>WpXbgVv z2l%6mciU2+HmTvm?#{h4_ntHNp1r^S{QL#r4K{`lL)=1N68#up7(W)D1$Ts3<$I-L zX&Z)tP30-G#SqUd7ZVsn!opAz!$>l0*uKkM;f1cMhVtx;+d3?ZTFp_mFv|CMS@=Bf z)*Qbs<=foe`P$aU!%4ye4&^0wX#rr!tf}%Pp|4P7a97t{jy{jD=1HX2;Gv@hoa<=Cspum;S_~dk==6knIjc2 zye{iTWl;r+&~u*Wn}+%t;J&W% zpceJ05`~=l`h=IH@B&^Dw()hHi*^9dg~mTsT9ygiswl6Vb4aX%M5EREbk|B Date: Fri, 11 Aug 2023 12:01:23 -0300 Subject: [PATCH 07/12] added methods to service layer and service implementation --- .../service/EmployeeService.java | 7 +++++++ .../service/EmployeeServiceImpl.java | 18 ++++++++++++++++++ .../dao/EmployeeDAOJpaImpl.class | Bin 0 -> 2409 bytes .../service/EmployeeService.class | Bin 282 -> 576 bytes .../service/EmployeeServiceImpl.class | Bin 1040 -> 1697 bytes 5 files changed, 25 insertions(+) create mode 100644 target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.class diff --git a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java index ee2e9a6..ff56fdb 100644 --- a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java +++ b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java @@ -6,4 +6,11 @@ public interface EmployeeService { List findAll(); + + Employee findById(int theId); + + Employee save(Employee theEmployee); + + void deleteByID(int theId); + } diff --git a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java index 2008c1f..f2631fe 100644 --- a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java +++ b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java @@ -4,6 +4,7 @@ import com.manumiguezz.crudapplication.entity.Employee; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -21,4 +22,21 @@ public EmployeeServiceImpl (EmployeeDAO theEmployeeDAO) { public List findAll() { return employeeDAO.findAll(); } + + @Override + public Employee findById(int theId) { + return employeeDAO.findById(theId); + } + + @Transactional + @Override + public Employee save(Employee theEmployee) { + return employeeDAO.save(theEmployee); + } + + @Transactional + @Override + public void deleteByID(int theId) { + employeeDAO.deleteByID(theId); + } } diff --git a/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.class b/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..872af42882b6a493ba20f5b19368b366fb2ad5a5 GIT binary patch literal 2409 zcmbVOT~pge6g_JL0^@)&1@b{CN!rwW6eVq%v^6CqKoX}WB#@!ci?tXLS@Os$GS07R zXWD7$L#NOEQJtQZg>f8D-SA*Zdw1_W=iWVc*MI->$DaVc!(Ij{q%90&F^D07+_5~7 zwkQ3ny>oD^Dq3J@)%9JyCXg;H?2lj=BNj4Qj3O&=zY^5!n)IWZTaDD)w{|6r99ge> zZbfQ0@NGv1_ExR#1x=+k*LR-PWr-t!OUl=-Zf;9oR#hl)t9&e9%TPl~IRU#Li56Cy$0+icwD3_DQQP=zcOuqZHCQ(;vJ-0qC^->%D9e2x_g zFjTeRguYX~eD^Kf`5zkS5@JH6pX3(yS%i(iA^3RN_0{vJcA&yn^1!1dUk)nL+n1qh z#))x2AGr;Iugm>J*+nSnj3Qf5AE|eQPt&&2M}hM~hO(wK8${sBZp7xOseQNM5`EqG z10A} zz0dcPvcQN+nw;>tZdp=m@0N;9kd$k$Pw3UYb?j>H;u^Eq=wfiOC?k7r)t5R7xz}6o zHQU8v4x9QuYL?hl_e}rwQ%QGrY$WcBaTg^XOGYY5;RWtqAlg7fn$B_xAMAS(?iuIc zoNmTZ9>vUJY_iE%4E9=PFNng5dhDA1nmJp0esQdr6HQ>L+)LoRG(r_O2KhaRyGY{;jvmvV;ybhW8^q$$udsgRD1|Ti9OD{b0s}nD zMlgwc98I@Y<15_fh<l^-tX!@3Kfg)zh>#J|dGYBt85Z@DJ8W8|~SE1c&dgRkKspWoBpuxrh&x91+w zw!yg+Hfh_6Gd6U7Oz2F-bjGj!j_aqmmBwEfZ;@#g!Td=83pt6K9Ym(u1(?DUJZ0cX zt}EdgpGhg6&`sb6lxZ?}yL_AUa|Vw|f0pVERbU1S9Zk literal 0 HcmV?d00001 diff --git a/target/classes/com/manumiguezz/crudapplication/service/EmployeeService.class b/target/classes/com/manumiguezz/crudapplication/service/EmployeeService.class index 0bcfcb6478a7739a042ce2c90592c9a7089d25c2..fb6d74a8ea19e09050637f0d827a1a3b6ccf60dd 100644 GIT binary patch delta 219 zcmbQmbby8H)W2Q(7#J9A8AK*>oeDBLg>3jcaZ}PJU%7PzhH` zY7S5{(0mu5HlX=o6EEn8u&@BlVqjxnWMBt6go%Lz$me9>0`j?md{#yV9tH-W5HABC WLWmzMB)}ku5CW8 zo%UglkPp5o|6$1OMEw>lUaIP)hGTx8 z4qxy46Id}hhb>D5RE=f4w!vlY9W37X+j<4VBTG&`PdrJD1X29(+q=4c1t}=vQzAo| zhEyacgfwXh9cwFZbi|V;0bN~6ub$8pEh`d Date: Fri, 11 Aug 2023 13:11:58 -0300 Subject: [PATCH 08/12] add employee method implemented on rest controller --- ...nApplication.java => CrudApplication.java} | 4 +-- .../rest/EmployeeRestController.java | 24 +++++++++++++++--- .../crudapplication/CrudApplication.class | Bin 0 -> 763 bytes .../CrudapplicationApplication.class | Bin 796 -> 0 bytes .../rest/EmployeeRestController.class | Bin 1131 -> 2620 bytes 5 files changed, 23 insertions(+), 5 deletions(-) rename src/main/java/com/manumiguezz/crudapplication/{CrudapplicationApplication.java => CrudApplication.java} (68%) create mode 100644 target/classes/com/manumiguezz/crudapplication/CrudApplication.class delete mode 100644 target/classes/com/manumiguezz/crudapplication/CrudapplicationApplication.class diff --git a/src/main/java/com/manumiguezz/crudapplication/CrudapplicationApplication.java b/src/main/java/com/manumiguezz/crudapplication/CrudApplication.java similarity index 68% rename from src/main/java/com/manumiguezz/crudapplication/CrudapplicationApplication.java rename to src/main/java/com/manumiguezz/crudapplication/CrudApplication.java index bd36360..3861a83 100644 --- a/src/main/java/com/manumiguezz/crudapplication/CrudapplicationApplication.java +++ b/src/main/java/com/manumiguezz/crudapplication/CrudApplication.java @@ -4,10 +4,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication -public class CrudapplicationApplication { +public class CrudApplication { public static void main(String[] args) { - SpringApplication.run(CrudapplicationApplication.class, args); + SpringApplication.run(CrudApplication.class, args); } } diff --git a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java index a42ece4..a4e84ad 100644 --- a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java +++ b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java @@ -4,9 +4,7 @@ import com.manumiguezz.crudapplication.entity.Employee; import com.manumiguezz.crudapplication.service.EmployeeService; import com.manumiguezz.crudapplication.service.EmployeeServiceImpl; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -25,5 +23,25 @@ public List findAll(){ return employeeService.findAll(); } + @GetMapping("/employees/{employeeId}") + public Employee getEmployee(@PathVariable int employeeId) { + Employee theEmployee = employeeService.findById(employeeId); + + if (theEmployee == null) { + throw new RuntimeException("Employee id not found - " + employeeId); + } + + return theEmployee; + } + + @PostMapping ("/employees") + public Employee addEmployee(@RequestBody Employee theEmployee) { + + theEmployee.setId(0); + + Employee dbEmployee = employeeService.save(theEmployee); + return dbEmployee; + } + } diff --git a/target/classes/com/manumiguezz/crudapplication/CrudApplication.class b/target/classes/com/manumiguezz/crudapplication/CrudApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..f384997ad03c5c3140cc6c057d5959fb43563c79 GIT binary patch literal 763 zcmb7COHbQC5dJnKIE3&Dk3w4x+(Hgrap@%#sg10Ru~05p@{H#7&FnYx^zY#jz!&VcP{Uk+dK(SQGpt^TKZ2)1C;UfrC1b}h zf2g!_M+|e_{ZW7>1CLF{Gog!2C561b<*_ZsVlqipESxf$56J#HwOeRmF+jVGB`h=a zj7@kxu}UWwR%G(p*xx)d#_?h4tW;7{TWE%;8%_rsq$1Dz=M~S;d9eO|I14#8+Q}Qo z2S#7eyjDc1th6Av5BC}B12dKkE1}Zzdyz%b{_?pDozTQ09SN(v{o<^c5H7*w)Gvi+QZ4%W$9zy>x6#20@q!GLBb=-p%CY+CP67Iabp7AqJ{Y~daG Wx9M*Xxuj~?Ddl^7Ann_J1pWhz#mUZuh6 zegHoTb=DxomC{Qsc}DX+``$c0-9G?0!rK;Vmbp^HokcvF-UsgOr=bQES!dabTqn-TW z_`v8ZTHT5$m6Z|X_TfH5ePG6tVJTEvek!s^+OIyBp%a=|q$6RKw_lufcdc@U!|?xc z@iQ}_=zSaASjpeEGd%ycPCHo#uhV3tf zb}Ex2l`9X6*2a}=Qmf;cXqG&Q!Wn|Kgj2q-c0vSJVC~~Q0y;DQ)xi9rkz68+lV+qF zyM`c1ioOZ-76d;MceS diff --git a/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class b/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class index f5ee39cbf0cd2321dfec70e276399ace25f5f0b0..6d54a91e84a4f12557d8446aaa9f15f01f467772 100644 GIT binary patch literal 2620 zcmbVNZBraY5Pk*@7LH4R%L@_$oJjNzNY)qff(IxdBIl zzZ?Yae$SDtjr**Hcpp^tP@YnesL%ue}wjXgt;FO-fwMg$5v z`yV8bMurxAen>}YrO%v^v*(auv9p{1Dw#}y$ga5-ksZuQN8Ar8Md9u8qD?EwoLk~{ zfqPQR^~IRlmz49Rj*-2k?6ZWe_C@1PG)sSIOQ?O<+U6dw2qir7)1Q}RhpWINKI zTHej?Tkd{fm^vPEGsDMXzjf-^x4GJH)CEO9z%8pSP^;JyZk`^~_1hA9db=I*Z9q+R z)wOCwC7yQ!uOv34F5s~SkK zByG@N@5g7JgU!tT3gc&zx-duMd34h_OcqJ>;{vXebUD(-4VWa69X=#fy1_K>VI*i* z^a7KqhMy;iX|9 z$=UATkkYJYU*LVsx|NnF>*?@}hA2#(^@v}x$uAkQqKia$t0BKSqbw;m7_E`(M%J2) rz95Ad)@kgbv)8Ign%$-Uy{7smz9gBV#aHxwjXX(ln(d;1M;QGV+ZWWR delta 282 zcmX|)OAf(M6o&s(tx}IfJ?mYsNF_#wOl`t4Ft!Cr_h76+gop)LfK7-ki2q)R!9C}E z`5*UIcqN?2=XwV)!yt0TVhX0iaBKR9x3QM+Y3(-fk$^#qaHf#vW$?C;=Pr=u+)8(X zGb9+DU`N_hOb+Y*BMDhHQQ)~_%jit+_V*cW63 tdy>I6Ag&cp_o@!n_Uo-_PaO^JER`l-YXMoJ&8)B0j#gcAm)!e1`d@g)7^wgN From fff5eb4f678f78ca5b81f20ce8b1c5eae75c2e1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Miguez=20Laur=C3=ADa?= Date: Fri, 11 Aug 2023 13:17:24 -0300 Subject: [PATCH 09/12] update epmloyee method added --- .../rest/EmployeeRestController.java | 6 ++++++ .../rest/EmployeeRestController.class | Bin 2620 -> 2829 bytes 2 files changed, 6 insertions(+) diff --git a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java index a4e84ad..6f41a2d 100644 --- a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java +++ b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java @@ -43,5 +43,11 @@ public Employee addEmployee(@RequestBody Employee theEmployee) { return dbEmployee; } + @PutMapping("/employees") + public Employee updateEmployee(@RequestBody Employee theEmployee) { + Employee dbEmployee = employeeService.save(theEmployee); + return dbEmployee; + } + } diff --git a/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class b/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class index 6d54a91e84a4f12557d8446aaa9f15f01f467772..f53a1cc4b6410a0e1e849711ddbaeb4bc7bd4d1e 100644 GIT binary patch delta 291 zcmX|)O)mpc6o#KWW?XLRq7jJ@u|QI7eIyMF8XNW5(V}Q|)x<=^$4sKL@FT4558x*d zHbg2C3lTeiN5n}a7U#Urd(L}up8Kx)&BxDE8z|7YGoM~68ApfBR!}^PPQ%L}P~`2k zmo}BS&Ks@g#3+ff$?3=9mm43QhT&ah6FW81^$!^Pms;K$D3&%+?i5HR@#+Y!c~$!pnl z8AB)EX4hf~XJn9@e2-mjvO0$hBg76w` gjKvI|3|>G!2axX##DNUKKpq#66~Yk45Wye`0O(d3bN~PV From 41067f03e16c6f48c73f46c2c5918a63e6d31087 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Miguez=20Laur=C3=ADa?= Date: Fri, 11 Aug 2023 13:19:28 -0300 Subject: [PATCH 10/12] delete method added --- .../crudapplication/rest/EmployeeRestController.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java index 6f41a2d..a0641c5 100644 --- a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java +++ b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java @@ -49,5 +49,10 @@ public Employee updateEmployee(@RequestBody Employee theEmployee) { return dbEmployee; } + @DeleteMapping("/employees") + public void deleteEmployee(@RequestBody int theId){ + employeeService.deleteByID(theId); + } + } From ddeddf8589b5065bd565da77cc29dc18ae89e21e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Miguez=20Laur=C3=ADa?= Date: Fri, 11 Aug 2023 13:42:55 -0300 Subject: [PATCH 11/12] update and delete method updated and fixed --- .../rest/EmployeeRestController.java | 16 +++++++++++++--- .../rest/EmployeeRestController.class | Bin 2829 -> 3252 bytes 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java index a0641c5..81b4943 100644 --- a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java +++ b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java @@ -49,10 +49,20 @@ public Employee updateEmployee(@RequestBody Employee theEmployee) { return dbEmployee; } - @DeleteMapping("/employees") - public void deleteEmployee(@RequestBody int theId){ - employeeService.deleteByID(theId); + @DeleteMapping("/employees/{employeeId") + public String deleteEmployee(@PathVariable int employeeId) { + Employee tempEmployee = employeeService.findById(employeeId); + + if (tempEmployee == null) { + throw new RuntimeException("Employee id: " + employeeId + " not found"); + } + + employeeService.deleteByID(employeeId); + + return "Employee with id: " + employeeId + " was deleted"; } + + } diff --git a/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class b/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class index f53a1cc4b6410a0e1e849711ddbaeb4bc7bd4d1e..dc156ed083c886305e6b6604bdbe5ea21dac9ba7 100644 GIT binary patch delta 1076 zcmaJ=+fEZv6kTW9GG(SzDFlQTS|o(41-x(v5sF$B@P>*gTJ3O2pfpYmAwKYKVq!8M z;1`f+Br&4F7ZVeI!Ng}@`~zcL=d>Ma3_kSCzOJ>--ls2WcI%9n+)I!vZzkEK&`2_p_pzOgoXX{ori_cQCKxZUA8{I6ulhi~G)w z9+~swfxxjMbZj*}6ce$`MlQCr@ide6BP9@Zvzx2Al|sp8%8un#rYSF($yiS&*HX4^ z**enBH@(BVB+%%5*BhNyf5a@~0DS1?RePKne>l<0;RNB~SqU#fC`T1e(yL(wVBi!^ z^DC`02(Y)0wolLjok})%2(;r5Pf8#O4%8|DS$qJ{Pg}zP2Kfy#GsNHU0)&kbTBD@% z62~m>*_JpVdO!pw8gT?sG~l?xj47c}S5y>ZILm$$)fmS)GEA_~5Ah2PI+}`N#~A#V zcoGT5b;15A8Up9h4zHZc$MR++BR`im&Z`4Q(ODuPfh1+2Wx%`DA=N`zUpQTN~uoM$pO) z$>)^cT-=o%cQ@CJ=|eVW^PQEhZpOXE?BA>N;wmXLTvJquKg=N(J0XUM74FCWD delta 743 zcmaKp%Tg0T6o$W^TslmW0i!}u1`sV36V#xHBA`YTMMb>dvU0)BVqvychj!RHeA0GtwDXK4U7?PuR9l#I&mq>~Eb?J>2PYnlnP0q((s;GpaL2 z0D*m!NCm=KA>+p?Ti9)ihWA1u)H@qGBY0X*;mJC*XT!`nW_2d&oYyng7{oNWpz@+z zq^Y`J1GSbXDhWZEJmU;9!5BvZ>0y~bxaW0(c`oVuJO@}{Q8t#;&tZNuW|{0|nAhds z%3k;~S9EWEoU1AfbxxAj+MJ7z1{+C`n+oe3QhJ}OW1-ZyPzu6^A&FlL7P^aD&~Q(5 zS?qI-PTIcc^&on~i-ygvi^0b$`pveg+Z>Nro8H@QtUmf5dBxguQtUe^cAez^=Vawy oPSV^Id&I3^x>QrSs*BtG`8(Vd)^1tT^N1%xv8ty$=Ov?m09Lt6j{pDw From 2447cd924c15473936eb74f85e926f488c965667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Miguez=20Laur=C3=ADa?= Date: Fri, 11 Aug 2023 20:49:08 -0300 Subject: [PATCH 12/12] delete method updated, DAO package commented, JPA repository interface added --- .../crudapplication/dao/EmployeeDAO.java | 30 +++--- .../dao/EmployeeDAOJpaImpl.java | 100 +++++++++--------- .../dao/EmployeeRepository.java | 7 ++ .../rest/EmployeeRestController.java | 2 +- .../service/EmployeeServiceImpl.java | 29 +++-- .../crudapplication/dao/EmployeeDAO.class | Bin 564 -> 0 bytes .../dao/EmployeeDAOJpaImpl.class | Bin 2409 -> 0 bytes .../rest/EmployeeRestController.class | Bin 3252 -> 0 bytes .../service/EmployeeServiceImpl.class | Bin 1697 -> 0 bytes 9 files changed, 93 insertions(+), 75 deletions(-) create mode 100644 src/main/java/com/manumiguezz/crudapplication/dao/EmployeeRepository.java delete mode 100644 target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAO.class delete mode 100644 target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.class delete mode 100644 target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class delete mode 100644 target/classes/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.class diff --git a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java index 2272379..e6f13fe 100644 --- a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java +++ b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java @@ -1,15 +1,15 @@ -package com.manumiguezz.crudapplication.dao; - -import com.manumiguezz.crudapplication.entity.Employee; - -import java.util.List; - -public interface EmployeeDAO { - List findAll(); - - Employee findById(int theId); - - Employee save(Employee theEmployee); - - void deleteByID(int theId); -} +//package com.manumiguezz.crudapplication.dao; +// +//import com.manumiguezz.crudapplication.entity.Employee; +// +//import java.util.List; +// +//public interface EmployeeDAO { +// List findAll(); +// +// Employee findById(int theId); +// +// Employee save(Employee theEmployee); +// +// void deleteByID(int theId); +//} diff --git a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java index 06153e7..6008827 100644 --- a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java +++ b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java @@ -1,50 +1,50 @@ -package com.manumiguezz.crudapplication.dao; - -import com.manumiguezz.crudapplication.entity.Employee; -import jakarta.persistence.EntityManager; -import jakarta.persistence.TypedQuery; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -public class EmployeeDAOJpaImpl implements EmployeeDAO { - - private EntityManager entityManager; - - @Autowired - public EmployeeDAOJpaImpl(EntityManager theEntityManager) { - entityManager = theEntityManager; - } - - @Override - public List findAll() { - - TypedQuery theQuery = entityManager.createQuery("from Employee", Employee.class); - - List employees = theQuery.getResultList(); - - return employees; - } - - @Override - public Employee findById(int theId) { - Employee theEmployee = entityManager.find(Employee.class, theId); - return theEmployee; - } - - @Override - public Employee save(Employee theEmployee) { - // if ID of passed employee is equal to 0, it will insert a new one, else it will just update - Employee dbEmployee = entityManager.merge(theEmployee); - return dbEmployee; - } - - @Override - public void deleteByID(int theId) { - Employee theEmployee = entityManager.find(Employee.class, theId); - entityManager.remove(theEmployee); - } - -} +//package com.manumiguezz.crudapplication.dao; +// +//import com.manumiguezz.crudapplication.entity.Employee; +//import jakarta.persistence.EntityManager; +//import jakarta.persistence.TypedQuery; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Repository; +// +//import java.util.List; +// +//@Repository +//public class EmployeeDAOJpaImpl implements EmployeeDAO { +// +// private EntityManager entityManager; +// +// @Autowired +// public EmployeeDAOJpaImpl(EntityManager theEntityManager) { +// entityManager = theEntityManager; +// } +// +// @Override +// public List findAll() { +// +// TypedQuery theQuery = entityManager.createQuery("from Employee", Employee.class); +// +// List employees = theQuery.getResultList(); +// +// return employees; +// } +// +// @Override +// public Employee findById(int theId) { +// Employee theEmployee = entityManager.find(Employee.class, theId); +// return theEmployee; +// } +// +// @Override +// public Employee save(Employee theEmployee) { +// // if ID of passed employee is equal to 0, it will insert a new one, else it will just update +// Employee dbEmployee = entityManager.merge(theEmployee); +// return dbEmployee; +// } +// +// @Override +// public void deleteByID(int theId) { +// Employee theEmployee = entityManager.find(Employee.class, theId); +// entityManager.remove(theEmployee); +// } +// +//} diff --git a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeRepository.java b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeRepository.java new file mode 100644 index 0000000..1d7d654 --- /dev/null +++ b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeRepository.java @@ -0,0 +1,7 @@ +package com.manumiguezz.crudapplication.dao; + +import com.manumiguezz.crudapplication.entity.Employee; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface EmployeeRepository extends JpaRepository { +} diff --git a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java index 81b4943..13a5acd 100644 --- a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java +++ b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java @@ -49,7 +49,7 @@ public Employee updateEmployee(@RequestBody Employee theEmployee) { return dbEmployee; } - @DeleteMapping("/employees/{employeeId") + @DeleteMapping("/employees/{employeeId} ") public String deleteEmployee(@PathVariable int employeeId) { Employee tempEmployee = employeeService.findById(employeeId); diff --git a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java index f2631fe..6acf772 100644 --- a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java +++ b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java @@ -1,42 +1,53 @@ package com.manumiguezz.crudapplication.service; import com.manumiguezz.crudapplication.dao.EmployeeDAO; +import com.manumiguezz.crudapplication.dao.EmployeeRepository; import com.manumiguezz.crudapplication.entity.Employee; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Optional; @Service public class EmployeeServiceImpl implements EmployeeService{ - private EmployeeDAO employeeDAO; + private EmployeeRepository employeeRepository; @Autowired - public EmployeeServiceImpl (EmployeeDAO theEmployeeDAO) { - employeeDAO = theEmployeeDAO; + public EmployeeServiceImpl (EmployeeRepository theEmployeeRepository) { + employeeRepository = theEmployeeRepository; } @Override public List findAll() { - return employeeDAO.findAll(); + return employeeRepository.findAll(); } @Override public Employee findById(int theId) { - return employeeDAO.findById(theId); + Optional result = employeeRepository.findById(theId); + + Employee theEmployee; + + if (result.isPresent()) { + theEmployee = result.get(); + } + else { + throw new RuntimeException("Did not find employee id: " + theId); + } + + return theEmployee; } - @Transactional @Override public Employee save(Employee theEmployee) { - return employeeDAO.save(theEmployee); + return employeeRepository.save(theEmployee); } - @Transactional @Override public void deleteByID(int theId) { - employeeDAO.deleteByID(theId); + employeeRepository.deleteById(theId); } } diff --git a/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAO.class b/target/classes/com/manumiguezz/crudapplication/dao/EmployeeDAO.class deleted file mode 100644 index 0f4fc6ac3d2fe8063f3ed308394ddb8f573b8964..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmbV}%}&BV6ot>lmh$5dq7P9v&c+>Tf&mkf8cayskDaj$nYN@%N#M~~_y9hX@zMlY zxG=apXHL$1_ukL1?FWE+TnDHTM4YE0m06jZq|}>@h>KFm#lo6cI+JHY$y|)mh0WJm z4+oO~9-%XrD=DnZ5;1w3>(~*3cay1swS;cii>mk187m^QbbUf|YLZO4ve1OlufSdO z7lqE8aqAzD{sVV5c3(cO$BJ+pj(bOU@Ep(D&2sf33z=%CizUH#Greo{mU6|cDm=RO zKOk-Xb-!dnOKHnEJlc>!c(hmcrg>S!`pH

g=<8kel7E>jc6HpB3=f8D-SA*Zdw1_W=iWVc*MI->$DaVc!(Ij{q%90&F^D07+_5~7 zwkQ3ny>oD^Dq3J@)%9JyCXg;H?2lj=BNj4Qj3O&=zY^5!n)IWZTaDD)w{|6r99ge> zZbfQ0@NGv1_ExR#1x=+k*LR-PWr-t!OUl=-Zf;9oR#hl)t9&e9%TPl~IRU#Li56Cy$0+icwD3_DQQP=zcOuqZHCQ(;vJ-0qC^->%D9e2x_g zFjTeRguYX~eD^Kf`5zkS5@JH6pX3(yS%i(iA^3RN_0{vJcA&yn^1!1dUk)nL+n1qh z#))x2AGr;Iugm>J*+nSnj3Qf5AE|eQPt&&2M}hM~hO(wK8${sBZp7xOseQNM5`EqG z10A} zz0dcPvcQN+nw;>tZdp=m@0N;9kd$k$Pw3UYb?j>H;u^Eq=wfiOC?k7r)t5R7xz}6o zHQU8v4x9QuYL?hl_e}rwQ%QGrY$WcBaTg^XOGYY5;RWtqAlg7fn$B_xAMAS(?iuIc zoNmTZ9>vUJY_iE%4E9=PFNng5dhDA1nmJp0esQdr6HQ>L+)LoRG(r_O2KhaRyGY{;jvmvV;ybhW8^q$$udsgRD1|Ti9OD{b0s}nD zMlgwc98I@Y<15_fh<l^-tX!@3Kfg)zh>#J|dGYBt85Z@DJ8W8|~SE1c&dgRkKspWoBpuxrh&x91+w zw!yg+Hfh_6Gd6U7Oz2F-bjGj!j_aqmmBwEfZ;@#g!Td=83pt6K9Ym(u1(?DUJZ0cX zt}EdgpGhg6&`sb6lxZ?}yL_AUa|Vw|f0pVERbU1S9Zk diff --git a/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class b/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class deleted file mode 100644 index dc156ed083c886305e6b6604bdbe5ea21dac9ba7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3252 zcmbVOZC4XV6n+K*2}yX13Mwk8VkMw#ZSgfo6-1>CN{NkH`!>lAVP&(M?#@E7r+=Wo zpg*HMr>#eOPW!Rv^f&eN^v>>PHwX&!LpFP7?%ey_=eaYpfB*aH4*)l?mPQ9UlSpLI zg>Hs{XMBTeCb#O^gX%L;lMLN6hGocEhR*Rqr3WeWB$3V{gDgX_W;e73x4ec?_r&w( zTFvov-fWsijZ4F}G)K5nTWB;*drOEFGUjbdI<{#FhoN7D6J_CS7&XCgt+ZD_H*k$& zhD(bX^r1hAfh-1*W4Q7^<1i#w4NJdenhd$|LdmDYlZL643|IPD4rg%$Lkub9IJdQ^ zGfa;!7WPCgENRHC2zW7xqYTGmzE?bQXo!VxYoe*R%aK6Gvlzh%hT#TZ7epPg`pA%L z^yW%#NtfY>N*xC&OUJP4#WaR-N=Z7ZJa*0(Drvlf(@C7kVhm>)w7vLx4Lw7bE2OGD zK>#X>{c~B2qd)^L-ykXV@dGn*a1L`I3RUv+SzJ(cq;+8mDM*&vIqK}=3^RMSFF9g(TkV(kUHdYZYpuSZ z>N8x|+X~gIv2khtF>SYv(EYDl5#M-p>dx8v7D4IrnmU(JYaK+;Wv?xNU$D#KLb8$w zjm<0juIskHUE@|6+Fc}Skh1MLHF3vKdvBzbYWs~crOrWytNYHreK`?ykflDcG4h1Q zn+9E=bG9vA>F{Q-UETg}JWAs+o+R;^I?bOljK$}*VQtv!LJN-V;DEowYtnYM7=CO& zxI@Pv=sj-frf|nfw!Q8(i#yNvwvlZMA8s|pF78j;{DW)1*nX*mA?CShmJKP2DSSca zL`#Fbq37w0$gkR-rROi?Sqfh<9BrGvo@cQ~3MA2JG`mUH8AVVoo7~L@jYVfbcG0qg zGjDR&6>btVa&`x6yOEK^D#NL_yV5sJz#QFyDY_* zo_GN^G5IT!Ka58!ry|r-k-TTHv_E<8M>RayE^h+Ml(z$) o_`Iu6vK6w+k^4h@O7>x@twLj;`_C`^=hvvxOqxb(5UAtWfAFAEq5uE@ diff --git a/target/classes/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.class b/target/classes/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.class deleted file mode 100644 index 8dcc85da9d82b1cd5446e8dc60c227d0868a8cb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1697 zcmbVNYflqF6g{)Fls*J3%G(#d+9IqdMk5bX5t1fVjF5hx?ha*eyW4DMA>~(TqA~cv zAK;HN-r1J67O>)n?d-if_ndR@+`0Yv>-!G?Yj~D`fq@tzDMT^IFnYibx#@7XVs4iY zgryh;SEVb}I>SIFTZ&@{@fZ>*B#~lRvAn8Tq~WkOxOllD@EsI=&+-E?0q1DQ=!=v(>(d_4d*_VMZw(-Hfb2x2P+%f4N1ycnmMk zO-}ig9HpkOaaU@)9XHpNP3(AqZ;36bk8tv|#$ES(QQs?u%(*0WD!uSjqbAH&$O`Vz zj4{A)iylMI8Jbj4dXLhV0nCxLMSg?UMD80{ZvHD`pUEhlEO+=sn8F0J8K9k}F3m)ANKvG}SU$jMhZ%3t}g@!tjZ#CY9a~OoS8~ zP6Ib7=EFUY$VcO&h4hM6Ejp=@W==3>oPnC{Qk!h6O=1Cy1l3ZzKp51lm~Iv058U|^ zOq|7?y8ze3;|{J#xTjTE3OQ(Ov^X|;w9gpmR9ydsfYc=@yi@JJ>hI<;@Pxt*JZ-Zt G1HS=ShosB^