Auditando persistência com JPA

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

Download "Auditando persistência com JPA"

Transcrição

1 a r t i g o Em ambientes corporativos, a auditoria sobre as operações de banco de dados é importantíssima, quando não, indispensável. Essa importância surge a partir de um conjunto de necessidades, como: correção de inconsistências de dados, busca de responsáveis por consultas/alterações de informações indevidas, correção de informações geradas por código mal implementado, detecção de incidentes de segurança, dentre outras. Este artigo visa apresentar o caminho das pedras para implementar auditoria em persistência objeto relacional com JPA. José Yoshiriro Ajisaka Ramos (jyoshiriro@gmail.com): Bacharel em Sistema de Informação (IESAM). Mestrando em Ciência da Computação (UFPA). Instrutor na Equilibrium e na UAB. Engenheiro de software do Tribunal de Justiça do Pará. Possui as certificações SCJP, SCWCD e SCBCD. Trabalha com Java há 6 anos. Auditando persistência com JPA Aprenda como funcionam os mecanismos de escuta de eventos que permitem a implementação de auditoria de persistência no framework de mapeamento objeto relacional padrão do Java O termo auditoria é muito usado na contabilidade, em que auditar é como passar um pente fino nas contas de uma empresa na busca por operações incorretas ou indevidas. Nessas auditorias, todas as entradas e saídas de valores financeiros dentro do período a auditar são analisadas detalhadamente. Ao final, tem-se um relatório que pode fornecer conclusões, como: que as contas estão todas perfeitas; que houve desvio de dinheiro; que houve caixa 2 em certas operações; que é preciso gastar menos com material de escritório etc. Assim, será mais fácil tomar decisões, como: manter a disciplina do diaa-dia da empresa; tomar as medidas necessárias contra os responsáveis pelos desvios; normalizar as situações do caixa 2 ; equilibrar os gastos diários etc. Auditorias constantes ajudam fortemente na manutenção e até melhora da saúde financeira de uma empresa. Analogamente, auditoria em persistência visa analisar operações que envolvem o acesso a bancos de dados, visando à manutenção e melhora da saúde dos dados. Uma boa auditoria de persistência deve fornecer informações, como: da base de dados; Um fato importante é que o nível de detalhe das informações geradas pela auditoria deve ser suficiente para que seja possível desfazer operações quando necessário. 48

