RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO

Tamanho: px
Começar a partir da página:

Download "RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO"

Transcrição

1 Revista Eletrônica da Faculdade Metodista Granbery - ISSN Curso de Sistemas de Informação - N. 10, JAN/JUN 2011 RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO Este artigo apresenta a implementação de relacionamentos no framework Hibernate, em duas diferentes situações. São apresentadas técnicas e as ferramentas empregadas neste desenvolvimento, em especial o framework Hibernate, a IDE NetBeans, bem como os resultados obtidos durante a realização do processo. PALAVRAS-CHAVE: HIBERNATE, RELACIONAMENTOS, NETBEANS, JAVA ABSTRACT This article presents the implementation of relationships in Hibernate Framework in two different situations. Techniques and the tools used are presented in this development, especially the Hibernate framework, the NetBeans IDE, and the results obtained during the development process. KEY-WORDS: HIBERNATE, RELATIONSHIPS, NETBEANS, JAVA 1 - Mestre em Informática pelo Instituto Tecnológico de Aeronáutica, Professor do curso de Sistemas de Informação da Faculdade Metodista Granbery e do curso de Redes de Computadores da Faculdade Estácio de Sá, e ainda, Analista de Sistemas da Prefeitura de Juiz de Fora. eliolovisi.professor@gmail.com 2 - Mestrando em Ciência da Computação pala Universidade Federal de Viçosa, Professor do curso de Sistemas de Informação da Faculdade Metodista Granbery e Analista de Sistemas da Prefeitura de Juiz de Fora. ronneymc@gmail.com

2 1. INTRODUÇÃO O framework Hibernate fornece ferramentas que permitem o mapeamento objetorelacional (Object-relational mapping ORM) com o objetivo principal de possibilitar que os objetos de uma determinada aplicação sejam mapeados em entidades de uma base de dados relacional. Este framework pode ser utilizado em programas implementados na linguagem Java, possuindo também uma versão para.net chamada NHibernate [Bauer e King 2007]. Como o Hibernate é um framework para mapeamento objeto-relacional, ele também deve oferecer suporte para as associações e heranças entre as classes, permitindo também a realização da correspondência das mesmas com relacionamentos entre as tabelas. Sendo assim, o Hibernate permite a realização de diferentes tipos de associações entre as classes, como: um-para-um; um-para-muitos; e muitos-para-muitos. Além disso, pode-se também utilizar a herança no modelo de classes do sistema. Neste artigo, apresenta-se um tutorial sobre a implementação de relacionamentos no framework Hibernate. Para permitir o melhor entendimento, será utilizado como exemplo o software apresentado no artigo de Lovisi e Castro (2009), acrescentando-se ao mesmo uma associação um-para-muitos e uma herança. A aplicação original permite apenas a manutenção de departamentos. Para exemplificar os relacionamentos serão acrescentadas duas novas funcionalidades: a manutenção de funcionários e de departamentos especiais. As ferramentas empregadas no desenvolvimento deste tutorial foram: a IDE NetBeans 6.9, disponível em e o framework Hibernate versão 3.6.1, que pode ser obtido em Nos próximos itens serão apresentadas as atividades realizadas para a implementação das funcionalidades citadas. Apresenta-se o código das classes das camadas model, view, control e DAO necessárias para o desenvolvimento do aplicativo. 2. CRIAÇÃO DE NOVAS TABELAS Até então, o sistema utilizado no exemplo possui somente a tabela Departamento. Para apresentar a utilização de relacionamentos, serão criadas as tabelas Funcionário e 2

