Buscar

UNI7_SI_TP6_P3_TécnicasDeProgramação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

TÉCNICAS DE PROGRAMAÇÃO
Neusa Liberato Evangelista
REST Aplicação Exemplo - evoluindo e aplicando
Abstract Factory
SERVIÇO REST COM SPRING
Próximos passos
Incluir opção de banco em memória H2 (utilizar quando não tivermos
Docker).
Métodos para inserir os tipos de atendimento padrão no banco em
memória.
Criar método no repositório para consulta nativa.
Criar as classes de mapeamento das demais tabelas.
Criar as interfaces Repository das demais tabelas.
Criar os BCs e Controllers necessários.
#H2 - in memory
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
# Console H2 (opcional)
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
SERVIÇO REST COM SPRING
Application.properties
<dependency>
 <groupId>com.h2database</groupId>
 <artifactId>h2</artifactId>
 <scope>runtime</scope>
</dependency>
SERVIÇO REST COM SPRING
pom.xml
public List<TipoAtendimento> inserirTiposPadrao() {
 if (CollectionUtils.isEmpty(this.obterTodos())) {
 Long id[] = {1L,2L,3L,4L,5L};
 String nome[] = {"Respiratório","Traumatológico", "Ginecológico",
"Obstrético","Clínico Geral"};
 for (int i=0; i<id.length;i++) {
 TipoAtendimento tipo = new TipoAtendimento(id[i], nome[i]);
 this.repository.save(tipo);
 }
 } 
 return this.obterTodos();
 }
SERVIÇO REST COM SPRING
Método no BC para inserir tipos de atendimento
 @Query(value = "SELECT * FROM tipo_atendimento WHERE
nome_tipo_atendimento like :criterio", nativeQuery = true)
 List<TipoAtendimento> obterPorParteNome(@Param("criterio") String criterio);
SERVIÇO REST COM SPRING
Método no Repository consulta nativa
public List<TipoAtendimento> obterPorNome(String nomeOuParte) {
 String nomeOuParteLike= "%" + nomeOuParte + "%";
 List<TipoAtendimento> lista= repository.obterPorParteNome(nomeOuParteLike); 
 return lista;
 }
Método no BC para chamar consulta nativa
@PostMapping("/inserirTipos")
@ResponseBody
 public ResponseEntity<List<TipoAtendimento>> inserirTipos() {
 return ResponseEntity.ok(bc.inserirTiposPadrao());
 }
 @GetMapping("/consultarPorNome/{nomeOuParte}")
 public ResponseEntity<List<TipoAtendimento>> obterTodos(@PathVariable String
nomeOuParte) {
 return ResponseEntity.ok(bc.obterPorNome(nomeOuParte));
 }
SERVIÇO REST COM SPRING
Controller
SERVIÇO REST COM SPRING
Mapeamento das tabelas: TipoDocumento, Pessoa e Atendimento
Modelo sugerido
SERVIÇO REST COM SPRING
Tipo Documento
ORM: classe @Entity TipoDocumento 
Repository: classe TipoDocumentoRepository extends
JpaRepository<TipoDocumento, Long>
Business: classe TipoDocumentoBC 
Controller: classe TipoDocumentoController
SERVIÇO REST COM SPRING
Pessoa
ORM: classe @Entity Pessoa
Repository: classe PessoaRepository extends JpaRepository<Pessoa,
Long> 
Business: classe PessoaBC
Controller: classe PessoaController
SERVIÇO REST COM SPRING
Atendimento
ORM: classe @Entity Atendimento
Repository: classe AtendimentoRepository extends
JpaRepository<Atendimento, Long> 
APLICANDO PADRÃO ABSTRACT FACTORY
APLICANDO PADRÃO SINGLETON
O padrão AbstractFactory não garante que teremos apenas uma instância
de cada fábrica e de cada produto, então vamos aplicar o padrão Singleton
para isso.
public class CpfFactory implements IdentificacaoFactory {
 private static CpfFactory INSTANCE = new CpfFactory();
 private CpfFactory() { 
 } 
 public static CpfFactory getInstance() {
 return INSTANCE;
 }
...
OBRIGADA
Neusa Liberato Evangelista

Continue navegando

Outros materiais