2 É possível auditar as operações de acesso a dados com recursos próprios dos sistemas de gerenciamento de bancos e dados (SGBDs), como triggers e stored procedures. Possivelmente esse é o mecanismo mais usado até hoje, visto que recursos de auditoria em nível de aplicação, como os que serão explorados neste artigo, são relativamente novos. Este artigo não pretende difundir a ideia de que auditoria com recursos nativos de SGBDs deve ser totalmente descartada ou que é uma prática que faz parte do passado. Pretende-se mostrar uma alternativa que provoca menos processamento nos SGBDs, lançando mão das facilidades do mapeamento objeto relacional e da orientação a objetos tornando a auditoria portável entre diferentes bancos de dados. Auditoria com JPA A JPA (Java Persistence API) possui dois mecanismos nativos que permitem a introdução de auditoria que são os callbacks de ciclo de vida de classes de entidades e os Listeners. Estes mecanismos são portáveis entre os diferentes provedores de persistência (Toplink, Hibernate etc.) e podem ser feitos via anotações ou mapeamentos XML. Não é objetivo deste artigo detalhar o funcionamento da JPA, porém, será apresentado um breve resumo de como funcionam os mapeamentos. Mapeamentos com JPA Os mapeamentos objeto relacionais na JPA podem ser feitos com o uso de anotações e/ou arquivos XML. Não foram encontrados dados estatísticos sobre a proporção de uso de configurações JPA por anotações e por XML pelos desenvolvedores Java, porém é muito mais fácil encontrar em livros, fóruns, e-books e tutoriais, exemplos apenas com primeiro método. Todavia, o leitor deve atentar aos fatos que pode ter que dar manutenção em projetos nos quais foram adotados XML e que na prova para a certificação Sun Certified Business Component Developer for the Java Platform, Enterprise Edition 5 podem aparecer questões sobre JPA usando esse tipo de configuração. A organização dos arquivos XML na JPA é muito parecida com a do Hibernate Core. Se no Hibernate havia o hibernate.cfg.xml que poderia conter todos os mapeamentos ou possuir referências a vários outros XMLs menores, na JPA existe o orm.xml que segue praticamente a mesma ideia. A localização padrão do orm.xml é a pasta META-INF do projeto, a mesma onde fica o persistence.xml. Configurações em XML são predominantes sobre as feitas com anotações. A existência do orm.xml (que é opcional) não obriga que todas as entidades sejam mapeadas via XML. Tudo o que estiver no orm.xml ou em algum outro arquivo XML de mapeamento anexado a ele é considerado padrão ou mandatário no caso de conflitar com configurações realizadas com anotações. Por exemplo, se houver mapeamento XML para a classe Jogador (campos, chaves, Listeners etc.), as anotações de mapeamento dessa classe serão ignoradas. É possível que anotações existam em harmonia com XMLs. Se forem feitos mapeamentos XML, apenas para definir padrões como algum Listener padrão para todo o projeto, por exemplo, anotações específicas de entidades (campos, chave etc.) serão lidas e usadas pela JPA. Normalmente esses padrões são definidos apenas no arquivo orm.xml. Callbacks de ciclo de vida de classes de entidades Os callbacks são como gatilhos que informam quando operações CRUD são realizadas sobre as entidades mapeadas. Para que seja possível lançar mão deles, é preciso configurar escutas, o que pode ser feito em métodos das próprias classes das entidades ou em classes específicas da escuta, chamadas Listeners. As formas de configurar as escutas aos callbacks serão vistas nos próximos tópicos. Os callbacks da JPA estão listados na Tabela 1. pre-persist pre-update pre-remove post-persist post-update post-remove post-load quando Antes de uma persistida (inserida no banco de dados) Antes de uma atualizada Antes de uma excluída Após uma entidade ser persistida (inserida no banco de dados) Após uma atualizada Após uma excluída Após uma recuperada do banco de dados persistence. nager que o aciona * persist() merge() remove() persist() merge() remove() find() (todas do Tabela 1. Callbacks de ciclo de vida de classes de entidades da JPA. Os callbacks pre são muito mais usados para criar regras de segurança do que para auditoria. Neles, o lançamento de uma exceção impede a continuidade da operação em vista. Fica mais fácil entender o funcionamento dos callbacks nos códigos onde estão sendo usados. Portanto, uma explicação gradual sobre eles será desenrolada nos tópicos a seguir. - não notificam os callbacks JPA. ** - A coluna Anotação informa qual anotação JPA deve ser usada para configurar um método para escutar um callback. Exemplos de uso dessas anotações estão nas Listagens 1 e 4. 49

3 Configurando callbacks nas próprias classes de entidades É possível configurar métodos de escuta dos callbacks nas próprias classes de entidade. Na Listagem 1 há um exemplo de como isso é feito via anotações e na Listagem 2 via XML. Listagem 1. Configurando callbacks em entidades via anotação. import javax.persistence.postpersist; import javax.persistence.postremove; import javax.persistence.table; import = jogador ) // campos, construtores, getters e setters public void aposinserir() { // o que fazer após salvar um novo jogador no banco de dados? public void aposexcluir() { // o que fazer após excluir um jogador do banco de dados? // quantos outros métodos de escuta de callback achar necessário Listagem 2. Configurando callbacks em entidades via XML. //Classe de entidade: Jogador.java import javax.persistence.table; import = jogador ) // campos, construtores, getters e setters public void aposinserir() { // o que fazer após salvar um novo jogador no banco de dados? public void aposexcluir() { // o que fazer após excluir um jogador do banco de dados? // quantos outros métodos de escuta de callback achar necessário //XML de mapeamento: orm.xml (ou um XML anexado a ele) <entity class= Jogador > <post-persist method-name= aposinserir /> <post-remove method-name= aposexcluir /> <!-- quantos outros métodos de escuta de callback achar necessário --> </entity> Em ambos os casos, os nomes dos métodos de escuta são de livre escolha do desenvolvedor. O que define que um método vai escutar um callback é uma anotação ou configuração XML como visto nas Listagens 1 e 2. É indispensável que métodos de escuta de callbacks configurados dentro das entidades não recebam nenhum parâmetro, senão ocorrerá uma exceção assim que algum recurso JPA for exigido na aplicação. Esta técnica lembra muito os triggers dos SGBDs e só deve ser usada quando se deseja comportamentos específicos para uma determinada entidade, para evitar replicação de código. Quando configurados nas próprias entidades, métodos de escuta de callback sempre devem possuir a seguinte assinatura: <qualquer nível de acesso> void <nome do método> () ; Listeners Como a tradução do nome sugere, Listeners funcionam como ouvintes das operações de acesso a banco de dados feita via JPA. Listeners podem ser configurados por entidade ou por projeto. Listeners por entidade Configurar Listeners por entidade acaba tendo o mesmo efeito do uso de callbacks em entidade. As únicas diferenças são que os métodos de escuta dos callbacks ficam localizados em outra classe (não dentro da entidade) e podem ser configurados mais de um Listener por entidade. A Listagem 3 contém uma entidade configurada via anotação para um Listener cujo código está na Listagem 4. É indispensável que métodos de escuta de callbacks em Listeners recebam um parâmetro do tipo da classe ou de uma superclasse da entidade da escuta, senão ocorrerá uma exceção assim que algum recurso JPA for exigido na aplicação. A anotação Listeners pode conter uma ou várias classes. Para configurar vários Listeners com ela, bastaria fazer como na Listagem 5. Listagem 3. Entidade configurada para usar um Listener. import javax.persistence.entity; import javax.persistence.entitylisteners; import javax.persistence.table; import = jogador ) Listeners(AuditoriaJogadorListener.class) /// campos, construtores, getters e setters Listagem 4. Listener usado pela entidade da Listagem 3. import javax.persistence.postpersist; import javax.persistence.postremove; public class AuditoriaJogadorListener { /// campos, construtores, getters e setters public void aposinserir(jogador jogador) { // o que fazer após salvar um novo jogador no banco de dados? public void aposexcluir(jogador jogador) { // o que fazer após excluir um jogador do banco de dados? 50

