Guest User

Untitled

a guest
Jul 27th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.88 KB | None | 0 0
  1. package br.com.sabrina.api.controller;
  2.  
  3. import java.util.List;
  4.  
  5. import javax.persistence.EntityManager;
  6. import javax.ws.rs.Consumes;
  7. import javax.ws.rs.DELETE;
  8. import javax.ws.rs.GET;
  9. import javax.ws.rs.POST;
  10. import javax.ws.rs.PUT;
  11. import javax.ws.rs.Path;
  12. import javax.ws.rs.PathParam;
  13. import javax.ws.rs.Produces;
  14. import javax.ws.rs.WebApplicationException;
  15. import javax.ws.rs.core.Response;
  16.  
  17. import br.com.sabrina.api.model.ProviderModel;
  18.  
  19. @Path("/provider")
  20. public class ProviderController {
  21. private JpaEntityManager JPAEM = new JpaEntityManager();
  22. private EntityManager objEM = JPAEM.getEntityManager();
  23.  
  24. @GET
  25. @Path("/list")
  26. @Produces("application/json")
  27. List<ProviderModel> list() {
  28. try {
  29. String query = "SELECT c FROM ProviderModel c ";
  30. List<ProviderModel> providers = objEM.createQuery(query, ProviderModel.class).getResultList();
  31. objEM.close();
  32. return providers;
  33. } catch(Exception e) {
  34. throw new WebApplicationException(500);
  35. }
  36. }
  37.  
  38. @GET
  39. @Path("/search/{id}")
  40. @Produces("application/json")
  41. ProviderModel search(@PathParam("id") int id) {
  42. try {
  43. ProviderModel provider = objEM.find(ProviderModel.class, id);
  44. objEM.close();
  45. return provider;
  46. } catch(Exception e) {
  47. throw new WebApplicationException(500);
  48. }
  49. }
  50.  
  51. @POST
  52. @Path("/register")
  53. @Consumes("application/json")
  54. public Response register(ProviderModel objProvider) {
  55. try {
  56. objEM.getTransaction().begin();
  57. objEM.persist(objProvider);
  58. objEM.getTransaction().commit();
  59. objEM.close();
  60. return Response.status(200).entity("Cadastro realizado!").build();
  61. } catch(Exception e) {
  62. throw new WebApplicationException(500);
  63. }
  64. }
  65.  
  66. @PUT
  67. @Path("/update")
  68. @Consumes("application/json")
  69. public Response update(ProviderModel objProvider) {
  70. try {
  71. objEM.getTransaction().begin();
  72. objEM.persist(objProvider);
  73. objEM.getTransaction().commit();
  74. objEM.close();
  75. return Response.status(200).entity("Cadastro alterado!").build();
  76. } catch(Exception e) {
  77. throw new WebApplicationException(500);
  78. }
  79. }
  80.  
  81. @DELETE
  82. @Path("/delete/{id}")
  83. public Response delete(@PathParam("id") int id) {
  84. try {
  85. ProviderModel objProvider = objEM.find(ProviderModel.class, id);
  86. objEM.getTransaction().begin();
  87. objEM.remove(objProvider);
  88. objEM.getTransaction().commit();
  89. objEM.close();
  90. return Response.status(200).entity("Cadastro excluido!").build();
  91. } catch(Exception e) {
  92. throw new WebApplicationException(500);
  93. }
  94. }
  95. }
  96.  
  97. package br.com.sabrina.api.model;
  98.  
  99. import java.util.Date;
  100. import javax.persistence.Column;
  101. import javax.persistence.Entity;
  102. import javax.persistence.GeneratedValue;
  103. import javax.persistence.GenerationType;
  104. import javax.persistence.Id;
  105. import javax.persistence.Table;
  106. import javax.persistence.Temporal;
  107. import javax.persistence.TemporalType;
  108.  
  109. @Entity //estrutura de mapeamento de objeto relacional
  110. @Table(name="Provider")
  111. public class ProviderModel {
  112. //correspondente a tabela Provider do banco de dados
  113. @Id
  114. @GeneratedValue(strategy = GenerationType.IDENTITY)
  115. int provider_id;
  116.  
  117. @Column(name="name")
  118. String name;
  119.  
  120. @Column(name="cpf_cnpj")
  121. String cpf_cnpj;
  122.  
  123. @Column(name="rg")
  124. String rg;
  125.  
  126. @Column(name="address")
  127. String adress;
  128.  
  129. @Column(name="city")
  130. String city;
  131.  
  132. @Column(name="email")
  133. String email;
  134.  
  135. @Column(name="register_date")
  136. @Temporal(TemporalType.TIMESTAMP)
  137. Date register_date;
  138.  
  139. public int getId() {
  140. return provider_id;
  141. }
  142.  
  143. public void setId(int provider_id) {
  144. this.provider_id = provider_id;
  145. }
  146.  
  147. public String getName() {
  148. return name;
  149. }
  150.  
  151. public void setName(String name) {
  152. this.name = name;
  153. }
  154. }
  155.  
  156. package br.com.sabrina.api.controller;
  157. import javax.persistence.EntityManager;
  158. import javax.persistence.EntityManagerFactory;
  159. import javax.persistence.Persistence;
  160.  
  161. public class JpaEntityManager {
  162. private EntityManagerFactory factory = Persistence.createEntityManagerFactory("provider");
  163. private EntityManager entityManager = factory.createEntityManager();
  164.  
  165. public EntityManager getEntityManager() {
  166. return entityManager;
  167. }
  168. }
  169.  
  170. <persistence xmlns="http://java.sun.com/xml/ns/persistence"
  171. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  172. xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
  173. version="2.0">
  174. <!-- unidade de persistencia com o nome provider -->
  175. <persistence-unit name="provider">
  176. <!-- Implementação do JPA, no nosso caso Hibernate -->
  177. <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
  178. <!-- Aqui são listadas todas as entidades -->
  179. <class>br.com.sabrina.api.model.ProviderModel</class>
  180. <properties>
  181. <!-- Propriedades JDBC -->
  182. <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
  183. <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/provider" />
  184. <property name="javax.persistence.jdbc.user" value="root" />
  185. <property name="javax.persistence.jdbc.password" value="" />
  186. <!-- Configurações específicas do Hibernate -->
  187. <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
  188. <property name="hibernate.hbm2ddl.auto" value="update" />
  189. <property name="hibernate.show_sql" value="true" />
  190. <property name="hibernate.format_sql" value="true" />
  191. </properties>
  192. </persistence-unit>
  193. </persistence>
  194.  
  195. <?xml version="1.0" encoding="UTF-8"?>
  196. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://java.sun.com/xml/ns/javaee" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  197. <display-name>ApiRest</display-name>
  198. <welcome-file-list>
  199. <welcome-file>index.html</welcome-file>
  200. <welcome-file>index.htm</welcome-file>
  201. <welcome-file>index.jsp</welcome-file>
  202. <welcome-file>default.html</welcome-file>
  203. <welcome-file>default.htm</welcome-file>
  204. <welcome-file>default.jsp</welcome-file>
  205. </welcome-file-list>
  206. <servlet>
  207. <servlet-name>Jersey Web Application</servlet-name>
  208. <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
  209. <load-on-startup>1</load-on-startup>
  210. </servlet>
  211. <servlet-mapping>
  212. <servlet-name>Jersey Web Application</servlet-name>
  213. <url-pattern>/service/*</url-pattern>
  214. </servlet-mapping>
  215. </web-app>
Add Comment
Please, Sign In to add comment