Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos

Slides:



Advertisements
Apresentações semelhantes

Advertisements

Framework para desenvolvimento web
Prof. Alessandro J. de Souza
Java Conexão com Banco de Dados
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS ACESSO A BANCO DE DADOS COM O JDBC Prof. Thiago Pereira Rique
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Tecnologias para Internet
Desenvolvimento de Projetos e Aplicações Web
Java :: Persistência de Dados
Acesso a Base de Dados JDBC Trabalho Realizado por:
Integração com Banco de Dados
Aplicativos Comerciais para Internet Camada View do MVC Apresentando os resultados de uma Consulta.
Design Patterns / Acesso ao banco de dados (java.sql)
Programação Orientada a objetos II
Anexo A. JDBC  Conjunto de interfaces e classes java que faz envio de consultas para um banco de dados.  Objetos(tipos)  Conexão (Driver e Connection)
JSP / Servlets Avançado
JAVA - Struts. AULA 3.
Struts Java avançado – PCC Jobson Ronan
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
Configuração do Ambiente de programação
Implementação MVC Pedro Antonino.
Aplicações Web com Orientação a Objetos
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Tópicos Especiais J2EE Prof. Cristina Valadares Curso de Ciência da Computação.
Equipe Bruno Gesoaldo Tiago.   Auxilia nas aplicações WEB.  Comunicação e integração entre as camadas de visualização (controle). STRUTS.
Ultimos recursos Jobson Ronan
Java Conexão com Baco de dados Saulo Bazzi Oberderfer Fonte:
JavaServer Faces Rapid Web Application Development em Java Ricardo Cavalcanti Jobson Ronan
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
JSTL.
Acesso a Banco de Dados com JDBC e DAO
Universidade Federal de Sergipe Departamento de Sistemas de Informação Bruno Cruz Jessica Rodrigo Aragão – ASP.NET MVC 3.
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Desenvolvimento WEB II Aula 3 – Conexão com o Banco de Dados
Acessando banco de dados com JAVA.  Linguagem independente de plataforma; ◦ “Write once, run anywhere” ◦ JVM  Java Virtual Machine  Mecanismo que permite.
O que é? Um framework para facilitar a implementação de uma arquitetura MVC em aplicações web Oferece  Um servlet controlador configurável ( Front Controller.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Aplicações em Três Camadas MVC – Model, View, Control.
Introdução POO Thiago Medeiros Sistemas de Informação Definição: Sistemas de Informação é uma combinação de pessoas, dados, processos, redes de.
1 Introdução aos Padrões de Projetos (na prática) Créditos: Lúbia Vinhas Hazel Carvalho Crato Adaptações: Prof. Nécio de Lima Veras.
1 Programação de Banco de Dados José Antônio da Cunha George Azevedo da Silva.
Web Application Rafael Muniz e Marcus Vinícius Plugins MAVEN 04/04/2009 Revisão 12/04/2009.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Dicas da Apresentação de Slides  Esse tutorial visa lhe fornecer algumas dicas de como aproveitar ao máximo alguns recursos oferecidos nos estudos em.
Programação Gráfica em Java Swing Aula Na aula passada vimos: Thread Animação Técnica de desenho eficiente (double-bufferring)
ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller.
Universidade Federal do Espírito Santo - UFES Laboratório de Computação de Alto Desempenho - LCAD Introdução ao Logisim Prof. Alberto F. De Souza LCAD/DI/UFES.
1 Arquitetura e JSF Gustavo Wagner
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Prof: Gustavo Wagner
V Seminário RSJUG Confraria do Java JavaDB Um Banco de Dados 100% Java Profa. Me. Karen Selbach Borges.
Noções de projeto orientado a objetos - camadas Prof. Gustavo Wagner (alterações) Prof. Tiago Massoni (Slides originais) Desenvolvimento de Sistemas FATEC-PB.
Programação para Internet Aula 06 Linguagem Java (Orientação a Objetos – Atributos e Métodos)
Polimorfismo com Interfaces Pacotes em Java Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
Capítulo 5: SCRIPTS ALUNOS: CARLOS EDUARDO C. DESIDERIO / EDUARDO MATHEUS VOLANSKI JADER JEPSEN SCHMIELE / LINDOLFO.
Banco de Dados Relacionais. Tabelas DB Relacionais são baseados em tabelas As tabelas armazenam registros Cada registro ocupa uma linha da tabela Registros.
Normalização (4FN) Na literatura aparecem outras formas normais, como a forma normal de Boyce/Codd, a 4FN e a 5FN. Destas a única que tem importância na.
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
AULA Mais Herança Curso: Informática (Subseqüente) Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Padrões de Projeto Aula 14 – Padrão Abstract Factory.
Herança e Polimorfismo Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Transcrição da apresentação:

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Padrão Factory Tem como objetivo, a criação de Objetos

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Struts: Acessando um Banco de Dados Para acessar um banco de dados usando a Strut´s, temos que lembra de nosso padrão MVC2.

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos A arquitetura MVC - Model-View-Controller (Modelo-Visualização-Controle) É um padrão que separa de maneira independente o Modelo, Objetos de negócio (Model) Camada de apresentação, que representa a interface com o usuário ou outro sistema (View); Controle de fluxo da aplicação (Controller). Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos O Controller já vem implementado na Struts, embora... Caso seja possível estendê-lo a fim de adicionar funcionalidade. O fluxo da aplicação é programado em um arquivo XML através das ações que serão executadas. As ações são classes base implementadas pela framework seguindo o padrão MVC. Assim devemos estendê-las a fim de adicionar a funcionalidade desejada. Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Arleys Pereira Nunes de Castro - Especialista : Sistema distribuídos A geração da interface é feita através de custom tags, também já implementadas pela Struts, evitando assim o uso de Scriptlets. (códigos java entre e ), deixando o código JSP mais limpo e fácil de manter. Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Desta forma, lembraremos do nosso desenho ilustrativo da aula passada. Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Definindo as configurações do Connection Pool. A maioria das aplicações para web que usam banco de dados podem ser beneficiadas por um Connection Pool coleção de conexões que ficam permanentemente abertas com o SGBD. Estabelecer uma conexão com o banco de dados a cada solicitação que chega no web server para consultar/manipular dados é um processo muito dispendioso conexão e verificação de permissões do usuário do banco. Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Uma aplicação não usa banco de dados o tempo todo, somente em alguns momentos para obter os dados, depois esta conexão não é mais necessária. Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Um Connection Pool pode ajudar bastante: Elimina um overread desnecessário de se re-conectar a cada solicitação que chega: Pois ele fará o gerenciamento da coleção de conexões prontas para serem usadas, e "marcará" as conexões em uso. Se por acaso você pegar uma conexão e ficar um determinado tempo sem fazer nada (timeout), o Connection Pool resgata esta conexão para uso, e invalida o objeto de conexão que você pegou anteriormente. Tamanha é a importância deste tópico, que acabou entrando na especificação JDBC ( javax.sql.DataSource ). Praticamente todos os Containers possuem um mecanismo que fornecem um Connection Pool. Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos A Struts Framework implementa um Connection Pool usando DataSource. Na versão 1.0, a Conexão era obtida do ActionServlet. Por fim no release 1.1 de produção, as classes que tratam do DataSource foram parar no arquivo struts- legacy.jar, indicando claramente a intenção de descontinuar esta funcionalidade em favor de uma solução padrão (JCA), ou seja, implementada pelo container; apesar de ainda continuar funcionando. Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos No arquivo server.xml entre os tag´s será definido o trecho abaixo para especificar Connection Pool : Struts: Acessando um Banco de Dados <set-property property="driverClassName" value="sun.jdbc.odbc.JdbcOdbcDriver" /> <set-property property="url" value="jdbc:odbc: Driver={Microsoft Access Driver (*.mdb)} ;DBQ=C:/BDAula.mdb" />

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos No código Java, quando precisar de uma conexão de banco de dados. Você irá solicitar uma conexão ao Connection Pool, o qual irá marcar uma conexão no Pool, como sendo usada, e lhe dará algum tempo para fazer alguma coisa. Tão logo que você use a conexão para consultar ou manipular dados no banco de dados, será necessário devolver a conexão para o pool Se não fizer isto o Connection Pool fecha a conexão para você e a resgata para o pool. Para fazer isto, basta executar o método close(), que na verdade não a fecha, mas devolve para o Pool (dependendo da implementação do Connection Pool, poderá ter variações da maneira de devolver ao pool, algo do tipo invocar um metodo do tipo releaseConnection, do objeto Connection Pool). Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Definindo a Camada de Negócio (usando DAO Beans DTO) Para isso usaremos os conhecimentos das aulas anteriores, para dividir as camadas que o modelo MVC exige, para isso. Usaremos as classes DAO Beans DTO que criamos na nossa aula prática de DAO, efetuando a mudança necessária. Apenas a classe Beans será chamada agora de ActionBeans – que terá a mesma estrutura e as mesmas propriedades. Agora usaremos o conceito do DataSource para efetuar uma conexão. Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Struts: Acessando um Banco de Dados 1 private ArrayList getTodosNomes(){ 2 Connection conn = null; 3 Statement stmt = null; 4 PreparedStatement prpStmt = null; 5 ResultSet rs = null; 7 try{ 8 dataSource = (DataSource) servlet.getServletContext().getAttribute("bancoDataSource"); 9 conn = dataSource.getConnection(); 10 String sqlQuery = "SELECT * FROM tbPessoa WHERE NOME Like '%" + getName() + "%'"; 11 prpStmt = conn.prepareStatement(sqlQuery); 12 rs = prpStmt.executeQuery(); 13 while (rs.next()) { 14 MinhaLista.add(new tbPessoaDTO(rs.getInt("CODIGO"), rs.getString("NOME"), rs.getString("BAIRRO")) ); 15} return MinhaLista; 27 }

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Definindo o Controller O Controller é responsável por receber as requisições do browser e invocar os objetos de negócio do Model para executar algum processo retornando um resultado que servirá de base para que o Controller possa direcionar para o JSP que deverá gerar a interface com o usuário. O ActionServlet lê as configurações do arquivo struts-config.xml. Ao receber as solicitações do usuário, chama o ActionBean correspondente à requisição, e de acordo com o resultado do ActionBean, executa um JSP. Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Definindo a camada de apresentação A Camada de apresentação representa o view (visualização) no padrão MVC. É em sua grande maioria baseada em JSPs e alguns servlets envolvidos na geração da interface com o usuário ou com outros sistemas. A Struts framework fornece suporte para construir aplicações multi-idiomas, interação com formulários e outras utilidades através de tags personalizadas (Custom Tags). Struts: Acessando um Banco de Dados

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Struts: Acessando um Banco de Dados Agora a camada de apresentação deverá trazer os registros (em uma collection) para exibi-los em um grid. Para efetuar isso não mais usaremos o tag de <c:forEach var="lista“....

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Struts: Acessando um Banco de Dados Na camada view, nosso JSP será mais fácil manipular os dados. Agora apenas mencionando qual getXXX irá carregar a célula do grid. Para isso foi usado uma tag do strut´s Nome Endereço

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos Struts: Acessando um Banco de Dados A princípio, a utilização do Struts acessando parece bem simples, que de fato é, porem exige um cuidado especial nos arquivos de configuração XML´s Vamos agora fazer um trabalho prático no laboratório para aplicar os conhecimentos adquiridos. Outras fontes de pesquisa Struttin' With Struts - Lessons Stepping through Jakarta Struts About Struts i18n with Struts Introduction to Jakarta Struts Framework Learn Struts' Form-Related Tags TheServerSide.com J2EE Community Project Refinery, Inc Create Better Web Apps with Struts Struts in Action