Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.com.sabrina.api.controller;
- import java.util.List;
- import javax.persistence.EntityManager;
- import javax.ws.rs.Consumes;
- import javax.ws.rs.DELETE;
- import javax.ws.rs.GET;
- import javax.ws.rs.POST;
- import javax.ws.rs.PUT;
- import javax.ws.rs.Path;
- import javax.ws.rs.PathParam;
- import javax.ws.rs.Produces;
- import javax.ws.rs.WebApplicationException;
- import javax.ws.rs.core.Response;
- import br.com.sabrina.api.model.ProviderModel;
- @Path("/provider")
- public class ProviderController {
- private JpaEntityManager JPAEM = new JpaEntityManager();
- private EntityManager objEM = JPAEM.getEntityManager();
- @GET
- @Path("/list")
- @Produces("application/json")
- List<ProviderModel> list() {
- try {
- String query = "SELECT c FROM ProviderModel c ";
- List<ProviderModel> providers = objEM.createQuery(query, ProviderModel.class).getResultList();
- objEM.close();
- return providers;
- } catch(Exception e) {
- throw new WebApplicationException(500);
- }
- }
- @GET
- @Path("/search/{id}")
- @Produces("application/json")
- ProviderModel search(@PathParam("id") int id) {
- try {
- ProviderModel provider = objEM.find(ProviderModel.class, id);
- objEM.close();
- return provider;
- } catch(Exception e) {
- throw new WebApplicationException(500);
- }
- }
- @POST
- @Path("/register")
- @Consumes("application/json")
- public Response register(ProviderModel objProvider) {
- try {
- objEM.getTransaction().begin();
- objEM.persist(objProvider);
- objEM.getTransaction().commit();
- objEM.close();
- return Response.status(200).entity("Cadastro realizado!").build();
- } catch(Exception e) {
- throw new WebApplicationException(500);
- }
- }
- @PUT
- @Path("/update")
- @Consumes("application/json")
- public Response update(ProviderModel objProvider) {
- try {
- objEM.getTransaction().begin();
- objEM.persist(objProvider);
- objEM.getTransaction().commit();
- objEM.close();
- return Response.status(200).entity("Cadastro alterado!").build();
- } catch(Exception e) {
- throw new WebApplicationException(500);
- }
- }
- @DELETE
- @Path("/delete/{id}")
- public Response delete(@PathParam("id") int id) {
- try {
- ProviderModel objProvider = objEM.find(ProviderModel.class, id);
- objEM.getTransaction().begin();
- objEM.remove(objProvider);
- objEM.getTransaction().commit();
- objEM.close();
- return Response.status(200).entity("Cadastro excluido!").build();
- } catch(Exception e) {
- throw new WebApplicationException(500);
- }
- }
- }
- package br.com.sabrina.api.model;
- import java.util.Date;
- import javax.persistence.Column;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.GenerationType;
- import javax.persistence.Id;
- import javax.persistence.Table;
- import javax.persistence.Temporal;
- import javax.persistence.TemporalType;
- @Entity //estrutura de mapeamento de objeto relacional
- @Table(name="Provider")
- public class ProviderModel {
- //correspondente a tabela Provider do banco de dados
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- int provider_id;
- @Column(name="name")
- String name;
- @Column(name="cpf_cnpj")
- String cpf_cnpj;
- @Column(name="rg")
- String rg;
- @Column(name="address")
- String adress;
- @Column(name="city")
- String city;
- @Column(name="email")
- String email;
- @Column(name="register_date")
- @Temporal(TemporalType.TIMESTAMP)
- Date register_date;
- public int getId() {
- return provider_id;
- }
- public void setId(int provider_id) {
- this.provider_id = provider_id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
- package br.com.sabrina.api.controller;
- import javax.persistence.EntityManager;
- import javax.persistence.EntityManagerFactory;
- import javax.persistence.Persistence;
- public class JpaEntityManager {
- private EntityManagerFactory factory = Persistence.createEntityManagerFactory("provider");
- private EntityManager entityManager = factory.createEntityManager();
- public EntityManager getEntityManager() {
- return entityManager;
- }
- }
- <persistence xmlns="http://java.sun.com/xml/ns/persistence"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
- version="2.0">
- <!-- unidade de persistencia com o nome provider -->
- <persistence-unit name="provider">
- <!-- Implementação do JPA, no nosso caso Hibernate -->
- <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
- <!-- Aqui são listadas todas as entidades -->
- <class>br.com.sabrina.api.model.ProviderModel</class>
- <properties>
- <!-- Propriedades JDBC -->
- <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
- <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/provider" />
- <property name="javax.persistence.jdbc.user" value="root" />
- <property name="javax.persistence.jdbc.password" value="" />
- <!-- Configurações específicas do Hibernate -->
- <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
- <property name="hibernate.hbm2ddl.auto" value="update" />
- <property name="hibernate.show_sql" value="true" />
- <property name="hibernate.format_sql" value="true" />
- </properties>
- </persistence-unit>
- </persistence>
- <?xml version="1.0" encoding="UTF-8"?>
- <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">
- <display-name>ApiRest</display-name>
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- <welcome-file>index.htm</welcome-file>
- <welcome-file>index.jsp</welcome-file>
- <welcome-file>default.html</welcome-file>
- <welcome-file>default.htm</welcome-file>
- <welcome-file>default.jsp</welcome-file>
- </welcome-file-list>
- <servlet>
- <servlet-name>Jersey Web Application</servlet-name>
- <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>Jersey Web Application</servlet-name>
- <url-pattern>/service/*</url-pattern>
- </servlet-mapping>
- </web-app>
Add Comment
Please, Sign In to add comment