3 Departamento Especial, onde um funcionário pertence a um departamento, e um departamento pode ter vários funcionários. Para tanto, deve-se criar as tabelas utilizando o seguinte script SQL CREATE TABLE `funcionario` ( `id` int(11) NOT NULL AUTO_INCREMENT, `cargo` varchar(60) DEFAULT NULL, `datanascimento` date DEFAULT NULL, `nome` varchar(60) DEFAULT NULL, `departamento` int(11) DEFAULT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`departamento`) REFERENCES `departamento` (`id`) ) ENGINE=InnoDB ; CREATE TABLE `departamentoespecial` ( `id` int(11) NOT NULL, `caracteristica` varchar(60) default NULL, PRIMARY KEY (`id`), CONSTRAINT `departamentoespecial_ibfk_1` FOREIGN KEY (`id`) REFERENCES `departamento` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB; 3. CRIAÇÃO DA CLASSE FUNCIONÁRIO Na aplicação Java, deve-se criar uma nova classe chamada Funcionário no pacote model. Esta classe será empregada para exemplificar uma associação um-para-muitos com a classe Departamento, devendo ter os seguintes atributos: id do tipo Integer; cargo do tipo String; datanascimento do tipo Date (java.util.date); nome do tipo String; e departamento da classe Departamento. Encapsule os atributos e crie um construtor para a classe. Finalmente, acrescente as anotações nos atributos conforme o fragmento de código abaixo e importe os pacotes necessários. 2. public class Funcionario implements Serializable { 3

4 (strategy=generationtype.identity) 6. private Integer id; 7. private String nome; 8. private String cargo; 10. private Date datanascimento; 13. private Departamento departamento; Na linha 1 do código acima, deve-se observar que a define que a classe Funcionário corresponde a uma tabela de mesmo nome. Já na linha 3, a define que o campo é chave e a (linha 11) define o relacionamento entre as tabelas, por meio do atributo definido (linha 11). Além disso, sobrescreva o método tostring() da classe funcionário da seguinte forma: 1. public String tostring() { 2. return this.getnome(); 3. } 4. CRIAÇÃO DAS CLASSES DAO E CONTROLADORA DO FUNCIONARIO No pacote DAO, criar uma nova classe chamada DAOFuncionario, a qual herda de DAOGenerico, com um construtor próprio. Lembre-se que as classes DAO devem permitir o acesso da aplicação ao banco de dados, e que os métodos da classe DAOGenerico já implementam genericamente as operações básicas de acesso aos dados [Richardson 2007]. Agora, no pacote control, crie uma nova classe chamada CtrManterFuncionario, com um contrutor próprio. Acrescente o código abaixo à nova classe. 1. DAOFuncionario acessohibernatefunc = new DAOFuncionario(); public int gravarfuncionario(funcionario funcionario) { 4. try { 5. acessohibernatefunc.gravar(funcionario); 6. return 1; 7. } catch (HibernateException e) { 8. return 2; 9. } 10. } public List carregarfuncionarios() { 4

5 13. try { 14. return acessohibernatefunc.carregartudoordenado (Funcionario.class, "nome"); 15. } catch (HibernateException e) { 16. return null; 17. } 18. } 19. public boolean excluirfuncionario(funcionario funcionario) { 20. try { 21. acessohibernatefunc.excluir(funcionario); 22. return true; 23. } catch (HibernateException e) { 24. return false; 25. } 26. } public boolean alterarfuncionario(funcionario funcionario) { 29. try { 30. acessohibernatefunc.alterar(funcionario); 31. return true; 32. } catch (HibernateException e) { 33. return false; 34. } 35. } Os métodos acima permitem a realização das operações básicas (gravar, excluir, alterar e carregar) para os objetos da classe Funcionário, chamando os métodos que estão implementados na classe DAO. Agora, no método criasessionfactory() da classe HibernateConfiguracao altere o código conforme apresentado a seguir. 1. if (sessionfactory == null) { 2. AnnotationConfiguration cfg = new AnnotationConfiguration(); 3. cfg.addannotatedclass(departamento.class); 4. cfg.addannotatedclass(funcionario.class); 5. sessionfactory = cfg.buildsessionfactory(); 6. } Observe que a linha 4 foi incluída no código, permitindo que o framework carregue as configurações da classe Funcionario. 5. CRIAÇÃO DO FORMULÁRIO DE FUNCIONÁRIOS Agora, no pacote view, crie um novo formulário Jframe (FrmManterFuncionario) de acordo com a próxima figura. 5

6 Figura 1: Tela de Manutenção de Funcionários Observe que o nome dos componentes do formulário devem ser os seguintes: Lista de funcionários: jlstfuncionarios; Texto para o nome do funcionário: jtxtnome; Texto para o cargo do funcionário: jtxtcargo; Texto com máscara (JFormattedTextField) para a data de nascimento do funcionário: jtxtdatanascimento; Combo para listagem de departamentos: jcbxdepartamento; Botão para inclusão: jbtnincluir; Botão para exclusão: jbtnexcluir; Botão para alteração: jbtnalterar. Para a lista de funcionários e a combo de departamentos, a propriedade model deve ser vazia. O campo data de nascimento é do tipo Date. Logo, deve-se apresentar uma máscara no mesmo para que seja inserido o dado. Para tanto, selecione o campo texto e altere sua propriedade Pre-Init Code conforme a próxima figura. 6

7 Figura 2: Pre-Init Code do campo Data de Nascimento Nesta propriedade inclua o código a seguir: 1. MaskFormatter mascara; 2. try { 3. mascara = new MaskFormatter("##/##/####"); 4. mascara.setvalidcharacters(" "); 5. mascara.install(jtxtdatanascimento); 6. } catch(exception ex) { 7. ex.printstacktrace(); 8. } 9. jtxtdatanascimento.updateui(); O código anterior acrescenta uma máscara ao campo data de nascimento, no formato dia/mês/ano, aceitando somente números, conforme pode ser visto nas linhas 3 e 4. 7

8 Agora acesse o código do formulário e inclua os seguintes atributos fazendo as importações necessárias: 1. CtrManterFuncionario ctrmanterfuncionario; 2. CtrManterDepartamento ctrmanterdepartamento; 3. Departamento depart; 4. Funcionario func; 5. SimpleDateFormat df; No evento windowactivated do formulário, inclua o seguinte código, para carregar a lista de funcionários e a combo box de departamentos. 1. //inicia os atributos 2. ctrmanterfuncionario = new CtrManterFuncionario(); 3. ctrmanterdepartamento = new CtrManterDepartamento(); 4. depart = new Departamento(); 5. func = new Funcionario(); DefaultListModel listmodel = new DefaultListModel(); 8. List listfunc = new ArrayList(); listfunc = ctrmanterfuncionario.carregarfuncionarios(); 11. if (listfunc!= null) { 12. Iterator i = listfunc.iterator(); 13. while (i.hasnext()) { 14. Funcionario funclist = (Funcionario) i.next(); 15. listmodel.addelement(funclist); 16. } 17. jlstfuncionarios.setmodel(listmodel); 18. } 19. //carrega combo de departamentos 20. DefaultComboBoxModel modelcombo = new DefaultComboBoxModel(); 21. List listdept = ctrmanterdepartamento.carregardepartamentos(); 22. if (listdept!= null) { 23. Iterator j = listdept.iterator(); 24. while (j.hasnext()) { 25. Departamento deptlist = (Departamento) j.next(); 26. modelcombo.addelement(deptlist); 27. } 28. jcbxdepartamento.setmodel(modelcombo); 29. } 30. //inicializa o formato das datas 31. df = new SimpleDateFormat("dd/MM/yyyy"); 32. df.setlenient(false); Para exibir os dados dos funcionários, implemente o código a seguir no método mouseclicked da lista. 8

9 { 1. //recupera o funcionario selecionado 2. func = (Funcionario) jlstfuncionarios.getselectedvalue(); 3. //apresenta os dados do funcionario 4. if (func!= null) { 5. jtxtnome.settext(func.getnome()); 6. jtxtcargo.settext(func.getcargo()); 7. jtxtdatanascimento.settext(df.format(func.getdatanascimento())); 8. int cont; 9. //apresenta o departamento do funcionario 10. for (cont = 0; cont < jcbxdepartamento.getmodel().getsize(); cont+ +) { 11. if (((Departamento) jcbxdepartamento.getmodel(). getelementat(cont)).getid(). equals (func.getdepartamento().getid())) 12. jcbxdepartamento.setselectedindex(cont); 13. break; 14. } else { 15. JOptionPane.showMessageDialog(null, "Objeto não Encontrado!"); 16. } Ao selecionar-se um funcionário, deve-se exibir o departamento que ele está associado. Isto é feito no código, entre as linhas 10 e 15, onde percorre-se a lista de departamentos e, se o departamento da lista possuir o mesmo atributo id do departamento associado ao funcionário (condição da linha 11), o índice da lista será posicionado neste valor. Finalmente, na página principal crie um botão para carregar o formulário e teste a aplicação. A tela deverá exibir os funcionários cadastrados no banco. Ao selecionar-se um funcionário, serão exibidos os seus dados nos campos texto e no combo. 6. MANTENDO OS DADOS DOS FUNCIONÁRIOS Agora, as funcionalidades de manutenção de dados do usuário (Incluir, Alterar e Excluir) serão adicionadas à aplicação. Para tanto implemente o código a seguir no evento mouseclicked do botão de inclusão. 1. //recupera o departamento selecionado 2. depart = (Departamento) jcbxdepartamento.getselecteditem(); 3. func = new Funcionario(); 4. //atribui os valores 5. func.setnome(jtxtnome.gettext()); 6. func.setcargo(jtxtcargo.gettext()); 7. func.setdepartamento(depart); 8. //valida data 9. try { 10. func.setdatanascimento(df.parse(jtxtdatanascimento.gettext())); 9

10 11. } catch (ParseException ex) { 12. JOptionPane.showMessageDialog(this, "Data Incorreta!"); 13. return; 14. } 15. //inclui objeto 16. if (ctrmanterfuncionario.gravarfuncionario(func) == 1) { 17. JOptionPane.showMessageDialog(this, "Objeto persistido"); 18. } else { 19. JOptionPane.showMessageDialog(this,"Objeto não persistido"); 20. } No código acima, é mostrada a inserção de objetos da classe Funcionário. Na linha 7, é atribuído o Departamento selecionado ao Funcionário, criando a associação. O tratamento adequado desta associação no banco de dados é feito pelo hibernate. Agora, o código a seguir no evento mouseclicked do botão de alteração: 1. //recupera o funcionario e o departamento selecionado 2. func = (Funcionario) jlstfuncionarios.getselectedvalue(); 3. depart = (Departamento) jcbxdepartamento.getselecteditem(); 4. if (func!= null) { 5. //atribui os valores 6. func.setnome(jtxtnome.gettext()); 7. func.setcargo(jtxtcargo.gettext()); 8. func.setdepartamento(depart); 9. //valida data 10. try { 11. func.setdatanascimento(df.parse(jtxtdatanascimento.gettext())); 12. } catch (ParseException ex) { 13. JOptionPane.showMessageDialog(this, "Data Incorreta!"); 14. return; 15. } 16. //altera objeto 17. if (ctrmanterfuncionario.alterarfuncionario(func)) { 18. JOptionPane.showMessageDialog(this, "Objeto persistido"); 19. } else { 20. JOptionPane.showMessageDialog(this, "Objeto não persistido"); 21. } 22. } else { 23. JOptionPane.showMessageDialog(this, "Objeto não localizado"); 24. } E finalmente, o código a seguir no evento mouseclicked do botão de exclusão: 1. //recupera o funcionario selecionado 2. func = (Funcionario) jlstfuncionarios.getselectedvalue(); 3. //exclui o funcionario 4. if (ctrmanterfuncionario.excluirfuncionario(func)) { 5. JOptionPane.showMessageDialog(this, "Objeto excluido"); 6. } else { 7. JOptionPane.showMessageDialog(this, "Objeto não excluido"); 10

11 8. } Execute o programa e observe os resultados. Se desejar, limpe os campos da tela após a inclusão, a alteração e a exclusão do objeto. 7. CRIANDO A CLASSE DEPARTAMENTO ESPECIAL Agora, será mostrada a implementação de herança empregando o framework Hibernate. Para tanto, no pacote model, crie uma nova classe chamada Departamento especial. Esta classe será empregada para exemplificar uma herança com a classe Departamento, devendo ter somente o atributo característica do tipo String e um construtor vazio. O código da classe deverá ser implementado conforme apresentado abaixo. 2. public class DepartamentoEspecial extends Departamento{ 3. private String caracteristica; public DepartamentoEspecial() { 6. } public String getcaracteristica() { 9. return caracteristica; 10. } 11. public void setcaracteristica(string caracteristica) { 12. this.caracteristica = caracteristica; 13. } } Além disso, acrescente a anotação que define a herança na classe Departamento conforme apresentado abaixo e faça as importações necessárias. = InheritanceType.JOINED) 3. public class Departamento implements Serializable{ 4....} Neste exemplo cada classe corresponde a uma tabela. Outros tipos de herança podem ser empregadas, de acordo com o que for definido na [Bauer e King 2007]. 11