4 Quando configurados em Listeners, métodos de escuta de callback sempre devem possuir a seguinte assinatura: <qualquer nível de acesso> void <nome do método> (<classe ou superclasse da entidade da escuta >) ; Listagem 5. Vários Listeners configurados para uma entidade. Listeners({AuditoriaJogadorListener.class, AuditoriaJogadorListener2. class) /// campos, construtores, getters e setters É possível ainda configurar os Listeners para uma entidade via XML. Nesse caso, ao invés da anotação Listeners, seria necessário um trecho como o da Listagem 6 no orm.xml ou em outro XML anexado a ele. Caso se deseje retirar as anotações de escuta dos callbacks dos Listeners, basta mapear os métodos ouvintes via XML, como na Listagem 7. Listagem 6. Configuração de Listeners por entidade via XML. <entity class= Jogador > <entity-listener class= mj.auditoria.listener. AuditoriaJogadorListener /> <!-- outros Listeners para Jogador --> </entity> Listagem 7. Configuração de Listeners e métodos de escuta de callbacks por entidade via XML. <entity class= Jogador > <entity-listener class= mj.auditoria.listener. AuditoriaJogadorListener > <post-persist method-name= aposinserir /> <post-remove method-name= aposexcluir /> </entity-listener> <!-- outros Listeners para Jogador --> </entity> Quando uma classe de entidade estende outra que possui Listeners configurados, ela também fica sendo escutada por eles. Caso seja necessário ignorar os Listeners de uma superclasse para usar os apenas os próprios ou nenhum, basta marcar a classe com a javax.persistence.excludesuperclasslisteners. Listeners por projeto Boa parte da auditoria de persistência costuma ser compartilhada por várias ou até todas as entidades em um projeto. Isso ocorre porque auditoria é um típico exemplo daquilo que alguns autores chamam de responsabilidade transversal (crosscutting concern). Com JPA, é possível configurar um ou mais Listeners para atenderem a todas as entidades em um projeto. Esse tipo de configuração só é possível via XML (no orm. xml ), como consta na Listagem 8. Listagem 8. Definição de Listener(s) padrão(ões) por projeto. <persistence-unit-metadata> <persistence-unit-defaults> <entity-listener class= mj.auditoria.listener. AuditoriaFutebolAnnotationListener > <post-persist method-name= aposinserir /> <post-remove method-name= aposexcluir /> </entity-listener> <!-- outros Listeners padrão --> </persistence-unit-defaults> </persistence-unit-metadata> Com esse tipo de configuração, a princípio, os callbacks de todas das entidades do projeto são escutados por métodos dos Listeners mapeados. É possível configurar as entidades para que ignorem os Listeners padrão. Para isso, basta marcar a classe com a ExcludeDefaultListeners. Assim, caso um Listener esteja mapeado para diretamente para essa entidade, ele será usado e os padrões não. Se nenhum Listener próprio estiver configurado para a entidade, ela não usará nenhum. Em caso de múltiplos mapeamentos de Listeners (orm.xml, outros XMLs de mapeamento, classes e superclasses), a ordem na qual o JPA os executa é: 1. classes definidas como Listeners padrão para o projeto no orm.xml, na ordem em que estão descritos; 2. classes definidas como Listeners por entidade no orm.xml ou em XMLs anexados a ele, na ordem em que estão descritos; 3. classes definidas em Listeners das superclasses da entidade, a partir da mais alta na hierarquia, na ordem em que estão no array da anotação em cada entidade; 4. classes definidas EntityListeners da entidade, na ordem em que estão no array ;* 5. callbacks em métodos das superclasses da entidade, a partir da mais alta na hierarquia;* 6. callbacks em métodos da própria entidade. Ciclo de vida de listeners As classes listeners são instanciadas no momento em que um objeto do tipo javax.persistence.entitymanagerfactory é instanciado. A política de criação de Listeners é exemplificada no cenário na figura 1 e é a mesma tanto com mapeamentos via anotações quanto via XML, seja para mapeamentos por projeto seja por entidade. Se no cenário da figura 1 houvesse um segundo Listener mapeado para as entidades Jogador e Timefutebol, e esse possuísse três callbacks mapeados, seriam instanciados seis desses Listeners. Assim, seriam dez Listeners instanciados no total. As instâncias dos Listeners não são destruídas até que seja invocado o método close() da instância do EntityManagerFactory. * - Se houver mapeamentos de Listeners para uma mesma entidade tanto em anotação como no orm.xml ou em XMLs anexados a ele, os mapeamentos por entidade feitos com anotações serão ignorados. 51

5 Entidades Jogador TimeFutebol Configuradas para o 01 (um) Listener Entidades e mapeadas individualmente ou via padrão do projeto para o Listener post-persist post-update Instancia de um javax.persistence.entitymanagerfactory JPA cria de 04 (quatro) instâncias (Jogador post-persist) (Jogador post-update) (TimeFutebol post-persist) (TimeFutebol post-update) mesmo Listener, que possui dois métodos de escuta de callbacks, o que faz com que sejam instanciadas quatro instâncias do Listener. Dicas importantes sobre os callbacks JPA Exceções nos métodos de escuta post impedem a conclusão da operação Se um método de escuta de callback não tiver suas exceções devidamente tratadas, a operação acaba não ocorrendo. Por esse motivo, trate qualquer exceção em seus métodos de escuta de callbacks post para evitar que a não possibilidade de auditar impeça que a operação em si ocorra (a não ser que a auditoria seja obrigatória em uma aplicação, ou seja, se a ordem for se não der para auditar, não faça! ). Só pode haver um método de escuta por callback em Listeners Não pode haver mais de um método configurado (por anotação ou XML) com o mesmo callback no mesmo Listener. Por exemplo, não adianta criar dois métodos e anotá-los com e mudar os tipos dos parâmetros. Se fizer isso, ocorrerá uma exceção assim que algum recurso JPA for exigido na aplicação. Caso deseje configurar um método para escutar determinado evento de várias entidades diferentes, faça como no exemplo da Listagem 9. Listagem 9. Método para escuta de callback compatível com qualquer entidade. public void aposatualizar(object entidade) { if (entidade instanceof Jogador) { // o que fazer com o Jogador atualizado? if (entidade instanceof TimeFutebol) { // o que fazer com o Time atualizado? Só pode haver um método de escuta por callback em classes de Entidade Análogo ao item anterior, não pode haver mais de um método configurado (por anotação ou XML) com o mesmo callback na mesma entidade. Um método pode ser configurado para escutar vários callbacks Se desejar tratar mais de um evento de acesso a banco da mesma maneira na sua auditoria, é possível configurar um mesmo método para escutar vários callbacks. Há um exemplo desse tipo de configuração via anotação na Listagem 10 e via XML na Listagem 11. Listagem 10. Método de escuta de múltiplos callbacks configurado via anotação. public void apossalvar(jogador jogador) { // o que fazer após salvar um novo ou atualizar um jogador? Listagem 11. Configuração de múltiplos callbacks para o mesmo método via XML. <entity-listener class= mj.auditoria.listener. AuditoriaFutebolAnnotationListener > <post-persist method-name= apossalvar /> <post-update method-name= apossalvar /> </entity-listener> Os callbacks pre-update e post-update não são notificados sem atualizações reais É fácil deduzir que os callbacks de inserção, exclusão e consulta não são notificados em caso de erro nas respectivas operações que os notificam. Porém, não há como deduzir se qualquer chamada ao método merge() notifica os callbacks de atualização. Na verdade, se o EntityManager identificar que não houve mudança em nenhum campo da entidade, mesmo que o método merge() seja usado, os callbacks não são notificados. Essa regra vale tanto para instâncias de entidade gerenciadas como para não gerenciadas pelo EntityManager. Os callbacks pre-update, post-update e post-remove só são notificados no momento da sincronização com o banco de dados Esses callbacks só são notificados quando o EntityManager é sincronizado com o banco de dados. Segundo a especificação JPA, isso pode ocorrer em três momentos: 1) quando o EntityManager identificar alterações nos campos das entidades gerenciadas e se seu FlushMode estiver configurado como AUTO ; 2) quando for invocado o método flush() do EntityManager; 3) quando a transação é confirmada (commit). Os demais callbacks são notificados assim que seus respectivos métodos no EntityManager são invocados. Exemplo de implementação de auditoria com JPA Uma pequena aplicação visa o cadastro de Jogadores e Times de Futebol. Nesse sistema, as operações de acesso/atualização de dados devem ser auditadas. As entidades Jogador e TimeFutebol são as entidades que representam, respectivamente, esses cadastros. 52

6 Essa entidades estão configuradas para um Listener padrão (Listagem 12), o (Listagem 13) que centraliza a auditoria do sistema. A classe controladora e o Listener compartilham a mesma instância de um EntityManager a partir de simples fábrica de EntityManagers (Listagem 14). O Listener persiste as informações de auditoria na tabela auditoria_futebol, mapeada para a classe AuditoriaFutebol (Listagem 15). Listagem 12. Configuração do arquivo orm.xml para uso de Listener padrão. <persistence-unit-metadata> <persistence-unit-defaults> <entity-listener class= /> </persistence-unit-defaults> </persistence-unit-metadata> Listagem 13..java. public class { // outros métodos private EntityManager getentitymanager() { EntityManager em = FabricaEMs.getEntityManager(); return em; public void aposexcluir(object entidade) throws Exception { AuditoriaFutebol auditoria = new AuditoriaFutebol(entidade, E,getUsuario()); getentitymanager().persist(auditoria); public void aposinserir(object entidade) throws Exception { AuditoriaFutebol auditoria = new AuditoriaFutebol(entidade, I,getUsuario()); getentitymanager().persist(auditoria); public void aposatualizar(object entidade) throws Exception { AuditoriaFutebol auditoria = new AuditoriaFutebol(entidade, A,getUsuario()); getentitymanager().persist(auditoria); Listagem 14. Fábrica de EntityManagers (FabricaEMs.java) que usa o padrão Local Thread. public class FabricaEMs { static ThreadLocal<EntityManager> ems = new ThreadLocal<EntityManager>(); static EntityManagerFactory emf = Persistence.createEntityManagerFactory( sisfutebol ); public static EntityManager getentitymanager() { EntityManager em = ems.get(); if = auditoria_futebol public class AuditoriaFutebol { return em; else return getnewentitymanager(); private static EntityManager getnewentitymanager() { EntityManager em = emf.createentitymanager(); ems.set(em); return em; Listagem 15. Classe AuditoriaFutebol.java, usada para persistir as informações de auditoria do sistema. Observe que ela está anotada para evitar que ela mesma seja auditada pelo listener padrão. Sem essa anotação, o sistema entraria em colapso porque existiriam infinitas = = idoperacao, unique = true, nullable = false) ocorridaem, nullable = false) Date entidade, nullable = false) String operacao, nullable = false) String valores_campos, nullable = false) String usuario, nullable = false) String usuario; public AuditoriaFutebol(Object entidade, String operacao, String usuario) { super(); setentidade(entidade); setvalorescampos(entidade.tostring()); this.operacao = operacao; this.usuario = void configurarmomentoauditoria() { ocorridaem = new Date(); public void setentidade(object entidade) { this.entidade = entidade.getclass().getsimplename(); // outros métodos 53

7 Esse exemplo serve apenas para reforçar os conceitos abordados neste artigo e dar uma ideia de como se fazer auditoria de persistência com JPA. Ele não deve ser tomado como modelo para sistemas reais. O código completo desse exemplo está disponível para download no site da Mundoj. Pontos fracos da auditoria com JPA Os Listener no JPA são incapazes de interceptar operações feitas por objetos do tipo javax.persistence.query através dos métodos executeupdate(), get- SimgleResult() e getresultlist(). Exclusões como a da Listagem 16 não seria detectada pelo callback post remove e consultas como a da Listagem 17 não seria detectada pelo callback post-load. Listagem 16. Exemplo de operação de acesso, atualização do banco de dados que não será escutada pelo callback post-remove JPA. Query qexclusao = em.createquery( delete from Jogador j where j.idjogador=? ); qexclusao.setparameter(1, idjogador); qexclusao.executeupdate(); Listagem 17. Exemplo de operação de acesso consulta ao banco de dados que não será escutada pelo callback post-load JPA. Query qconsulta = em.createquery( select j from Jogador j where j.idjogador=? ); qconsulta.setparameter(1, idjogador); Jogador zebuduia = qconsulta.getsingleresult(); Outra desvantagem é que os callbacks nos fornecem apenas o estado atual do objeto associado. Em métodos post, não é possível saber como estavam as informações da entidade antes da inserção/atualização/ exclusão. Uma maneira de resolver essa questão seria usar os callbacks pre, como o pré update, por exemplo. Mas é realmente trabalhoso, visto que cada callback acaba ficando numa instancia diferente do Listener, conforme já foi abordado. Considerações finais Neste artigo foi abordado o conceito de auditoria de persistência e sua importância para a saúde dos dados de um sistema. Foram explicadas e exemplificadas todas as possibilidades de mapeamento de métodos de callback e Listeners, desde em entidade com em projeto. Não foi mostrado o que fazer dentro dos métodos mapeados para auditoria porque o objetivo deste é mostrar como construí-los e como chegar até eles. Foram também descritos os pontos fracos do sistema de callbacks e Listeners da JPA, para que o leitor avalie se vale a pena usar este mecanismo em sistemas legados ou em novos projetos. No site da Mundoj há dois projetos de exemplo disponíveis para download com muitos exemplos Referências 54

Auditoria Avançada de Persistência com Hibernate, JPA e Envers

Auditoria Avançada de Persistência com Hibernate, JPA e Envers a r t i g o José Yoshiriro Ajisaka Ramos (jyoshiriro@gmail.com): bacharel em Sistema de Informação (IESAM). Mestrando em Ciência da Computação (UFPA). Instrutor na Equilibrium Web e na UAB. Engenheiro

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

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

ALTO DESEMPENHO UTILIZANDO FRAMEWORK HIBERNATE E PADRÃO JAVA PERSISTENCE API

ALTO DESEMPENHO UTILIZANDO FRAMEWORK HIBERNATE E PADRÃO JAVA PERSISTENCE API ALTO DESEMPENHO UTILIZANDO FRAMEWORK HIBERNATE E PADRÃO JAVA PERSISTENCE API Tiago Henrique Gomes da Silva Balduino 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil tiagobalduino77@gmail.com

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

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education JPA Passo a Passo Henrique Eduardo M. Oliveira henrique@voffice.com.br 1 Palestrante Henrique Eduardo M. Oliveira (henrique@voffice.com.br) > Trabalha: Arquiteto JEE / Instrutor Java > Formação: Ciências

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

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

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

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

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 11 Mapeamento em JPA - Continuação Objetos Embutidos

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

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

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

Desmistificando o Hibernate Envers em 10 passos

Desmistificando o Hibernate Envers em 10 passos _envers Desmistificando o Hibernate Envers em 10 passos Auditoria de dados? Registro de Log? Trilha de auditoria? Descubra como é fácil, através do Hibernate Envers, rastrear o histórico de mudanças e

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

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

JPA Java Persistence API. Prof. Ramon Chiara

JPA Java Persistence API. Prof. Ramon Chiara JPA Java Persistence API Prof. Ramon Chiara JDBC Java DataBase Connectivity Acesso a bancos de dados Independência de banco de dados JDBC Aplicação JDBC Driver Banco de Dados JDBC Java DataBase Connectivity

Leia mais

INSCRIÇÃO ON- LINE REVEZAMENTOS A PARTIR DE 2015 INDICADO PARA TÉCNICOS

INSCRIÇÃO ON- LINE REVEZAMENTOS A PARTIR DE 2015 INDICADO PARA TÉCNICOS INSCRIÇÃO ON- LINE REVEZAMENTOS A PARTIR DE 2015 INDICADO PARA TÉCNICOS 2015 ABMN Escrito por Julian Romero jromero@abmn.org.br Revisão: 8 March 2015 CARACTERÍSTICAS DO SISTEMA O ACESSO É ATRAVÉS DE LOGIN

Leia mais

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.02.01 http://www.unesp.br/ai/pdf/nt-ai.04.02.01.pdf Data: 27/07/2000 STATUS: EM VIGOR A

Leia mais

COMO COMEÇAR 2016 se organizando?

COMO COMEÇAR 2016 se organizando? COMO COMEÇAR 2016 se organizando? Como começar 2016 se organizando? Conheça estratégias simples para iniciar o novo ano com o pé direito Você sabia que, de acordo com o Sebrae, os principais motivos que

Leia mais

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO? Índice BlueControl... 3 1 - Efetuando o logon no Windows... 4 2 - Efetuando o login no BlueControl... 5 3 - A grade de horários... 9 3.1 - Trabalhando com o calendário... 9 3.2 - Cancelando uma atividade

Leia mais

Themis Serviços On Line - Publicações

Themis Serviços On Line - Publicações Nome do documento Guia do Usuário Themis Serviços On Line - Publicações Sumário Introdução:... 3 1 - Cadastro dos Usuários do Themis Serviços On Line:... 3 2 - Acesso ao Sistema Themis Serviços On Line:...

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP O PHP através da versão 5, veio desenvolvido com suporte a programação orientada a objetos. O que significa isso? Que a partir da versão 5 é possível criar bibliotecas

Leia mais

Plano de Continuidade de Negócios

Plano de Continuidade de Negócios Plano de Continuidade de Negócios Objetivo Contingenciar situações e incidentes de segurança que não puderam ser evitados. Deve ser eficaz como um pára-quedas reserva o é em um momento de falha do principal,

Leia mais

BR DOT COM SISPON: MANUAL DO USUÁRIO

BR DOT COM SISPON: MANUAL DO USUÁRIO BR DOT COM SISPON: MANUAL DO USUÁRIO BAURU 2015 2 BR DOT COM SISPON: MANUAL DO USUÁRIO Manual do usuário apresentado para auxiliar no uso do sistema SisPon. BAURU 2015 3 SUMÁRIO 1 Instalação... 5 1.1 Sispon...

Leia mais

Q-Acadêmico. Módulo CIEE - Estágio. Revisão 01

Q-Acadêmico. Módulo CIEE - Estágio. Revisão 01 Q-Acadêmico Módulo CIEE - Estágio Revisão 01 SUMÁRIO 1. VISÃO GERAL DO MÓDULO... 2 1.1 PRÉ-REQUISITOS... 2 2. ORDEM DE CADASTROS PARA UTILIZAÇÃO DO MÓDULO CIEE... 3 2.1 CADASTRANDO EMPRESAS... 3 2.1.1

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

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados Prof. Hugo Souza Até agora vimos como é formada a infraestrutura física e lógica das bases de dados com os principais componentes

Leia mais

MANUAL DE UTILIZAÇÃO DO SISTEMA HERMES

MANUAL DE UTILIZAÇÃO DO SISTEMA HERMES MANUAL DE UTILIZAÇÃO DO SISTEMA HERMES 1. Introdução Esse documento tem por objetivo descrever o funcionamento e formas de utilização do módulo de Requisição de Materiais do Sistema de Controle Patrimonial

Leia mais

Fale.com. Manual do Usuário

Fale.com. Manual do Usuário Fale.com Manual do Usuário Serviço Fale.com Índice 1. Introdução 3 2. Instalando o Fale.com 3 a. Configurando o áudio para atendimento pela Internet 9 3. Configurando o Fale.com 14 4. Utilizando o Fale.com

Leia mais

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Programação Orientada a Objetos Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Programação Orientada a Objetos Na aula passada, vimos: Encapsulamento Programação Orientada

Leia mais

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS Aluno: Ricardo Gomes Leal Costa Orientadora: Noemi de la Rocque Rodriguez Introdução A biblioteca DALua [1], fruto do projeto anterior, tem por objetivo oferecer

Leia mais

SISTEMA DE SERVIÇOS DE INFRA-ESTRUTURA DA UFRGS

SISTEMA DE SERVIÇOS DE INFRA-ESTRUTURA DA UFRGS SISTEMA DE SERVIÇOS DE INFRA-ESTRUTURA DA UFRGS Instituição: UFRGS Autores: Ricardo Vieira, José Luis Machado e Álvaro Juscelino Lanner Área: Sistema de Informações Introdução. O trabalho aqui proposto

Leia mais

UML: Diagrama de Casos de Uso, Diagrama de Classes

UML: Diagrama de Casos de Uso, Diagrama de Classes UML: Diagrama de Casos de Uso, Diagrama de Classes Diagrama de Casos de Uso O modelo de casos de uso visa responder a pergunta: Que usos (funcionalidades) o sistema terá? ou Para que aplicações o sistema

Leia mais

Integração de livros fiscais com o Microsoft Dynamics AX 2009

Integração de livros fiscais com o Microsoft Dynamics AX 2009 Microsoft Dynamics AX Integração de livros fiscais com o Microsoft Dynamics AX 2009 White paper Este white paper descreve como configurar e usar a integração de livros fiscais entre o Microsoft Dynamics

Leia mais

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL VERSÃO 359 U N I P A C K NOTA FISCAL ELETRÔNICA CONTENDO ITENS COM CFOP S DISTINTOS RIO DE JANEIRO 25 DE JULHO DE 2013 SUMÁRIO 1- INTRODUÇÃO... 03 2- MOTIVAÇÃO... 03

Leia mais

DIRF 2012 (Ano base 2012) Entrega e Prazo. Da Obrigatoriedade de Entrega

DIRF 2012 (Ano base 2012) Entrega e Prazo. Da Obrigatoriedade de Entrega DIRF 2012 (Ano base 2012) A RFB (Receita Federal do Brasil) divulgou as regras para o preenchimento e o envio da Dirf (Declaração do Imposto de Renda Retido na Fonte) 2013. A Instrução Normativa nº 1.297/2012

Leia mais

NORMA BRASILEIRA DE CONTABILIDADE NBC TSC 4410, DE 30 DE AGOSTO DE 2013

NORMA BRASILEIRA DE CONTABILIDADE NBC TSC 4410, DE 30 DE AGOSTO DE 2013 NORMA BRASILEIRA DE CONTABILIDADE NBC TSC 4410, DE 30 DE AGOSTO DE 2013 Dispõe sobre trabalho de compilação de informações contábeis. O CONSELHO FEDERAL DE CONTABILIDADE, no exercício de suas atribuições

Leia mais

Notas de versão. Versão 3.16.1.0

Notas de versão. Versão 3.16.1.0 Notas de versão Sistema Gescor Versão 3.16.1.0 Lançamento Abril/2016 Interface - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 1. Nova interface e usabilidade do sistema.

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO

NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.01.01 http://www.unesp.br/ai/pdf/nt-ai.04.01.01.pdf Data: 27/07/2000 STATUS: EM VIGOR A Assessoria

Leia mais

AULA 16 - Sistema de Arquivos

AULA 16 - Sistema de Arquivos AULA 16 - Sistema de Arquivos Arquivos podem ser vistos como recipientes que contêm dados ou como um grupo de registros correlatos. Os arquivos armazenam informações que serão utilizadas, em geral, por

Leia mais

análisederisco empresarial

análisederisco empresarial análisederisco empresarial Ca da vez mais, a administração torna-se uma arte, sendo que os administradores aprendem a cada dia novas articulações, para poder dar continuidade a seus negócios. Muitas vezes,

Leia mais

Manual de utilização

Manual de utilização Manual de utilização 1 Índice Calendário... 3 Usuários... 4 Contato... 5 Alterar... 5 Excluir... 5 Incluir... 5 Feriados... 9 Nacionais... 9 Regionais... 9 Manutenção... 9 Obrigações... 9 Obrigações Legais...

Leia mais

MOCKITO - - Alexandre Gazola (alexandregazola@gmail.com / Twitter: @alexandregazola)

MOCKITO - - Alexandre Gazola (alexandregazola@gmail.com / Twitter: @alexandregazola) cinto de utilidades mocks_ CRIAÇÃO DE MOCKS COM MOCKITO No último artigo desta coluna, falamos de uma forma geral sobre diversas ferramentas para suporte a testes automatizados. Dentre as ferramentas mencionadas,

Leia mais

Java Persistence API. Entity Entity Campos e Propriedades Entity Chaves Primárias Entity Associações

Java Persistence API. Entity Entity Campos e Propriedades Entity Chaves Primárias Entity Associações Java Persistence API Entity Entity Campos e Propriedades Entity Chaves Primárias Entity Associações Entity Manager Entity Manager API Java Persistence Query Language (JPQL) Persistence Units 1 Java Persistence

Leia mais

Guia passo a passo. Como se tornar um pequeno produtor certificado FSC

Guia passo a passo. Como se tornar um pequeno produtor certificado FSC Guia passo a passo Como se tornar um pequeno produtor certificado FSC INTRODUÇÃO AO FSC O que é o FSC? O FSC é uma organização independente, não governamental e sem fins lucrativos criada para promover

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

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

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE Questionamento a alta direção: 1. Quais os objetivos e metas da organização? 2. quais os principais Produtos e/ou serviços da organização? 3. Qual o escopo da certificação? 4. qual é a Visão e Missão?

Leia mais

Catálogo de Padrões de Dados

Catálogo de Padrões de Dados Governo Brasileiro Comitê Executivo de Governo Eletrônico Catálogo de Padrões de Dados CPD Volume 1 Princípios Gerais Versão 2 Junho de 2011 Sumário 1 APRESENTAÇÃO...3 2 INTRODUÇÃO...4 2.1 Fundamento Lógico...

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

Leia mais

Transações Seguras em Bancos de Dados (MySQL)

Transações Seguras em Bancos de Dados (MySQL) Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o

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

17/5/2009. Esta área de conhecimento tem o objetivo de utilizar de forma mais efetiva as pessoas envolvidas no projeto (equipe e stakeholders)

17/5/2009. Esta área de conhecimento tem o objetivo de utilizar de forma mais efetiva as pessoas envolvidas no projeto (equipe e stakeholders) Gerenciamento de Recursos Humanos do Projeto FAE S. J. dos Pinhais Projeto e Desenvolvimento de Software Gerenciamento de Recursos Humanos Esta área de conhecimento tem o objetivo de utilizar de forma

Leia mais

O Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL.

O Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL. Nome do Software: Gerenciador de Projetos Versão do Software: Gerenciador de Projetos 1.0.0 1. Visão Geral Este Manual de Utilização do Programa Gerenciador de Projetos via Web, tem por finalidade facilitar

Leia mais

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento Trabalho 7 Fila de prioridade usando heap para simulação de atendimento Data: 21/10/2013 até meia-noite Dúvidas até: 09/10/2013 Faq disponível em: http://www2.icmc.usp.br/~mello/trabalho07.html A estrutura

Leia mais

Aula 4. Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com)

Aula 4. Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com) Persistência com JDBC e JPA Aula 4 Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com) A sabedoria não se transmite, é preciso que nós a descubramos fazendo uma caminhada que ninguém

Leia mais

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Manipulação de Banco de Dados com Java Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Acesso a um SGBD Em sistemas mais simples o uso de arquivos pode ser usado mas para aplicações

Leia mais

LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA VERSÃO 2

LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA VERSÃO 2 LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA VERSÃO 2 (Orientamos aos clientes que utilizam banco de dados SQL, para efetuarem a atualização preferencialmente após o encerramento das atividades do dia, acessando

Leia mais

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br Introdução a Banco de Dados Aula 03 Prof. Silvestri www.eduardosilvestri.com.br Arquiteturas de Banco de Dados Arquiteturas de BD - Introdução Atualmente, devem-se considerar alguns aspectos relevantes

Leia mais

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES. lucelia.com@gmail.com

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES. lucelia.com@gmail.com MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES lucelia.com@gmail.com Externamente ao sistema, os atores visualizam resultados de cálculos, relatórios produzidos, confirmações de requisições solicitadas,

Leia mais

Como fazer um jogo usando o editor de apresentação

Como fazer um jogo usando o editor de apresentação Instituto Federal de Educação, Ciência e Tecnologia Sergipe IFS Campus Glória Curso Integrado em Agropecuária Professora: Jamille Silva Madureira Disciplina: Informática Como fazer um jogo usando o editor

Leia mais

ENSINO E APRENDIZAGEM DE CIÊNCIAS BIOLÓGICAS, COM A UTILIZAÇÃO DE JOGOS DIDÁTICOS: RELATO DE EXPERIÊNCIA.

ENSINO E APRENDIZAGEM DE CIÊNCIAS BIOLÓGICAS, COM A UTILIZAÇÃO DE JOGOS DIDÁTICOS: RELATO DE EXPERIÊNCIA. ENSINO E APRENDIZAGEM DE CIÊNCIAS BIOLÓGICAS, COM A UTILIZAÇÃO DE JOGOS DIDÁTICOS: RELATO DE EXPERIÊNCIA. Josilene Maria de Almeida 1 ; Rosângela Miranda de Lima 2 ; Maria Sônia Lopes da Silva; Maria Anunciada

Leia mais

PROCEDIMENTOS DE AUDITORIA INTERNA

PROCEDIMENTOS DE AUDITORIA INTERNA 1/8 Sumário 1 Objetivo 2 Aplicação 3 Documentos complementares 4 Definições 5 Procedimento 1 Objetivo Este Procedimento tem como objetivo descrever a rotina aplicável aos procedimentos de auditoria interna

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

MANUAL EDITOR ESTRUTURADO MÓDULO 2

MANUAL EDITOR ESTRUTURADO MÓDULO 2 MANUAL EDITOR ESTRUTURADO MÓDULO 2 PROCESSO JUDICIAL ELETRÔNICO MANUAL EDITOR ESTRUTURADO ELABORAÇÃO DE ESTRUTURA DE DOCUMENTO ADMINISTRADOR Sumário 1 Elaboração de Estrutura de Documento4 11 Cadastrar

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

18/11/2005. Discurso do Presidente da República

18/11/2005. Discurso do Presidente da República Discurso do presidente da República, Luiz Inácio Lula da Silva, na cerimônia de entrega de certificado para os primeiros participantes do programa Escolas-Irmãs Palácio do Planalto, 18 de novembro de 2005

Leia mais

Manual / Apostila Sistemas Prosol. Pro Guias / Arquivo e Pro Gerenciador

Manual / Apostila Sistemas Prosol. Pro Guias / Arquivo e Pro Gerenciador Manual / Apostila Sistemas Prosol Pro Guias / Arquivo e Pro Gerenciador 20/11/2008 Palestrante/Facilitador: Paulo Sérgio de Almeida Gonçalves Currículo resumido: Contador, Consultor, Administrador formado

Leia mais

Software. GUIA DO PROFESSOR Fluxo de energia. Duração da Animação/simulação: 1 hora-aula

Software. GUIA DO PROFESSOR Fluxo de energia. Duração da Animação/simulação: 1 hora-aula Fluxo de energia Conteúdos: Tempo: Objetivos: Descrição: Ecologia: fluxo de energia Duração da Animação/simulação: 1 hora-aula Apresentar o conceito de fluxo de energia e biomassa nos ecossistemas e simular

Leia mais

VERSÃO 5.12.0 VERSÃO 5.0.0 FINANCEIRO NEFRODATA ESTOQUE FINALIZAÇÃO: 10 JUN.

VERSÃO 5.12.0 VERSÃO 5.0.0 FINANCEIRO NEFRODATA ESTOQUE FINALIZAÇÃO: 10 JUN. VERSÃO 5.12.0 VERSÃO 5.0.0 FINANCEIRO NEFRODATA ESTOQUE ACD2016 FINALIZAÇÃO: 10 JUN. 13 04 NOV.2014 FEV. 201313 JUN. 2016 PUBLICAÇÃO: Prezado Cliente, Neste documento estão descritas todas as novidades

Leia mais

Sumário. Administração de Banco de dados Módulo 12. Ilustração Backup-Recovery. Recuperação (Recovery) - Definição

Sumário. Administração de Banco de dados Módulo 12. Ilustração Backup-Recovery. Recuperação (Recovery) - Definição Sumário Administração de Banco de dados Módulo 12 1. Administração de SGBDs - Continuação 1.1. Recuperação (Recovery) 1.1.1. Recuperação de sistema 1.1.2. Recuperação da mídia M. Sc. Luiz Alberto lasf.bel@gmail.com

Leia mais

Casos de Uso. Professor MSc Wylliams Barbosa Santos wylliamss@gmail.com wylliams.wordpress.com Laboratório de Programação

Casos de Uso. Professor MSc Wylliams Barbosa Santos wylliamss@gmail.com wylliams.wordpress.com Laboratório de Programação Casos de Uso Professor MSc Wylliams Barbosa Santos wylliamss@gmail.com wylliams.wordpress.com Laboratório de Programação Agenda Caso de Uso Conceitos Iniciais Cenário Principal Cenários Alternativos Atores

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

Sobre o Sistema FiliaWEB

Sobre o Sistema FiliaWEB Setembro/2009 SUMÁRIO SOBRE O SISTEMA FILIAWEB... 3 I - PAPÉIS E RESPONSABILIDADES NA NOVA SISTEMÁTICA DAS LISTAS DE FILIAÇÃO PARTIDÁRIA... 4 II CADASTRAMENTO DE USUÁRIO... 5 III REGISTRO DE FILIADOS...

Leia mais

Tutorial Gerenciador de Conteúdo Site FCASA

Tutorial Gerenciador de Conteúdo Site FCASA Tutorial Gerenciador de Conteúdo Site FCASA Versão 1.0* Bolt Brasil Comunicação Digital Tel: 31 3335 7100 www.bolt.com.br Rua Santa Catarina, 1627 15 andar Lourdes Belo Horizonte / MG CEP: 30170-081 *

Leia mais

Criar uma aplicação JPA2 com EclipseLink e H2

Criar uma aplicação JPA2 com EclipseLink e H2 Criar uma aplicação JPA2 com EclipseLink e H2 1) Criar uma aplicação Java no NetBeans. File > New Project > Java, Java Application > Project name: JPA2 Finish. 2) Acrescentar ao Projeto NetBeans a biblioteca

