TADS:Desenvolvimento Web IV (2016-1): mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 56: Linha 56:


=DIÁRIOS DE AULA=
=DIÁRIOS DE AULA=
==21/02/2017==
<syntaxhighlight lang="java">
@SequenceGenerator(name="aaa",sequenceName="usuario_id_seq",allocationSize=1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="aaa")
</syntaxhighlight>
==20/02/2017==
==20/02/2017==
Exemplo persistence.xml
Exemplo persistence.xml

Edição das 23h17min de 21 de fevereiro de 2017

PLANO DE ENSINO

IDENTIFICAÇÃO

Curso: Tecnologia em Análise e Desenvolvimento de Sistemas

Componente Curricular: Desenvolvimento Web IV

Professor: Estevan Braz Brandt Costa <estevan.costa@ifpr.edu.br>

Turma: 01/2014

Período Letivo: Quinto

Ano: 2016

Carga horária: 60

Horários de Aulas:

Horário Semanal de Atendimento ao Estudante:

EMENTA

Construção de web sites dinâmicos utilizando os principais frameworks javaEE; JavaServer faces; Spring MVC; Struts2; persistência de dados utilizando a Java persistence API; Hibernate; Java Enterprise Edition; Web Services.

CONTEÚDO PROGRAMÁTICO

OBJETIVOS DO COMPONENTE CURRICULAR

Apresentar conceitos e ferramentas para o desenvolvimento de aplicações web, na perspectiva de sistemas, utilizando a plataforma Java EE e os principais frameworks que implementam sua referência.

PROCEDIMENTOS METODOLÓGICOS

Metodologia de ensino

Recursos e materiais

AVALIAÇÃO

REFERÊNCIAS BIBLIOGRÁFICAS

Referências Básicas

  1. MACHACEK, Jan; VUKOTIC, Aleksa; CHAKRABORTY, Anyrvan; DITT, Jessica. Pro Spring 2.5. Ciência Moderna, 2009.
  2. GONÇALVES, Edson; Desenvolvendo Aplicações Web com JSP, Servlets JavaServer Faces, Hibernate, EJB 3 Persistence e AJAX . Ciência Moderna, 2007.
  3. LOPES, Camilo. Guia Prático Construindo Aplicações JEE com Frameworks - Exclusivo para iniciantes JSF, Spring Security, Hibernate, MySQL, Eclipse . Ciência Moderna, 2011.
  4. TERUEL, Evandro Carlos . Arquitetura de Sistemas para WEB com Java Utilizando Design Patterns e Frameworks. Ciência Moderna, 2012.
  5. GOMES, Yuri Marx P. Java na Web com Jsf, Spring, Hibernate e Netbeans. Ciencia Moderna, 2008.

Referências Complementares

  1. Monson-Haefel, Richard; Burke, Bill. Enterprise Javabeans 3.0. Pearson Education, 2007.
  2. GONÇALVES, Edson. Dominando Java Server Faces e Facelets Utilizando Spring 2.5, Hibernate e JPA. Ciência Moderna, 2008.
  3. VIANA, Marco Polo Monteiro. Sistemas Comerciais - Conceito, Modelagem e Projeto. Ciência Moderna, 2013.
  4. LUBBERS, Peter; ALBERS, Brian; SALIM , Frank . Programação Profissional em HTML 5. Altabooks, 2013.
  5. FLANAGAN, David. JavaScript: O Guia Definitivo. Bookman, 2013.

MATERIAIS DE APOIO

HISTÓRICO DE PROFESSORES

  • TADS:Desenvolvimento Web IV 2016-1: Estevan Braz Brandt Costa <estevan.costa@ifpr.edu.br>

DIÁRIOS DE AULA

21/02/2017

@SequenceGenerator(name="aaa",sequenceName="usuario_id_seq",allocationSize=1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="aaa")

20/02/2017

Exemplo persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">

    <persistence-unit name="aulateste" transaction-type="RESOURCE_LOCAL">
        <class>modelo.Aula</class>
        <properties>
            <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/aulateste"/>
            <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
            <property name="hibernate.connection.username" value="login"/>
            <property name="hibernate.connection.password" value="senha"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
        </properties>
    </persistence-unit>

</persistence>

Classe de Conexão

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;


public class Conexao {
	private static EntityManagerFactory emf;

	public static EntityManager getEntityManager() {
		 if (emf == null){
			emf = Persistence.createEntityManagerFactory("aulateste");
		 }
		 return emf.createEntityManager();
	}
}


Exemplo DAO Genérico