12 8. CRIAÇÃO DAS CLASSES DAO E CONTROLADORA DO DEPARTAMENTO ESPECIAL Conforme feito no item 4, no pacote DAO, crie a classe DAODepartamentoEspecial herdando de DAOGenerico, com um construtor próprio. Agora, no pacote control, crie uma nova classe chamada CtrManterDepartamentoEspecial, com um construtor próprio. Acrescente o código abaixo à nova classe. 1. DAODepartamentoEspecial acessohibernatedepto; public CtrManterDepartamentoEspecial( ){ 4. acessohibernatedepto = new DAODepartamentoEspecial(); 5. } 6. public int gravardepartamento( DepartamentoEspecial departamento{ 7. try { 8. acessohibernatedepto.gravar(departamento); 9. return 1; 10. } catch (HibernateException e) { 11. e.printstacktrace(); 12. return 2; 13. } 14. } public List carregardepartamentos() { 17. try { 18. return acessohibernatedepto.carregartudoordenado ( DepartamentoEspecial.class, "nome"); 19. } catch (HibernateException e) { 20. return null; 21. } 22. } 23. public boolean excluirdepartamento( DepartamentoEspecial departamento) { 24. try { 25. acessohibernatedepto.excluir(departamento); 26. return true; 27. } catch (HibernateException e) { 28. e.printstacktrace(); 29. return false; 30. } 31. } public boolean alterardepartamento( DepartamentoEspecial departamento) { 34. try { 35. acessohibernatedepto.alterar(departamento); 36. return true; 12

13 37. } catch (HibernateException e) { 38. e.printstacktrace(); 39. return false; 40. } 41. } Os métodos acima permitem a realização das operações básicas (gravar, excluir, alterar e carregar) para os objetos da classe Departamento Especial. Observe que os métodos são semelhantes àqueles desenvolvidos para os controladores de Departamento e Funcionário. 9. CRIAÇÃO DO FORMULÁRIO DE DEPARTAMENTOS ESPECIAIS Novamente no pacote view, crie um novo formulário Jframe (FrmManterDepartamentoEspecial). Observe que o nome dos componentes do formulário devem ser os seguintes: Lista de departamentos: jlstdepartamentos; Texto para o nome do departamento: jtxtnome; Texto para a área do departamento: jtxtarea; Texto para a característica do departamento: jtxtcaracteristica; Botão para inclusão: jbtnincluir; Botão para exclusão: jbtnexcluir; e Botão para alteração: jbtnalterar. Figura 3: Tela de Manutenção de Departamentos Especiais 13

14 Agora, inclua no formulário os seguintes atributos e faça as importações necessárias. CtrManterDepartamentoEspecial ctrmanterdepartamento; DepartamentoEspecial depart; No evento windowactivated do formulário, inclua o seguinte código. 1. DefaultListModel listmodel = new DefaultListModel(); 2. List listdepartamento = new ArrayList(); 3. ctrmanterdepartamento = new CtrManterDepartamentoEspecial(); 4. depart = new DepartamentoEspecial(); 5. listdepartamento = ctrmanterdepartamento.carregardepartamentos(); 6. if (listdepartamento!= null) { 7. Iterator i = listdepartamento.iterator(); 8. while (i.hasnext()) { 9. Departamento deptlist = (Departamento) i.next(); 10. listmodel.addelement(deptlist); 11. } 12. jlstdepartamentos.setmodel(listmodel); 13. } Para exibir os dados de cada departamento especial selecionado, implemente o código a seguir no método mouseclicked da lista. 1. depart = (DepartamentoEspecial) jlstdepartamentos.getselectedvalue(); 2. if (depart!= null) { 3. jtxtnome.settext(depart.getnome()); 4. jtxtarea.settext(depart.getarea()); 5. jtxtcaracteristica.settext(depart.getcaracteristica()); 6. } else { 7. JOptionPane.showMessageDialog(null, "Objeto não Encontrado!"); 8. } Na página principal crie um botão para carregar o formulário e teste a aplicação. Além disso, incluir o mapeamento da classe Departamento Especial no método criasessionfactory(), conforme a seção MANTENDO OS DADOS DOS DEPARTAMENTOS ESPECIAIS Agora, conforme foi feito para a classe funcionário, serão adicionadas as funcionalidades de manutenção de dados do departamento: Incluir, Alterar e Excluir. Para tanto, implemente o código a seguir no evento mouseclicked do botão de inclusão. 1. depart = new DepartamentoEspecial(); 2. depart.setnome(jtxtnome.gettext()); 3. depart.setarea(jtxtarea.gettext()); 14

15 4. depart.setcaracteristica(jtxtcaracteristica.gettext()); 5. if (ctrmanterdepartamento.gravardepartamento(depart) == 1) { 6. JOptionPane.showMessageDialog(this, "Objeto persistido"); 7. } else { 8. JOptionPane.showMessageDialog(this, "Objeto não persistido"); 9. } A seguir, o código a seguir no evento mouseclicked do botão de alteração. 1. depart = (DepartamentoEspecial) jlstdepartamentos.getselectedvalue(); 2. if (depart!= null) { 3. depart.setnome(jtxtnome.gettext()); 4. depart.setarea(jtxtarea.gettext()); 5. depart.setcaracteristica(jtxtcaracteristica.gettext()); 6. if (ctrmanterdepartamento.alterardepartamento(depart)) { 7. JOptionPane.showMessageDialog(this, "Objeto persistido"); 8. } else { 9. JOptionPane.showMessageDialog(this, "Objeto não persistido"); 10. } 11. } else { 12. JOptionPane.showMessageDialog(this, "Objeto não localizado"); 13. } E finalmente, o código a seguir no evento mouseclicked do botão de exclusão: 1. depart = (DepartamentoEspecial) jlstdepartamentos.getselectedvalue(); 2. if (depart!= null) { 3. if (ctrmanterdepartamento.excluirdepartamento(depart)) { 4. JOptionPane.showMessageDialog(null, "Objeto Excluído"); 5. } else { 6. JOptionPane.showMessageDialog(null, "Objeto não excluído"); 7. } 8. } else { 9. JOptionPane.showMessageDialog(null, "Selecione o Objeto"); 10. } Novamente, se desejar limpe os campos da tela após a inclusão, a alteração e a exclusão do objeto. 11. CONSIDERAÇÕES FINAIS Neste artigo foi apresentado um tutorial sobre a implementação de relacionamentos no framework Hibernate, acrescentando-se a uma aplicação existente uma associação um-para-muitos e uma herança. A utilização do framework Hibernate permite o mapeamento objeto-relacional, possibilitando uma implementação mais simples de relacionamentos entre as classes. Propõe-se a aplicação, em trabalhos futuros, da ferramenta apresentada para o desenvolvimento de aplicações em outras plataformas, em especial, para softwares Web. 15

16 Além disso, pode-se aplicar a refatoração nas classes da aplicação melhorando a qualidade do código desenvolvido. 12. REFERÊNCIAS BIBLIOGRÁFICAS BAUER, Christian; KING Gavin.Java Persistence com Hibernate. 1ª ed. Rio de Janeiro: Ciência Moderna p. LOVISI FILHO, Elio; CASTRO, Gustavo Mendes. Tutorial sobre a Construção de Aplicações empregando Java, Hibernate e MySql. Revista Eletrônica da Faculdade Metodista Granbery - N. 6, JAN/JUN Disponível em: < Acesso em: 21 jan RICHARDSON, Chris. POJOS em Ação - Como Desenvolver aplicações Corporativas com Frameworks Leves. 1ª ed. Rio de Janeiro: Ciência Moderna p. 16

TUTORIAL SOBRE A CONSTRUÇÃO DE APLICAÇÕES EMPREGANDO JAVA, HIBERNATE E MySQL

TUTORIAL SOBRE A CONSTRUÇÃO DE APLICAÇÕES EMPREGANDO JAVA, HIBERNATE E MySQL Revista Eletrônica da Faculdade Metodista Granbery http://re.granbery.edu.br - ISSN 1981 0377 Curso de Sistemas de Informação - N. 6, JAN/JUN 2009 TUTORIAL SOBRE A CONSTRUÇÃO DE APLICAÇÕES EMPREGANDO JAVA,

Leia mais

ruirossi@ruirossi.pro.br

ruirossi@ruirossi.pro.br Persistência Com JPA & Hibernate Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 Mapeamento Objeto-Relacional Contexto: Linguagem de programação orientada a objetos

Leia mais

JPA: Persistência padronizada em Java

JPA: Persistência padronizada em Java JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes

Leia mais

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS Na grande maioria dos sistemas, faz-se necessário utilizar informações que estão armazenadas em uma determinada

Leia mais

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado

Leia mais

Persistência de dados com JPA. Hélder Antero Amaral Nunes haanunes@gmail.com

Persistência de dados com JPA. Hélder Antero Amaral Nunes haanunes@gmail.com Persistência de dados com JPA Hélder Antero Amaral Nunes haanunes@gmail.com O que é persistência? A persistência de dados é o fato de pegar um dado e torná-lo persistente, ou seja, salvar em algum banco

Leia mais

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser A1Criando um módulo de negócio Capítulo 27 Aplicação dividida em módulos - Introdução Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser compreendido como uma solução de

Leia mais

HIBERNATE Criando um projeto em Java + Hibernate do zero

HIBERNATE Criando um projeto em Java + Hibernate do zero HIBERNATE Criando um projeto em Java + Hibernate do zero SUMÁRIO 1 Instalação do NetBeans 2 Instalação do Java Development Kit (JDK) 3 Criar projeto no NetBeans 4 O arquivo hibernate.cfg.xml 5 Criar as

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

Hibernate. Mapeamento Objeto-Relacional. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Hibernate. Mapeamento Objeto-Relacional. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Hibernate Mapeamento Objeto-Relacional Baseado nas notas de aula de João Dalyson e Raphaela Galhardo Fernandes Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Objetivos Aprender MOR usando Hibernate

Leia mais

JDBC Java Database Connectivity

JDBC Java Database Connectivity 5 JDBC Java Database Connectivity Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Trabalhar com bancos de dados em aplicações web em JSP através das classes

Leia mais

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Objetivos: Criar restrições para atributos, chaves primárias e estrangeiras; Explorar consultas SQL com uso de

Leia mais

Resolvendo objeto-relacional impedance mismatch com hibernate

Resolvendo objeto-relacional impedance mismatch com hibernate Resolvendo objeto-relacional impedance mismatch com hibernate August 7, 2013 Sumário I 1 Introdução 2 3 4 Sumário II 5 Contexto Mapeamento Objeto-Relacional (ORM) é uma técnica de programação para converter

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 9 Mapeamento em JPA Introdução O mapeamento objeto-relacional

Leia mais

Persistindo dados com TopLink no NetBeans

Persistindo dados com TopLink no NetBeans Persistindo dados com TopLink no NetBeans O que é TopLink? O TopLink é uma ferramenta de mapeamento objeto/relacional para Java. Ela transforma os dados tabulares de um banco de dados em um grafo de objetos

Leia mais

Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados

Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário

Leia mais

Manipulação de Banco de Dados com Java 1. Objetivos

Manipulação de Banco de Dados com Java 1. Objetivos Manipulação de Banco de Dados com Java 1. Objetivos Demonstrar os fundamentos básicos para a manipulação de banco de dados com Java; Apresentar a sintaxe de comandos SQL usados em Java. 2. Definições A

Leia mais

Leonardo Gresta Paulino Murta leomurta@gmail.com

Leonardo Gresta Paulino Murta leomurta@gmail.com Leonardo Gresta Paulino Murta leomurta@gmail.com O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no

Leia mais

Mapeamento Lógico/Relacional com JPA

Mapeamento Lógico/Relacional com JPA Mapeamento Lógico/Relacional com JPA Elaine Quintino da Silva Doutora em Ciência da Computação pelo ICMC-USP/São Carlos Analista de Sistemas UOL PagSeguro Instrutora Globalcode Agenda! Persistência de

Leia mais

Programação Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO

Programação Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO POO Programação Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO Marcelo Santos Daibert (marcelo@daibert.net) é professor do Curso de Bacharelado

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

JDBC. Prof. Márcio Bueno (poonoite@marciobueno.com)

JDBC. Prof. Márcio Bueno (poonoite@marciobueno.com) JDBC Prof. Márcio Bueno (poonoite@marciobueno.com) JBDC Java Database Connectivity ou JDBC é um conjunto de classes e interfaces (API) escritas em Java que faz o envio de instruções SQL para qualquer banco

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Capítulo 04: Persistência com SQLite

Capítulo 04: Persistência com SQLite Capítulo 04: Persistência com SQLite Instrutor Programador desde 2000 Aluno de doutorado Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB FUCAPI marcio.palheta@gmail.com sites.google.com/site/marcio

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES BANCO DE DADOS GERENCIAL 1 AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES Integridade de domínio A integridade de domínio é a validade de entradas para uma coluna específica. É possível aplicar a integridade

Leia mais

Aula 2 - Revisão de JPA (Java Persistence API)

Aula 2 - Revisão de JPA (Java Persistence API) Aula 2 - Revisão de JPA (Java Persistence API) Professor: Ricardo Luis dos Santos IFSUL 2015 Tabela para Revisão Assunto (JPA) Interesse? 1 Vantagens e Desvantagens 4 2 Principais Conceitos 7 3 Anotações

Leia mais

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre BANCO DE DADOS BANCO DE DADOS Prof. Patrícia Lucas 3º Trimestre ROTEIRO PARA O 3º TRIMESTRE 1. O MySQL DDL SQL 1. Como funciona o MySQL 2. Como criar um banco de dados no MySQL 3. Como criar tabelas: comandos

Leia mais

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC .business @BusinessController TurmaBC TurmaBC TurmaBC Módulo 5 No módulo anterior adaptamos nosso projeto para persistir as informações no banco de dados utilizando as facilidades da extensão demoiselle-jpa. Experimentamos o controle transacional do Framework

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:

Leia mais

Programação Orientada a Objetos II

Programação Orientada a Objetos II Programação Orientada a Objetos II AULA Banco de Dados (Exemplo) Prof. Rodrigo Rocha Prof.rodrigorocha@yahoo.com (Modo Texto) Conectando ao Banco de Dados Entre no Diretório do Mysql mysql u root p criando

Leia mais

Desenvolvimento de Aplicações para Internet Aula 7

Desenvolvimento de Aplicações para Internet Aula 7 Desenvolvimento de Aplicações para Internet Aula 7 Celso Olivete Júnior olivete@fct.unesp.br Classe e tipos de dados Classe Conjunto de objetos semelhantes, isto é, com a mesma estrutura (atributos) e

Leia mais

Sumário. 1 https://www.mantisbt.org

Sumário. 1 https://www.mantisbt.org O presente documento apresenta um manual com os passos necessários para integrar a ferramenta de gerenciamento de mudanças Mantis Bug Tracker (MantisBT) 1 ao plugin GiveMe Trace. Sumário Introdução 2 Criar

Leia mais

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Robson Adão Fagundes http://robsonfagundes.blogspot.com/ Mini curso Desenvolvimento de aplicação

Leia mais

Especificação do Trabalho

Especificação do Trabalho Especificação do Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação, ligação,

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais

Sistema de Controle de Estoque

Sistema de Controle de Estoque FACULDADE DE TECNOLOGIA SENAC GOIAS GESTÃO EM TECNOLOGIA DA INFORMÇÃO TÓPICOS AVANÇADOS EM BANCO DE DADOS Professor: Olegário Correia Neto Alunos: Marcelo Gonçalves, Juliano Pirozelli, João Lucas Pecin,

Leia mais

Comandos DDL. id_modulo = id_m odulo

Comandos DDL. id_modulo = id_m odulo Comandos DDL Estudo de Caso Controle Acadêmico Simplificado Uma escola contém vários cursos, onde cada aluno possui uma matricula num determinado curso. Estes cursos, por sua vez, possuem módulos, aos

Leia mais

Curso de Java. Acesso a banco de dados através do Hibernate. Todos os direitos reservados Klais

Curso de Java. Acesso a banco de dados através do Hibernate. Todos os direitos reservados Klais Curso de Java Acesso a banco de dados através do Hibernate Todos os direitos reservados Klais Motivação Java é uma linguagem orientada a objetos: Numa aplicação, o uso de objetos é um recurso importante

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 03 GUI e Swing Edirlei Soares de Lima GUI Graphical User Interface A API Java fornece diversas classes destinadas a criação de interfaces gráficas.

Leia mais

Boletim Técnico. Criação de formulário dinâmico para o módulo WEB. Produto : TOTVS Web, 11.8.0.0

Boletim Técnico. Criação de formulário dinâmico para o módulo WEB. Produto : TOTVS Web, 11.8.0.0 de formulário dinâmico para o módulo WEB Produto : TOTVS Web, 11.8.0.0 Chamado : P118SSTWEB\REQ168 Data da publicação : 17/10/12 País(es) : Brasil Banco(s) de Dados : Oracle Esta melhoria depende de execução

Leia mais

C# - Conexão com MySQL

C# - Conexão com MySQL E S T A A P R E S E N T A Ç Ã O F O I E L A B O R A D A COMO M A T E R I A L DE A P O I O À A U L A DO P R O F E S S O R L E O L A R B A C K A O S A L U N O S DA E S C O L A T É C N I C A P O L I M I G.

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans 6.7.1 efetuando um micro projeto swing.

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans 6.7.1 efetuando um micro projeto swing. 15/11/2009 Olá! A partir de agora vamos conhecer a IDE NetBeans 6.7.1 efetuando um micro projeto swing. Crie um novo projeto clicando em arquivo e em novo projeto. Escolha a opção java, aplicativo java

Leia mais

Persistência de Dados em Java com JPA e Toplink

Persistência de Dados em Java com JPA e Toplink Persistência de Dados em Java com JPA e Toplink Vinicius Teixeira Dallacqua Curso de Tecnologia em Sistemas para Internet Instituto Federal de Educação, Ciência e Tecnologia - IFTO AE 310 Sul, Avenida

Leia mais

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Figura 1. A Classe Java

Figura 1. A Classe Java Conexã o com MySQL Connection Factory Para criar as conexões com o banco de dados será utilizado um padrão chamado Factory, onde através dele se terá uma única classe que proverá uma fábrica de conexão

Leia mais

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia Sistemas de Informação Ling.Prog.V Prof. Roberto Couto Lima Fonte: Curso Java Prof. Fabricio Leonard Leopoldino (Universo)

Leia mais

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES Conteúdo O Projeto... 2 Criação de Pacotes... 4 Factory:... 6 DAO:... 15 GUI (Graphical User Interface ou Interface Gráfica de Cadastro)... 18 Evento SAIR... 23 Evento CADASTRAR... 24 1 O Projeto Arquivo

Leia mais

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600

Struts 2 : Projeto e Programação Editora: Ciência Moderna Autor: Antunes Budi Kurniawan Número de páginas: 600 Objetivo Com enfoque totalmente prático permite que programadores Java possam ampliar seus conhecimentos no mundo Web na criação de sistemas profissionais. Utilizar os modelos de programação com Servlets,

Leia mais

Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto :

Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto : Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto : O form Index A tabela Fotos A query Q_seleção_de_fotos Vide figura 46. Figura 46 O próximo passo é criar um form que

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

Integrando Java com Banco de Dados

Integrando Java com Banco de Dados Especialização em Engenharia de Software Programação Orientada a Objetos JDBC Java Database Connectivity Sérgio Soares scbs@cin.ufpe.br Objetivos Apresentar os conceitos básicos da especificação de Java

Leia mais

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios Laboratório de Banco de Dados Exercicios Modelo conceitual segundo notação de Peter Chen cliente (1,1) realizacao (1,n) venda (0,n) produto (1,1) contem Modelo conceitual gerado pela CASE Dezign for Database

Leia mais

Programação Orientada a Objetos JDBC Java Database Connectivity

Programação Orientada a Objetos JDBC Java Database Connectivity Especialização em Engenharia de Software Programação Orientada a Objetos JDBC Java Database Connectivity Sérgio Soares scbs@cin.ufpe.br Objetivos Apresentar os conceitos básicos da especificação de Java

Leia mais

Programação para Android. Aula 08: Persistência de dados SQL

Programação para Android. Aula 08: Persistência de dados SQL Programação para Android Aula 08: Persistência de dados SQL Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados. Para guardar informações de forma persistente

Leia mais

Hibernate Envers Easy Entity Auditing

Hibernate Envers Easy Entity Auditing Hibernate Envers Easy Entity Auditing Auditando suas classes de persistência com Hibernate Envers Castro (@CastroAlexandre) Consultor (Summa) e Instrutor (Globalcode) SCJP, SCWCD, SCBCD, SCEA-I, SCSNI

Leia mais

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

Programa EndNote. Download para teste no site: http://www.endnote.com/endemo.asp. (Atualmente o EndNote está na versão 5x)

Programa EndNote. Download para teste no site: http://www.endnote.com/endemo.asp. (Atualmente o EndNote está na versão 5x) Programa EndNote 1. Informações O EndNote é um gerenciador de referências bibliográficas desenvolvido pela Thomson Reuters. O software permite armazenar e organizar as referências encontradas nas buscas

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Java na WEB Banco de Dados

Java na WEB Banco de Dados 1 Java na WEB Banco de Dados Objetivo: Ao final da aula o aluno será capaz de: Criar aplicações JSP com acesso ao Banco de Dados MySql Configurar o TomCat para acessar o MySql. Não é Objetivo: Ao final

Leia mais

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL Definição do Esquema da Base de Dados Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática SQL - Esquema da base de dados Definição das tabelas Definição das chaves primárias Definição

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

PHP Programando com Orientação a Objetos

PHP Programando com Orientação a Objetos PHP Programando com Orientação a Objetos 2 a edição Pablo Dall Oglio Novatec Sumário Sobre o autor... 13 Agradecimentos... 14 Nota do autor... 16 Organização do livro... 18 Capítulo 1 Introdução ao PHP...

Leia mais

Sistema de Recursos Humanos

Sistema de Recursos Humanos Sistema de Recursos Humanos Projeto 1 O objetivo desse sistema é gerenciar a admissão e a demissão de funcionários. Esse funcionário pode ou não ter dependentes. Esse funcionário está alocado em um departamento

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

Programação para Android. Aula 06: Activity, menus e action bar

Programação para Android. Aula 06: Activity, menus e action bar Programação para Android Aula 06: Activity, menus e action bar Activity A classe Activity é quem gerencia a interface com o usuário. Ela quem recebe as requisições, as trata e processa. Na programação

Leia mais

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding Introdução à Programação Interface, Polimorfismo e Dynamic Binding Interface Programador Java PLENO Possuir sólida experiência em programação Desenvolvimento na linguagem JAVA Webservice, Struts ou JSF(desejável)

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

NetBeans. Conhecendo um pouco da IDE

NetBeans. Conhecendo um pouco da IDE NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Classes de Entidades Persistentes JDB

Classes de Entidades Persistentes JDB Classes de Entidades Persistentes JDB Brasil, Natal-RN, 07 de setembro de 2011 Welbson Siqueira Costa www.jdbframework.com Nota de Retificação: em 11/12/2011 a Listagem 3 desse tutorial sofreu uma pequena

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informações Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 7 JPA A Persistência com JPA Para configurar o JPA

Leia mais

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this. Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +

Leia mais

MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP. Curso Superior de Tecnologia em Sistemas para Internet 2/2014

MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP. Curso Superior de Tecnologia em Sistemas para Internet 2/2014 MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP Curso Superior de Tecnologia em Sistemas para Internet 2/2014 1. Nomes e localização dos arquivos do projeto: O template

Leia mais

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade

Leia mais

Criando uma agenda simples com NetBeans 6.5

Criando uma agenda simples com NetBeans 6.5 Criando uma agenda simples com NetBeans 6.5 (Swing application framework e Beansbinding) Já faz algum tempo que escrevi uma agenda simples usando o Eclipse com o Visual Class Editor. Demorei em torno de

Leia mais

RESUMO DE CATALOGAÇÃO

RESUMO DE CATALOGAÇÃO RESUMO DE CATALOGAÇÃO CLASSIFICAÇÃO DISTINTA Contatos: Cirineo Zenere (c.zenere@pucpr.br) Eulália M. Soares (eulalia.soares@pucpr.br) Josilaine O. Cezar (josilaine.cezar@pucpr.br) SUMÁRIO INICIANDO A CATALOGAÇÃO...2

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Uso do SQLite no Android Professor: Danilo Giacobo OBJETIVOS DA AULA Aprender a persistir dados utilizando o banco de dados SQLite. Conhecer e utilizar a classe SQLiteOpenHelper.

Leia mais

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 14 Herança a e Polimorfismo Objetivos do Capítulo Apresentar os conceitos de herança e de polimorfismo. Explorar os diversos recursos disponíveis no Java para a aplicação da herança e do polimorfismo

Leia mais

QualiQuantiSoft Versão 1.3c

QualiQuantiSoft Versão 1.3c QualiQuantiSoft Versão 1.3c Qualiquantisoft v1.3c Pág.: 1/15 Índice Apresentação do programa... 3 Funções operacionais do programa... 3 Itens de menu... 6 Teclas de atalho... 6 Instrumento de Análise de

Leia mais

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Omondo EclipseUML Ricardo Rodrigues Lecheta Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Introdução Neste tutorial será apresentado

Leia mais

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado ARQUITETURA SISGRAD Manual de Utilização Versão: 2.0 Criação: 05 de julho de 2007 Autor: André Penteado Última Revisão: 09 de outubro de 2009 Autor: Alessandro Moraes Controle Acadêmico - Arquitetura SISGRAD

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

Introdução. Servidor de Tempo (SNTP) com opção de horário de verão automático; 1 Cadastro do novo modelo de equipamento Urano Topmax SS

Introdução. Servidor de Tempo (SNTP) com opção de horário de verão automático; 1 Cadastro do novo modelo de equipamento Urano Topmax SS Urano Indústria de Balanças e Equipamentos Eletrônicos Ltda. Rua Irmão Pedro 709 Vila Rosa Canoas RS Fone: (51) 3462.8700 Fax: (51) 3477.4441 Guia de Novas Funcionalidades Urano Integra 2.3 Data: 15/04/2015

Leia mais

O programa abaixo exemplifica o uso da classe Image para carregar e mostrar uma imagem localizada em um arquivo.

O programa abaixo exemplifica o uso da classe Image para carregar e mostrar uma imagem localizada em um arquivo. 7. Carregando e mostrando imagens locais Esta aula complementa os estudos de programação de interfaces gráficas em Java mostrando como podemos carregar imagens de arquivos locais ou da Internet para uso

Leia mais

Módulo 06 Desenho de Classes

Módulo 06 Desenho de Classes Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.

Leia mais

Disciplina: Unidade V: Prof.: E-mail: Período:

Disciplina: Unidade V: Prof.: E-mail: Período: Encontro 17 Disciplina: Sistemas de Banco de Dados Unidade V: Introdução à Linguagem SQL Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM 13. Introdução à Linguagem SQL Introdução

Leia mais

Programação Orientada a Objetos em Java

Programação Orientada a Objetos em Java Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a

Leia mais