Leia mais

Para os demais formatos, o relatório será gerado mas virá com configurações incorretas.

Para os demais formatos, o relatório será gerado mas virá com configurações incorretas. Balancete Orçamentário Produto : TOTVS Gestão Patrimonial - 12.1.6 Processo : Relatórios Subprocesso : Balancete Orçamentário Data publicação da : 17/06/2015 O Balancete é um relatório contábil oficial

Leia mais

Módulo 9 A Avaliação de Desempenho faz parte do subsistema de aplicação de recursos humanos.

Módulo 9 A Avaliação de Desempenho faz parte do subsistema de aplicação de recursos humanos. Módulo 9 A Avaliação de Desempenho faz parte do subsistema de aplicação de recursos humanos. 9.1 Explicações iniciais A avaliação é algo que faz parte de nossas vidas, mesmo antes de nascermos, se não

Leia mais

SISTEMAS DE INFORMAÇÃO GERENCIAIS

SISTEMAS DE INFORMAÇÃO GERENCIAIS SISTEMAS DE INFORMAÇÃO GERENCIAIS Aluno: Luiza Cavalcanti Marques Orientador: Silvio Hamacher Introdução A modelagem e a utilização de bancos de dados em atividades gerenciais têm sofrido um aumento significativo

Leia mais

