JPA (Java Persistence API) Marcos Kalinowski
|
|
- Felipe Lagos Taveira
- 8 Há anos
- Visualizações:
Transcrição
1 JPA (Java Persistence API)
2 Agenda Conceitos básicos do JPA Mapeamento objeto relacional utilizando JPA Utilizando JPA para a persistência na prática EntityManager JPQL (Java Persistence Query Language) 2
3 Agenda Conceitos básicos do JPA Mapeamento objeto relacional utilizando JPA Utilizando JPA para a persistência na prática EntityManager JPQL (Java Persistence Query Language) 3
4 Conceitos básicos do JPA JPA é uma abstração em cima do JDBC que torna possível ser independente do SQL Todas as classes e anotações da API JPA estão no pacote javax.persistence 4
5 Principais componentes do JPA ORM (Object-Relational Mapping) para a criação de objetos de domínio que podem ser persistidos (Entities) Uma API (EntityManager) para desempenhar operações de BD como Criar, Ler, Atualizar e Remover (CRUD) A linguagem de consulta de persistência Java (Java Persistence Query Language - JPQL) que permite recuperar dados com uma linguagem de consulta OO 5
6 O Conceito de Entidade Quando estamos mapeando objetos para um BD relacional, para persisti-los ou consultá-los o termo entidade deve ser usado Objetos são apenas mantidos em memória Entidades são objetos que são mantidas na memória durante um algum intervalo de tempo e, então persistidas no banco de dados Suportam herança, relacionamentos, etc. Desde que mapeados para o gerenciamento do JPA Uma vez persistidas, as entidades podem ser consultadas através da JPQL 6
7 Agenda Conceitos básicos do JPA Mapeamento objeto relacional utilizando JPA Utilizando JPA para a persistência na prática EntityManager JPQL (Java Persistence Query Language) 7
8 Mapeamento Objeto-Relacional O princípio do ORM é delegar a ferramentas externas (no nosso caso JPA) a tarefa de criar uma correspondência entre objetos e tabelas O mundo das classes, objetos e atributos podem, então, ser mapeados para BDs relacionais consistindo em tabelas, linhas e colunas O mapeamento proporciona uma visão orientada à objetos aos desenvolvedores que podem usar entidades em vez de tabelas de forma transparente 8
9 Mapeamento Objeto-Relacional Há uma diferença semântica significativa entre o modelo de classes de um projeto orientado a objetos e o modelo relacional. Assim, para que a persistência de objetos seja feita em um banco de dados relacional, é necessário proceder um mapeamento entre esses dois mundos. Diretriz: O mapeamento só deve ser visível na camada de persistência, isolando as classes de domínio do impacto da tecnologia de bancos de dados. Alternativas: Padrão DAO; Frameworks como JPA 9
10 Mapeamento Objeto-Relacional No mapeamento dos mundos de objetos e relacional, as seguintes questões devem ser abordadas: Mapeamento de Classes para Tabelas e de Objetos para Linhas; Mapeamento de Herança; Mapeamento de Relacionamentos entre Objetos. 10
11 Mapeamento de Classes para Tabelas e de Objetos para Linhas Quando não há herança, cada classe deve ser mapeada em uma tabela e cada instância da classe (objeto) em uma linha desta tabela. E as chaves primárias das Tabelas? Objetos têm identidade própria, independentemente dos valores de seus atributos. Que identificador devemos designar aos nossos objetos no banco de dados relacional? Verificar se há um atributo na classe com propriedade de identificação única e utilizá-lo, então, como chave primária. Caso não haja um atributo com tal característica, deverá ser criado um. 11
12 Mapeando Herança Existem três soluções razoavelmente aplicáveis para mapear a herança em um banco de dados relacional: 1) Utilizar uma tabela por classe na hierarquia, com chaves estrangeiras para a classe pai. 2) Utilizar uma tabela por classe filha na hierarquia. Cada tabela derivada para as classes concretas inclui tanto os atributos da classe quanto os de suas superclasses. Problemas? Possível redundância e inconsistência de dados. 3) Utilizar uma tabela para a classe pai com todos os atributos. As subclasses serão views da classe pai. Problemas? Possível redundância e inconsistência de dados. 12
13 Mapeando Relacionamentos É necessário transpor chaves entre tabelas para mapear relacionamentos. As regras válidas para o modelo relacional tem de ser aplicadas, tal como criar uma tabela adicional para mapear um relacionamento muitos-para-muitos. 13
14 Exemplo 14
15 Exemplo 15
16 Definição das Tabelas Alternativa 1 16
17 Definição das Tabelas Alternativa 2 (a princípio menos interessante) 17
18 Definição das Tabelas Alternativa 3 18
19 Exemplo 19
20 Definição das Tabelas 20
21 Exemplo 21
22 Definição das Tabelas 22
23 Mapeamento Objeto-Relacional Mas como o JPA mapeia objetos para um BD? Através de metadados! No JPA, metadados podem ser de dois tipos: Anotações: a classe é anotada com informações sobre como deve ser persistida Descritores XML: neste caso, o mapeamento é definido em um arquivo XML externo Podem ser usados em conjunto com anotações e oferecem a possibilidade de serem editados sem mudar o código Utiliza configuração por exceção Exemplo: por padrão, o nome da tabela é o mesmo da entidade, mas é configurável via metadados 23
24 Trabalhando com uma Entidade 24
25 Trabalhando com uma Entidade 25
26 Trabalhando com uma Entidade 26
27 Regras para Implementação de uma Entidade A entidade deve ser anotada A deve ser usada para criar uma chave primária simples A classe entidade deve possuir um construtor sem argumentos o qual deve ser public ou protected A classe entidade não pode ser um enum ou interface, apenas class é permitido A classe entidade não deve ser final. Nenhum dos métodos ou variáveis de instância pode ser final 27
28 Configuração por Exceção Desde que as entidades respeitem as regras, o provedor de persistência pode fazer o mapeamento considerando algumas convenções O nome da classe é mapeado como o nome da tabela Para mudar o nome use a Os nomes dos atributos são mapeados como nome das colunas Para mudar o nome use a Para mapear os tipos de dados, as mesmas regras do JDBC são válidas Por exemplo, String mapeia para VARCHAR O tamanho do varchar tem como padrão
29 @Table Elementos Básicos do Mapeamento: Tabelas Pode-se definir propriedades da tabela, como seu nome Por padrão, os nomes das tabelas são criadas com letra maiúscula, assim como nome da classe = livro") 29
30 Elementos Básicos do Mapeamento: Permite que os atributos de uma Entidade (classe) possa ser distribuído entre mais de uma tabela Para várias tabelas secundárias Exemplo: = = pais") }) Para mapear os atributos para as diferentes tabelas = cidade") private String cidade; Colunas que não especificarem a sua tabela serão mapeadas para a tabela primária Importante: considere questões de desempenho se optar por utilizar tabelas secundárias 30
31 @Id Elementos Básicos do Mapeamento: Chaves Primárias Define uma chave primária Pode ser dos seguintes tipos: Tipos primitivos: byte, int, short, long e char Classes wrapper : Byte, Integer, Short, Long, Character Strings, números e datas: String, BigInteger e Date 31
32 Elementos Básicos do Define que a coluna ter um valor gerado automaticamente Possui quatro valores: Chaves Primárias SEQUENCE e IDENTITY: define uma coluna sequence ou identity, respectivamente. TABLE: instrui o provedor de persistência a usar uma tabela para armazenar a semente da sequencia. É criada uma tabela com duas colunas - uma contendo o nome (arbitrário) e a outra o valor AUTO: a escolha da estratégia para geração do chave é feita automaticamente = GenerationType.AUTO) 32
33 Elementos Básicos do Mapeamento: Atributos O JPA permite o mapeamento dos seguintes tipos: Tipos primitivos (int, double, etc.) e as classes wrapper Array de bytes e caracteres String, númerico (BigInteger) e os temporais (Date, Calendar, Time e Timestamp) Tipos enumerados e definidos pelo usuário (atributos cujo o tipo seja uma classe definida pelo desenvolvedor) Requer um mapeamento entre entidades 33
34 @Basic Elementos Básicos do Mapeamento: Atributos É o tipo de mapeamento mais simples, definindo (através de seus parâmetros): optional: indica se o atributo é obrigatório ou não (se pode ser null na base de dados) fetch: indica se o atributo deve ser carregado quando a aplicação utilize o valor através da chamada get (LAZY) ou se carrega-o no momento que o objeto for criado (EAGER) fetch=fetchtype.lazy) private String descricao; 34
35 @Column Elementos Básicos do Mapeamento: Atributos Define grande parte das propriedades comuns à colunas em banco de dados: Ex: name, length, unique etc. Algumas outras Usada para definir Permite que um atributo não seja persistido Lembre-se ainda: anotações de mapeamento de atributo também podem ser usadas no método get 35
36 Elementos Básicos do Mapeamento: Relacionamentos (associações) No paradigma OO, as associações se resumem as seguintes formas: Unidirecional Bidirecional Com cardinalidade 36
37 Elementos Básicos do Mapeamento: Relacionamentos (associações) Desta forma, temos as seguintes combinações: Cardnalidade um para um um para um um para muitos um para muitos/muitos para um muitos para um muitos para muitos muitos para muitos Direcionamento Unidirecional Bidirecional Unidirecional Bidirecional Unidirecional Unidirecional Bidirecional Usaremos as seguintes notações para mapear @ManyToOne, 37
38 Elementos Básicos do Mapeamento: Relacionamentos (associações) No paradigma OO, o direcionamento define qual classe enxerga qual Em resumo, significa qual tem um atributo de referência para qual Em um relacionamento bidirecional ambas se referem No modelo entidade-relacionamento, existe uma decisão a mais para um relacionamento bidirecional: Quem (qual tabela) fica com a informação de relacionamento (chave estrangeira)? 38
39 Elementos Básicos do Mapeamento: Relacionamentos (associações um para um) Mapeando um relacionamento um para um bidirecional anotações Indica um relacionamento um para um Só é necessária no relacionamento bidirecional para indicar quem mapeia informações de relacionamento Pode ser usado opcionalmente para definir propriedades de cascade, fetch, dentre Elemento opcional que permite definir informações sobre a chave estrangeira (e.g., nome da coluna da chave estrageira) 39
40 Elementos Básicos do Mapeamento: Relacionamentos (associações um para um) 40
41 Elementos Básicos do Mapeamento: Relacionamentos (associações um para muitos) O relacionamento um para muitos unidirecional também pode ser mapeado por convenção Basta, para isto, que o tipo da lista seja Opcionalmente pode-se para definições adicionais 41
42 Elementos Básicos do Mapeamento: Relacionamentos (associações um para muitos) Relacionamentos um para muitos bidirecionais são análogos ao um para um, fazendo o uso (no lugar No relacionamento muitos para muitos bidirecional, como em todo relacionamento bidirecional, deve-se definir quem é o dono do relacionamento Para isto, usa-se o mappedby A tabela de mapeamento pode ser configurada Esta anotação também pode ser usada quando existir uma tabela de relacionamento 42
43 Elementos Básicos do Mapeamento: Relacionamentos (associações um para muitos) Repare fica na entidade dona do relacionamento, ou seja, a que não possui um atributo mapeada por outra 43
44 Um pequeno parênteses: ordenando o mapeamento 44
45 Elementos Básicos do Mapeamento: Relacionamentos (herança) Existem três estratégias para mapeamento de herança como sempre existe uma adotada por convenção: Uma única tabela por hierarquia (SINGLE_TABLE): a soma dos atributos é distribuída em uma tabela (estratégia padrão) Joined-subclass (JOINED): nesta abordagem, cada entidade da hierarquia, concreta ou abstrata, é mapeada em uma tabela diferente Uma tabela por classe concreta (TABLE_PER_CLASS): esta estratégia mapeia cada entidade concreta para uma tabela separada 45
46 Elementos Básicos do Mapeamento: Relacionamentos (herança) Algumas anotações Define a estratégia de mapeamento de Define o nome da coluna que identifica o tipo ao qual um determinado registro Define o valor para o tipo da entidade na qual a anotação é utilizada 46
47 Elementos Básicos do Mapeamento: Relacionamentos (herança) - Exemplo 47
48 Exercício (Atividade Prática) Defina Entidades JPA para o seguinte modelo: 48
49 Agenda Conceitos básicos do JPA Mapeamento objeto relacional utilizando JPA Utilizando JPA para a persistência na prática EntityManager JPQL (Java Persistence Query Language) 49
50 Utilizando JPA para a Persistência na Prática O elemento central da manipulação e consulta da base de dados é feita pela API da classe EntityManager Provê API para criação, remoção, busca e sincronização dos objetos com o banco de dados Além disto, permite a execução de consultas JPQL As consultas JPQL assemelham-se com a SQL, mas operam sobre objetos utilizando, por exemplo, a notação de ponto (.) dentro das consultas Exercício: verificar a documentação da API da classe EntityManager 50
51 Executando uma Consulta Simples Buscando pela chave Private EntityManager em; Book book = em.find(book.class, id); Note que o código acima não possui nenhuma referência a SQL, JPQL ou JDBC A classe EntityManager faz tudo isto por debaixo dos panos 51
52 Obtendo um EntityManager Existem duas formas de se obter e manipular um EntityManager Gerenciado pela Aplicação A aplicação obtém o EntityManager por meio de uma factory e também é responsável por gerenciar as transações e recursos (begin(), commit(), close() etc). Gerenciado pelo Container Em um ambiente gerenciado pelo container é possível fazer com que o EntityManager seja injetado em um EJB, por exemplo. 52
53 Exemplo: Persistindo uma Entidade com um EntityManager Gerenciado pelo public class LivroBean private EntityManager em; public void crialivro() { Livro livro = new Livro(); livro.settitulo("o Guia do Mochileiro das Galáxias"); livro.setpreco(38.5f); livro.setdescricao("humor e ficção científica"); livro.setnumpaginas(380); em.persist(livro); } Como pode ser visto no exemplo acima, em um ambiente gerenciado, o EntityManager não precisa ser instanciado nem ter os seus recursos e transação manipulados 53
54 O Contexto de Persistência Independentemente se o EntityManager é gerenciado pelo container ou pela aplicação, ele sempre está atrelado a um contexto de persistência. O contexto de persistência pode ser entendido como um cache. Toda entidade manipulada pelo EntityManager estará neste contexto evitando chamadas desnecessárias ao banco de dados. Exemplos: Quando uma entidade é recuperada através da chave primária com o método find(), o EntityManager primeiro verifica se aquele objeto já não está naquele contexto Quando o método persist() é invocado o EntityManager coloca a entidade persistida no contexto de persistência 54
55 O Contexto de Persistência Todo EntityManager esta ligado a uma unidade de persistência definida no arquivo persistence.xml pelo elemento <persistence-unit/> Neste elemento são definidas todas as classes que podem fazer parte de um contexto de persistência Além disto, define como as transações são manipuladas transaction-type="resource_local " para EntityManager gerenciados pela aplicação transaction-type= JTA" para EntityManagers gerenciados pelo container O escopo do contexto de persistência depende do tipo da transação utilizada pelo EntityManager, ou seja, como é gerenciado: Gerenciado pela aplicação Mantém-se enquanto o método close() do EntityManager não for chamado Gerenciado pelo container Mantém-se enquanto a transação JTA for mantida. O que normalmente significa enquanto o EJB for mantido pelo container 55
56 EntityManager: Buscando pelo ID Existem duas formas de buscar pelo ID Com o find() Livro livro = em.find(livro.class, 123L); if(livro!= null) { //processa o objeto } Com getreference() try { Livro livro = em.getreference(livro.class, 123L); //processa o objeto } catch (EntityNotFoundException e) { //Entidade não encontrada } Além das diferenças visíveis na forma de recuperar uma entidade, o objeto retornado por getreference() tem suas propriedades recuperadas tardiamente (lazy fetched) Dica: se for apenas fazer set no objeto, use getreference() 56
57 EntityManager: Removendo uma Entidade Usa-se o método remove et.begin(); em.remove(livro); et.commit(); Mas como lidar com os objetos órfãos? O JPA oferece um recurso para desde que a entidade órfão (Capa) seja referenciada por apenas uma entidade private Capa capa; 57
58 EntityManager: Atualizando uma Entidade Gerenciada Para atualizar uma entidade gerenciada basta chamar o método persist() et.begin(); em.persist(livro); et.commit(); livro.settitulo( Novo Título ) et.begin(); em.persist(livro); et.commit(); 58
59 EntityManager: Cascateando Eventos Por padrão, os métodos persist() e remove() trabalham apenas com a entidade passada como parâmetro Para fazer com que as entidades relacionadas também sejam persistidas ou removidas é necessário fazer os eventos em cascata et.begin(); em.persist(livro); em.persist(capa); et.commit(); Para que capa seja persistida junto com livro sem a necessidade de persistí-los individualmente o cascade por ser usado É uma opção disponível nas diferentes anotações (cascade = {CascadeType.PERSIST, CascadeType.REMOVE}) private Capa capa; O código ficaria desta forma: et.begin(); em.persist(livro); et.commit(); 59
60 O Ciclo de Vida das Entidades em Detalhe 60
61 Callbacks 61
62 Agenda Conceitos básicos do JPA Mapeamento objeto relacional utilizando JPA Utilizando JPA para a persistência na prática EntityManager JPQL (Java Persistence Query Language) 62
63 JPQL: Java Persistence Query Language JPQL é uma linguagem de consulta a entidades, independente da implementação de banco de dados usada É uma linguagem fortemente baseada no SQL, mas tem sintaxe mais próxima da orientação a objetos Notação minhaclasse.meuatributo Para executar uma consulta JPQL, o JPA a transforma em SQL e realiza chamadas JDBC ao banco de dados Exemplo de uma consulta simples: SELECT l FROM Livro l WHERE l.titulo = Guia do Mochileiro das Galáxias 63
64 A Sintaxe do Comando SELECT Como quase todos os comandos JPQL a sintaxe do comando SELECT é idêntica ao SQL SELECT <select expression> FROM <from clause> [WHERE <conditional expression>] [ORDER BY <order by clause>] [GROUP BY <group by clause>] [HAVING <having clause>] 64
65 INSERT, UPDATE e DELETE O JPQL não possui o comando INSERT Os comandos UPDATE e DELETE devem ser usados apenas para atualizações em lote Exemplos: DELETE FROM Livro l WHERE l.preco < 10 UPDATE Livro l SET l.descricao = PROMOÇÃO WHERE l.preco < 10 65
66 Consultas Como integrar as consultas vistas anteriormente a sua aplicação? O JPA oferece 3 tipos de consultas que podem ser usadas no código Dynamic queries: é o formato mais simples de consulta, consistindo de uma consulta JPQL definida em tempo de execução Named queries: são estáticas e imutáveis Native queries: útil para executar consultas SQL nativas no lugar de JPQL 66
67 Consultas O EntityManager é a classe responsável por fornecer consultas (classes do tipo Query) Método Descrição Query createquery(string jpqlstring) Query createnamedquery(string name) Query createnativequery(string sqlstring, Class resultclass) Cria uma instância de Query para executar consultas dinâmicas Cria uma instância de Query para executar uma consulta nomeada Cria uma instância de Query para executar uma consulta SQL nativa passando a classe com os resultados resperados 67
68 A API da classe Query Os métodos mais usados são para executar uma query, podendo ser de três tipos Queries do tipo SELECT O método getresultlist() executa a consulta e retorna uma lista de resultados O método getsingleresult() executa a consulta e retorna um resultado único Para queries do tipo UPDATE e DELETE utiliza-se o método executeupdate() 68
69 Consultas Dinâmicas String jpqlquery = "SELECT l FROM Livro l"; if (algumcriterio) jpqlquery += " where l.preco < :pco"; query = em.createquery(jpqlquery); query.setparameter("pco", 10.0); List<Livro> livros = query.getresultlist(); É importante observar que consultas JPQL são traduzidas, em tempo de execução, para SQL usando metadados do mapeamento ORM. Isto pode ser alvo de problemas de desempenho, que pode ser resolvido por meio do uso de consultas nomeadas (estáticas e imutáveis) 69
70 Consultas Nomeadas Não são flexíveis como as consultas dinâmicas, pois não podem ser montadas em tempo de execução Mas são mais eficientes, em termos de desempenho, já que são traduzidas uma vez, quando a aplicação é iniciada em vez de toda vez que a consulta @NamedQuery(name = "buscatodos", query="select l from Livro = "buscapromocao", query = "select l from Livro l where l.preco < :pco") }) public class Customer { // } 70
71 Consultas Nomeadas Buscando todos Query query = em.createnamedquery("buscatodos"); List<Livro> livros = query.getresultlist(); Buscando três promoções Query query = em.createnamedquery("buscapromocao"); query.setparameter("pco", 10.0); query.setmaxresults(3); List<Livro> livros = query.getresultlist(); P.S: O nome da consulta deve ser único (independente da entidade que a contém) 71
72 Consultas Nativas Consultas nativas podem ser dinâmicas Query query = em.createnativequery("select * FROM t_livro", Livro.class); List<Livro> livros = query.getresultlist(); Ou = buscatodos", query="select * from = "t_livro") public class Livro { // } 72
73 Agenda Conceitos básicos do JPA Mapeamento objeto relacional utilizando JPA Utilizando JPA para a persistência na prática EntityManager JPQL (Java Persistence Query Language) 73
74 Exercícios Injetar um EntityManager no EJB com agendamento criado em exercício anterior e fazer com que ele periodicamente: Crie e persista uma entidade Tempo (bastam dois campos na Tabela, id e tempoatual). Estender seu próprio projeto, transformando seus objetos de domínio em entidades persistentes JPA. 74
75 Exemplo Injetando um EntityManager em um EJB com agendamento para persistir informações de Livros e Autores (@ManyToMany): Três Métodos PersisteLivro Executa de 10 em 10 segundos e sorteia um livro a ser persistido. ListaLivros Executa de de 30 em 30 segundos e lista todos os livros cadastrados no banco de dados. ApagaLivro Executa de 20 em 20 segundos, sorteia um dos livros cadastrados no banco e o apaga. 75
76 Estrutura Alvo 76
77 Criando o Banco de Dados 77
78 Criando as Classes de Entidade (JPA) 78
79 @Entity = "findallbooks", query = "select b from Book = "findbooksbygenre", query = "select b from Book b where b.genre = :genre") }) public class Book implements = GenerationType.AUTO) private int id; nullable=false) private String isbn; private String (cascade = {CascadeType.PERSIST, CascadeType.REMOVE}) private List<Author> authors; private String // opções DATE, TIME e TIMESTAMP private Date creationdate; public Book() { } public Book(String isbn, String title, List<Author> authors, String genre) { this.isbn = isbn; this.title = title; this.authors = authors; this.genre = genre; this.creationdate = new Date(); } } // getters e setters 79
80 @Entity public class Author = GenerationType.AUTO) private int id; private String firstname; private String lastname; public Author() { } public Author(String firstname, String lastname) { this.firstname = firstname; this.lastname = lastname; } } public String getcitationstring(){ return lastname + ", " + firstname; } 80
81 O persistence.xml <?xml version="1.0" encoding="utf-8"?> <persistence version="2.1" xmlns=" xmlns:xsi=" xsi:schemalocation=" <persistence-unit name="enterpriseapplicationexemplopersistencia-ejbpu" transaction-type="jta"> <jta-data-source>biblioteca</jta-data-source> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties> <property name="javax.persistence.schema-generation.database.action" value="create-or-extend-tables"/> </properties> </persistence-unit> </persistence> 81
82 O glassfish-resources.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" " <resources> <jdbc-connection-pool... name="derby_net_biblioteca_pool...> <property name="servername" value="localhost"/> <property name="portnumber" value="1527"/> <property name="databasename" value="biblioteca"/> <property name="user" value="root"/> <property name="password" value="root"/> <property name="url" value="jdbc:derby://localhost:1527/biblioteca"/> <property name="driverclass" value="org.apache.derby.jdbc.clientdriver"/> </jdbc-connection-pool> <jdbc-resource enabled="true" jndi-name="biblioteca" object-type="user" pool-name="derby_net_biblioteca_pool"/> </resources> 82
83 Criando o TimerSessionBean 83
84 Criando public class TimerBookManager private EntityManager em; Injeção do EntityManager // Aqui entram os três métodos } 84
85 Método que executa de 10 em 10 segundos e sorteia um livro a ser = "Mon-Fri", month = "*", hour = "9-22", dayofmonth = "*", year = "*", minute = "*", second = "*/10") public void persistelivro() { List<Book> books = new ArrayList(); // Criando um livro e adicionando na lista de livros List<Author> authors = new ArrayList(); Author author = new Author ("Guilherme", "Travassos"); authors.add(author); author = new Author ("Marcos", "Kalinowski"); authors.add(author); Book b = new Book(" ", "imps 2013 : evidências sobre o desempenho das empresas que adotaram o modelo MPS-SW", authors, "Científico"); books.add(b); // Mais exemplos de livros... //Sorteando o livro que será adicionado no banco Random rn = new Random(); int chosenbook = Math.abs(rn.nextInt())%books.size(); } b = books.get(chosenbook); System.out.println("Adicionando um livro " + b.tostring()); em.persist(b); 85
86 Método que executa de de 30 em 30 segundos e lista todos os livros cadastrados no banco de = "Mon-Fri", month = "*", hour = "9-22", dayofmonth = "*", year = "*", minute = "*", second = "*/30") public void listalivros() { //Pegando todos os livros do banco Query query = em.createnamedquery("findallbooks"); List<Book> books = query.getresultlist(); } //Listagem dos livros System.out.println("Listagem dos livros técnicos cadastrados no Banco: "); for (Book book: books){ System.out.println(book.toString()); } 86
87 Método que executa de 20 em 20 segundos, sorteia um dos livros cadastrados no banco e o = "Mon-Fri", month = "*", hour = "9-22", dayofmonth = "*", year = "*", minute = "*", second = "*/20") public void apagalivro() { //Pegando todos os livros do banco Query query = em.createnamedquery("findallbooks"); List<Book> books = query.getresultlist(); //Escolhendo um livro aleatorio Random rn = new Random(); int chosenbook = Math.abs(rn.nextInt())%books.size(); Book book = books.get(chosenbook); } //Removendo ele do banco System.out.println("Removendo um livro " + book.tostring()); em.remove((book) books.get(chosenbook)); 87
88 Rodando o Exemplo 88
89 Rodando o Exemplo Saída Esperada: 89
90 Banco de dados e registros criados: Rodando o Exemplo 90
91 Leituras Sugeridas Java EE 7 Tutorial, Eric Jendrock, Ricardo Cervera-Navarro, Ian Evans, Kim Haase, William Markito Part VIII Persistence Java EE 7: The Big Picture, Danny Coward Capítulo 12, Modern Memories: The Java Persistence API 91
92 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 maisAula 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 maisPersistê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 maisHibernate. 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 maisMapeamento 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 maisruirossi@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 maisJava 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 maisUFG - 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 maisJPA: 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 maisAula 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 maisJPA 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 maisUFG - 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 maisHibernate. Mapeamento O/R Marcio Aguiar Ribeiro aguiar.marcio@gmail.com
Hibernate Mapeamento O/R Marcio Aguiar Ribeiro aguiar.marcio@gmail.com Hibernate O que é? Ferramenta para mapeamento O/R em Java Uma das mais difundidas Transparência Independência quanto ao tipo de base
Leia maisUFG - 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 maisPadrão J2EE Data Access Object (DAO)
Introdução CRUD DAO Exemplo Padrão J2EE Data Access Object (DAO) Prof. Enzo Seraphim Motivação para usar Componentes precisam acessar e armazenar informações em armazenamento persistente As APIs de armazenamento
Leia maisPersistê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 maisPersistindo 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 maisHIBERNATE 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 maisResolvendo 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 maisAuditando persistência com JPA
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:
Leia maisMódulo 03. Mapeando Associações/Relacionamentos. Raphaela Galhardo. raphaela@jeebrasil.com.br
Módulo 03 Mapeando Associações/Relacionamentos Raphaela Galhardo raphaela@jeebrasil.com.br Associações Um-para-um; Muitos-para-um; Um-para-muitos; Muitos-para-muitos. Associações - OneToMany Exemplo: Uma
Leia maisALTO 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 mais1 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 maisAuditoria 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 maisUFG - 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 maisMAPEAMENTO 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 maisHibernate 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 maisJava Persistence Query Language JPQL
Introdução SELECT FROM WHERE GROUP BY HAVING ORDER BY Java Persistence Query Language JPQL Prof. Enzo Seraphim Definições Tornar SQL orientado a objetos Classes e propriedades ao invés de Tabelas e colunas
Leia maisJPA 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 maisLinguagem de Consulta - SQL
SQL Structured Query Language Linguagem de Consulta Estruturada; Originou-se da linguagem SEQUEL (1974); Revisada e chamada de SQL em 1976/77; Em 1986, padronizada pelo ANSI/ISO - chamada SQL-86; Em 1987
Leia maisSQL 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 maisDESENVOLVIMENTO DE SOFTWARE
VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.
Leia maisSQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.
SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]
Leia maisLinguagem 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 maisUma Abordagem sobre Mapeamento Objeto Relacional com Hibernate
Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,
Leia maisExercícios de Revisão Java Básico
Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1
Leia maisCapítulo 1 - Java EE 6 por alto - 1
Capítulo 1 - Java EE 6 por alto - 1 Um pouquinho de história - 2 Padrões - 4 Arquitetura - 4 Componentes - 5 Contentores - 6 Serviços - 7 Protocolos de rede - 9 Empacotamento - 9 Java Standard Edition
Leia maisAula 5. Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com)
Persistência com JDBC e JPA Aula 5 Carlos Eduardo de Carvalho Dantas (carloseduardocarvalhodantas@gmail.com) Quem é sábio procura aprender, mas os tolos estão satisfeitos com a sua própria ignorância..
Leia maisProgramação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.
Programação Java em Ambiente Distribuído Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate Douglas Rocha Mendes Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados
Leia maisUFG - 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 12 Consultas JPQL Consultas JPQL Consultas em JPQL
Leia maisCurso PHP Aula 08. Bruno Falcão brunogfalcao@gmail.com
+ Curso PHP Aula 08 Bruno Falcão brunogfalcao@gmail.com + Roteiro Conectividade com BD SQL + SQL Structured Query Language. Padrão para interagir com banco de dados relacionais. + Banco de dados Um banco
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:
Leia maisFigura 5 - Workflow para a Fase de Projeto
5. Fase de Projeto A Fase de Projeto caracteriza-se por transformar as informações modeladas durante a Fase de Análise em estruturas arquiteturais de projeto com o objetivo de viabilizar a implementação
Leia maisPHP 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 maisDesmistificando 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 mais5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES
CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:
Leia maisAnálise de Programação
Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros
Leia maisSQL - Criação de Tabelas
SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25 Sumário 1 Introdução 2 Tabelas
Leia maisEspecificaçã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 maisImplementando 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 maisBanco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL
Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas
Leia maisStruts 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 maisPersistência com JPA2 e Hibernate TREINAMENTOS
Persistência com JPA2 e Hibernate TREINAMENTOS Persistência com JPA 2 e Hibernate 18 de junho de 2012 Sumário i Sobre a K19 1 Seguro Treinamento 2 Termo de Uso 3 Cursos 4 1 Introdução 1 1.1 Persistência.............................................
Leia maisJPA - Java Persistence API. Entity. Entity Campos e Propriedades Entity Chaves Primárias Entity Associações. Entity Manager
JPA - 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
Leia maisJPA - Java Persistence API. Entity. Entity Campos e Propriedades Entity Chaves Primárias Entity Associações. Entity Manager
JPA - 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
Leia maisBanco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli
Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 4) Clodis Boscarioli Agenda: Indexação em SQL; Vantagens e Custo dos Índices; Indexação no PostgreSQL; Dicas Práticas. Índice em SQL Sintaxe:
Leia maisBanco de Dados. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com
Banco de Dados Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Roteiro Mapeamento de objetos para modelo relacional Estratégias de persistência Persistência JDBC Mapeando Objetos para o Modelo Relacional
Leia mais2008.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 maisJava Beans e Servlets
6 Java Beans e Servlets Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Apresentar os recursos de orientação à objetos Java em JSP e integrá-los a tecnologia
Leia maisManipulaçã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 maisCurso 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 maisJava & 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 maisSISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária
SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA
Leia maisIntrodução à Engenharia da Computação. Banco de Dados Professor Machado
Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:
Leia maisJ550 Integração com Bancos de Dados
J550 Integração com Bancos de Dados Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Objetivos Este módulo apresenta estratégias para conectar servlets com a camada de dados usando um DAO - Data
Leia maisPHP 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 maisModelo Relacional. 2. Modelo Relacional (Lógico)
Modelo Relacional 2. Modelo Relacional (Lógico) Derivado do modelo conceitual; Depende do SGBD escolhido; Independe dos dispositivos de armazenamento; Primitivas: tabelas, linhas e colunas; Transformação
Leia mais1. Domínio dos Atributos
Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando
Leia maisCapítulo 8. Introdução UML
Capítulo 8. Introdução UML 1/42 Índice Indice 8.1 - Introdução UML 8.2 - Modelação estrutural 8.2.1 - Representação de classes e objectos 8.2.2 - Relações entre objectos 8.2-3 - Relações de associação
Leia mais3.1 Definições Uma classe é a descrição de um tipo de objeto.
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:
Leia maisHIBERNATE EM APLICAÇÃO JAVA WEB
HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este
Leia maisSQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
SQL Linguagem de Definição 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 Ingress SQL
Leia maisIntrodução ao Paradigma Orientado a Objetos. Principais conceitos
Introdução ao Paradigma Orientado a Objetos Principais conceitos Paradigmas de Programação PROGRAMAÇÃO ESTRUTURADA X PROGRAMAÇÃO ORIENTADA A OBJETOS Paradigma Programação estruturada Na programação estrutura
Leia maisÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO... 06 CAPÍTULO 2 INSTALANDO O DELPHI... 10
Delphi 7 ÍNDICE CAPÍTULO 1 INTRODUÇÃO... 06 CAPÍTULO 2 INSTALANDO O DELPHI... 10 CAPÍTULO 3 INICIANDO O Delphi... 18 FORM DESIGN... 19 CODE EDITOR... 23 OBJECT INSPECTOR... 26 OBJECT TREE VIEW... 29 PALHETA
Leia maisBanco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.
Banco de Dados O que é um Banco de Dados? Este assunto é muito vasto, tentaremos resumi-lo para atender as questões encontradas em concursos públicos. Já conhecemos o conceito de dado, ou seja, uma informação
Leia maisBanco de Dados Oracle 10g: Introdução à Linguagem SQL
Oracle University Entre em contato: 0800 891 6502 Banco de Dados Oracle 10g: Introdução à Linguagem SQL Duração: 5 Dias Objetivos do Curso Esta classe se aplica aos usuários do Banco de Dados Oracle8i,
Leia maisCriar 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 maisMó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 maisMapeamento Objeto-Relacional
Mapeamento Objeto-Relacional Persistência de dados com Java Persistence API - Hibernate Jefferson S Silva Mapeamento objeto-relacional Mas como? SQL + JDBC!? 1 Para quê serve MOR? O uso de uma solução
Leia maisProgramação Orientada a Objetos (DPADF 0063)
Programação Orientada a Objetos (DPADF 0063) Aula 9 JDBC (Java Database Connectivity) Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas
Leia maisFigura 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 maisBanco de Dados. Profª. Ana Leda
Banco de Dados Profª. Ana Leda Introdução 1 DADO PROCESSAMENTO INFORMAÇÃO 2 Dados x Informação DADO = REPRESENTAÇÃO DE UM FATO, OBJETO, EVENTO, PESSOA, ETC. ENTIDADE = FATO, OBJETO, EVENTO, PESSOA, ETC,
Leia maisSOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum
SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Cronograma Introdução
Leia maisPROJETO PEDAGÓGICO DE CURSOS
1 de 6 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM MARÇO / 2015 2 de 6 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,
Leia maisAULA 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 maisMANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL
MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL INTRODUÇÃO: O PostgreSQL é um dos mais populares e avançados sistemas gerenciadores de banco de dados (SGBD) com código aberto. É
Leia mais2008.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 maisAula 1 Acesso a Banco de Dados
Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores
Leia maisProf.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br
Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos
Leia maisPersistência de Classes em Tabelas de Banco de Dados
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos
Leia maisEtc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44
Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,
Leia maisBanco de Dados. Prof. Leonardo Barreto Campos 1
Banco de Dados Prof. Leonardo Barreto Campos 1 Sumário Introdução; Banco de Dados Relacionais; SQL; MySQL; Manipulando Banco de Dados com o JDBC; Bibliografia; Prof. Leonardo Barreto Campos 2/25 Introdução
Leia maisAndroid e Bancos de Dados
(Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do
Leia maisDisciplina de Banco de Dados Parte V
Disciplina de Banco de Dados Parte V Prof. Elisa Maria Pivetta CAFW - UFSM Modelo de Dado Relacional O Modelo Relacional O Modelo ER é independente do SGDB portanto, deve ser o primeiro modelo gerado após
Leia maisUsando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak
Usando PostgreSQL na Regra de Negócio de um ERP Fabiano Machado Dias Eduardo Wolak Regra de negócio? São todas as regras existentes num sistema de informação, que ditam seu comportamento, suas restrições
Leia maisTipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de
Capítulo 8: BDs Objecto-Relacional Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de Objectos e Referência
Leia maisComo criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse
Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web
Leia mais