import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.PersistenceContext;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;
public class Dao<T extends Serializable> {
	 @PersistenceContext(unitName = "agenda")
	    private final EntityManager entityManager;
	    private final Class<T> persistentClass;

	    public Dao() {
	        this.entityManager = Conexao.getEntityManager();
	        this.persistentClass = (Class<T>) ((ParameterizedType) 
				getClass().getGenericSuperclass()).getActualTypeArguments()[0];
	    }

	    public EntityManager getEntityManager() {
	        return entityManager;
	    }

	    protected void save(T entity) {
	        EntityTransaction tx = getEntityManager().getTransaction();

	        try {
	            tx.begin();
	            getEntityManager().persist(entity);
	            tx.commit();
	        } catch (Throwable t) {
	            t.printStackTrace();
	            tx.rollback();
	        } finally {
	            close();
	        }
	    }

            public T efetuarLogin(String login, String senha) {
	        Session session = (Session) getEntityManager().getDelegate();
	        return (T) session.createCriteria(persistentClass)
				.add(Restrictions.eq("login", login).ignoreCase())
				.add(Restrictions.eq("senha", senha).ignoreCase()).uniqueResult();
	    }
	    
	    public T findById(int id) {
	        Session session = (Session) getEntityManager().getDelegate();
	        return (T) session.createCriteria(persistentClass)
				.add(Restrictions.eq("id", id)).uniqueResult();
	    }
	    
	    private void close() {
	        if (getEntityManager().isOpen()) {
	            getEntityManager().close();
	        }

	    }
}

Exemplo Entidade

@Entity
@Table(name="AULA")
public class Aula implements Serializable {
	@Id
	@Column(name="id")
	private int id;
	
	@Column(name="nome")
	private String nome;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
}

Exemplo Dao da Entidade Supracitada

public class AulaDao extends Dao<Aula> {
	public void salvar(Aula aula){
		save(aula);
	}
}

10/02/2017

 public String convertStreamtoString(InputStream is){

        String line="";
            String data="";
            try{
                BufferedReader br=new BufferedReader(new InputStreamReader(is));
                while((line=br.readLine())!=null){

                    data+=line;
                }
            }
            catch(Exception e){
                e.printStackTrace();
            }
            return  data;
        }

26/04

Tabela para ser usada nos projetos

create table tipoproduto
(
    idtipoproduto bigint not null,
    nome varchar(200),
    constraint pk_tipoproduto primary key (idtipoproduto)
);

create table produto
(
    idproduto bigint not null,
    fk_idtipoproduto bigint not null,
    descricao varchar(200),
    valor numeric(8,2),
    constraint pk_produto primary key (idproduto),
    constraint fk_produto_tp foreign key (fk_idtipoproduto) references tipoproduto (idtipoproduto)
);

insert into tipoproduto values (1, 'Alimenticio');
insert into tipoproduto values (2, 'Limpeza');
insert into tipoproduto values (3, 'Eletronicos');

insert into produto values (1, 1, 'lasanha', 7.88);
insert into produto values (2, 1, 'pizza', 17.28);
insert into produto values (3, 1, 'miojo', 0.58);
insert into produto values (4, 2, 'vassoura', 5.90);
insert into produto values (5, 3, 'Televisão', 1200.00);
insert into produto values (6, 3, 'celular', 260.98);

15/04


TRABALHO para o dia 19/04: Criar um web service que receba os dados de id, nome e peso, e insira em um banco utilizando o JPA. Criar também uma aplicação Android para consumir este web service. A aplicação Android pode enviar dados fixos (ou seja, não precisa criar uma tela para o usuário digitar os valores), e a forma de envio fica a sua escolha (via JSON ou via http).

Utilizar uma base chamada : Agenda Com uma unica tabela chamada : Pessoa, campos: Id (bigint e PK), Nome (varchar(200)) e Peso (numeric(5,2))



Para uso com o Hibernate

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

Para uso do JPA

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">

12/04

22/03

18/03

15/03

11/03

código para o web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   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" 
   id="WebApp_ID" version="3.0">
   <display-name>Meu aplicativo</display-name>
   <servlet>
      <servlet-name>Jersey RESTful Application</servlet-name>
      <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
         <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>wsfera</param-value>
         </init-param>
      </servlet>
   <servlet-mapping>
   <servlet-name>Jersey RESTful Application</servlet-name>
      <url-pattern>/rest/*</url-pattern>
   </servlet-mapping>  
</web-app>

08/03

Aula introdutória da disciplina.