Bem-vindo ao tópico Múltiplas filiais.

Bem-vindo ao tópico Múltiplas filiais. Bem-vindo ao tópico Múltiplas filiais. 1 Ao final deste tópico, você estará apto a: Explicar as opções disponibilizadas com o recurso Múltiplas filiais. Definir as configurações necessárias para trabalhar

Leia mais

PROCEDIMENTOS PARA ORGANIZAÇÃO E ENTREGA DE DOCUMENTOS NOVOS

PROCEDIMENTOS PARA ORGANIZAÇÃO E ENTREGA DE DOCUMENTOS NOVOS PROCEDIMENTOS PARA ORGANIZAÇÃO E ENTREGA DE DOCUMENTOS NOVOS Este manual foi elaborado para orientar o Cliente, Órgão/Entidade, sobre os procedimentos necessários a serem seguidos com relação à preparação

Leia mais

Manual de uso do Borderô Credix

Manual de uso do Borderô Credix Manual de uso do Borderô Credix Após efetuar o download do aplicativo siga os passos para a instalação do sistema, ao final será criado um atalho na área de trabalho, como ilustra a figura 1. Figura 1

Leia mais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

Leia mais

Dinheiro Opções Elvis Pfützenreuter

Dinheiro Opções Elvis Pfützenreuter Ganhando Dinheiro com Opções Conheça as estratégias vencedoras para ter sucesso em operações com derivativos na Bolsa de Valores Elvis Pfützenreuter Novatec capítulo 1 Olha eu aqui de novo! É incrível

Leia mais

Manual do Usuário. Protocolo

Manual do Usuário. Protocolo Manual do Usuário Protocolo Índice de capítulos Parte I - Processos............................... 01 1 - Buscar................................ 01 2 - Listar................................ 02 3 - Abertura..............................

Leia mais

Manual do usuário Neo Protocolo Free

Manual do usuário Neo Protocolo Free O Neo Protocolo Free, é um sistema para criar e gerenciar protocolos de entrega e recebimento de documentos, desenvolvido e distribuído gratuitamente pela Neo Solutions. O software pode funcionar de forma

Leia mais

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc. Herança Técnico em Informática, M.Sc. Herança 2 Herança Reutilização de código Exemplo Banco: Um banco oferece diversos serviços que podem ser contratados individualmente pelos clientes. Quando um serviço

Leia mais

Acessando o SVN. Soluções em Vendas Ninfa 2

Acessando o SVN. Soluções em Vendas Ninfa 2 Acessando o SVN Para acessar o SVN é necessário um código de usuário e senha, o código de usuário do SVN é o código de cadastro da sua representação na Ninfa, a senha no primeiro acesso é o mesmo código,

Leia mais

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados 01) Defina com suas próprias palavras: a) Banco de Dados b) Sistema Gerenciador de Banco de Dados c) Sistema de Banco de

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Tópicos Avançados II 5º período Professor: José Maurício S. Pinheiro AULA 3: Políticas e Declaração de

Leia mais

Suporte ao Desenvolvedor: 0800 770 332 0 www.desenvolvedoresdaruma.com.br. STK (Start Kit DARUMA)

Suporte ao Desenvolvedor: 0800 770 332 0 www.desenvolvedoresdaruma.com.br. STK (Start Kit DARUMA) STK (Start Kit DARUMA) Programando pela primeira vez com a DarumaFramework.dll O que vem a ser a DarumaFramework? A DarumaFramework é uma DLL integradora de alto nível, que foi desenvolvida para você programador,

Leia mais

Parecer Consultoria Tributária Segmentos Endereço de entrega diferente do endereço principal da empresa - EFD ICMS-IPI - SP

Parecer Consultoria Tributária Segmentos Endereço de entrega diferente do endereço principal da empresa - EFD ICMS-IPI - SP empresa - EFD ICMS-IPI - SP 08/09/2014 Título do documento Sumário Sumário... 2 1. Questão... 3 2. Normas apresentadas pelo cliente... 3 3. Análise da Legislação... 3 4. Conclusão... 5 5. Informações Complementares...

Leia mais