SlideShare uma empresa Scribd logo
ORM
(Object Relational Mapper)
FACOM | UFMS
ORM (Object Relational Mapper)
• Desenvolvido com o objetivo de flexibilizar o modelo relacional (ainda não havia nosql)
• Técnica de mapeamento objeto relacional que permite fazer uma relação entre a programação orientada a objetos
e o modelo relacional de banco de dados
• Realiza mapeamento e manipulação dos dados
• Existem inúmeros frameworks disponíveis para diversas linguagens de programação
• Exemplos:
• Java – Hibernate
• C# – Entity Framework, Nhibernate
• PHP – RedBeanPHP, Doctrine, Propel, Eloquent (Laravel)
• Python – DjangoORM, SqlAlchemy
• NodeJS – Sequelize
• A representação é feita por meio de classes, métodos e propriedades
• O Framework faz a abstração do SQL
• Possui os métodos de CRUD – (create, read, update and delete)
• Detalhes de conexões e queries/
FACOM | UFMS
Laboratório de Banco de Dados
Banco de dados relacional
Visão Geral
3
Camada
de
mapeamento
ORM
Objetos em memória
Tabelas e restrições
em banco de dados
FACOM | UFMS
ORM (Object Relational Mapper)
• Vantagens
• Independência de SGBD
• Facilidade de migração
• Produtividade e redução de código
• Cache de dados
• Segurança (sql injection por exemplo)
• Arquitetura de software bem definida (necessário uma camada de integração com o
banco de dados)
• Desvantagens
• Modelos mais complexos de entidades e relacionamentos podem causar dificuldades no
mapeamento para ORM. Assim, o ORM pode não tratar corretamente
• Necessário ter um bom conhecimento do funcionamento interno do ORM
• Em alguns casos, é necessário utilizar queries diretamente
• Aprender a utilizar um ORM pode ser mais complicado do que utilizar o SQL. Ainda mais
se você trabalhar com ORMs diferentes para linguagens de programações diferentes
Programação
integrada com
banco de dados
É possível fazer conexões com
banco de dados direta ou por
meio de ORMs
• Python
• Direta (procedimental / OO)
• Java
• Direta (JDBC)
• ORM (hibernate)
Banco de Dados
com python e
PostgreSQL
7
Laboratório de Banco de Dados
Programas
Input
Output
SGBD
SQL
Arquivos de
banco de
dados
Visão Geral
Conexão com o SGBD: cada
linguagem possui uma forma de
se comunicar (ODBC)
8
FACOM | UFMS
• Criada pelo holandês Guido Van Rossun em 1991, no instituto de
pesquisa nacional para matemática e ciência da computação de
Amsterdam
• Linguagem de programação de alto nível
• Totalmente OO
• Multiplataforma (Windows, Linux, etc)
• Quem utiliza?
• Google, Yahoo, Nasa, Globo.com, Nokia, IBM, etc
• Tipagem dinâmica
9
FACOM | UFMS
Laboratório de Banco de Dados 10
Tipos de dados
Python Postgresql
int integer, smallint
long bigint
float real, double
Decimal numeric
bool boolean
str text, varchar, char
list array
dict tipos personalizados
None null
FACOM | UFMS
Laboratório de Banco de Dados 11
Iniciando PostgreSQL com Python
PSYCOPG
• Uma das maneiras da linguagem Python reconhecer o banco de dados
PostgreSQL é por meio do adaptador PSYCOPG, que é considerado o
mais utilizado.
Documentação psycopy: http://initd.org/psycopg/docs/index.html
FACOM | UFMS
Laboratório de Banco de Dados
Programas
Input
Output
SGBD
PSYCOPYG
Arquivos de
banco de
dados
Visão Geral
12
FACOM | UFMS
Laboratório de Banco de Dados 13
Abrindo uma conexão
CONNECT
• dbname – the database name (database is a deprecated alias)
• user – user name used to authenticate
• password – password used to authenticate
• host – database host address (defaults to UNIX socket if not provided)
• port – connection port number (defaults to 5432 if not provided)
FACOM | UFMS
Laboratório de Banco de Dados 14
Abrindo um cursor
CURSOR
• Responsável pela instância de persistência (realiza as transações a partir da conexão
do banco de dados corrente)
FACOM | UFMS
Laboratório de Banco de Dados 15
Executando comando SQL
EXECUTE
• Executa o comando SQL
connpsql.py
FACOM | UFMS
Laboratório de Banco de Dados 16
Recuperando os resultados
FETCHONE / FETCHALL / FETCHMANY
• Os métodos a seguir são utilizados para recuperar os dados do banco de dados após
a chamada do comando execute(<sql>)
• FETCHONE():
• retorna uma única tupla (a primeira)
• FETCHALL():
• retorna todas as tuplas de uma consulta
• FETCHMANY(<size=cursor.arraysize]>):
• retorna o número de tuplas informadas no parâmetro.
FACOM | UFMS
Laboratório de Banco de Dados 17
Recuperando os resultados
FETCHALL
• FETCHALL():
• retorna todas as tuplas de uma consulta
FACOM | UFMS
Laboratório de Banco de Dados 18
Recuperando os resultados
FETCHONE
• FETCHONE():
• retorna uma única tupla (a primeira)
FACOM | UFMS
Laboratório de Banco de Dados 19
Recuperando os resultados
FETCHMANY
• FETCHMANY(<size=cursor.arraysize]>):
• retorna o número de tuplas informadas no parâmetro.
FACOM | UFMS 20
Classe de
conexão
ConexaoPSQL.py
FACOM | UFMS 21
Utilizando a classe
connclasspsql.py
Banco de Dados
com python e
Mysql
23
FACOM | UFMS
Laboratório de Banco de Dados 24
Iniciando PostgreSQL com Python
PYMYSQL
• Uma das maneiras da linguagem Python reconhecer o banco de dados
MySQL é por meio do adaptador PYMYSQL
Documentação pymysql: https://pymysql.readthedocs.io/en/latest/
FACOM | UFMS
Laboratório de Banco de Dados
Programas
Input
Output
SGBD
PYMYSQL
Arquivos de
banco de
dados
Visão Geral
25
FACOM | UFMS 26
Iniciando PostgreSQL com Python
PYMYSQL
connmysql.py
Banco de Dados
com Java e
postgreSQL
27
FACOM | UFMS
Laboratório de Banco de Dados
Integração do Java com o banco de dados
28
1. Usando JDBC: uma API (biblioteca de persistência em banco de dados relacionais do
Java) para conexão com o banco de dados denominada Java DataBase Connectivity -
JDBC,
• Consiste em um conjunto de classes e interfaces (API) escritas em Java que fazem o
envio de instruções SQL para qualquer banco de dados relacional.
2. Usando JPA: Java Persistence API, JPA.
• Consiste em padrão da linguagem Java que descreve uma interface comum para
frameworks de persistência de dados.
FACOM | UFMS
Laboratório de Banco de Dados
Integração do Java com o banco de dados
29
• Um ponto que deve ser observado é que as criações,
alterações, inserções, seleções, manipulações em geral
ficam por responsabilidade do programador através de
SQL, ele deve fornecer os comandos que deseja
executar no banco de dados.
• A JDBC é responsável apenas pela conexão com o
banco, envio de instruções e devolução dos dados e não
pela manipulação dos dados em si.
FACOM | UFMS
Programas
Input
Output
SGBD
JDBC
Arquivos de
banco de
dados
Visão Geral
30
Pacote java.sql
FACOM | UFMS
Laboratório de Banco de Dados 31
JDBC - Integração do Java com o banco de dados
1. Conectar-se a um banco de dados qualquer através da API JDBC;
2. Criar uma fábrica de conexões usando o design pattern Factory;
3. Pesquisar dados por meio de queries;
4. Encapsular suas operações com bancos de dados através de DAO - Data
Access Object.
FACOM | UFMS
Laboratório de Banco de Dados 32
JDBC - Integração do Java com o banco de dados
1. Conectar-se a um banco de dados qualquer através da API JDBC;
• A conexão a um banco de dados é feita de modo a evitar que cada banco tenha a
sua própria API e um conjunto de classes e métodos, temos um único conjunto de
interfaces muito bem definidas que devem ser implementadas.
• Esse conjunto de interfaces fica dentro do pacote java.sql e nos referiremos a ele como JDBC.
• Entre as diversas interfaces deste pacote, existe a interface Connection, que define
métodos para executar uma query (como um insert e select), commit de transação,
fechar a conexão, entre outros.
FACOM | UFMS
Laboratório de Banco de Dados 33
JDBC - Integração do Java com o banco de dados
ConnectionMain.class
FACOM | UFMS
Laboratório de Banco de Dados 34
JDBC - Integração do Java com o banco de dados
2. Criar uma fábrica de conexões usando o design Pattern Factory e DAO;
Factory (fábrica)
• Encapsula a instanciação de tipos concretos
DAO (Data Access Object)
• Separa a lógica de negócio da lógica de persistência de dados
• Responsável por trocar informações com o SGBD fornecendo operações de CRUD
Os Design Patterns são uma coleção de padrões de projeto de software que contém soluções
para problemas conhecidos e recorrentes no desenvolvimento de software descrevendo uma
solução comprovada para um problema de projeto recorrente.
FACOM | UFMS 35
JDBC - Integração do Java com o banco de dados
2. Criar uma fábrica de conexões usando o design Pattern Factory
ConnectionFactory.class
FACOM | UFMS 36
JDBC - Integração do Java com o banco de dados
2. Criar uma classe DAO para separa a lógica de persistência
DepartamentoDAO.class
FACOM | UFMS 37
JDBC - Integração do Java com o banco de dados
2. Teste da persistência utilizando JDBC
DepartamentoDAOTest.class
FACOM | UFMS
Laboratório de Banco de Dados 38
JPA - Integração do Java com o banco de dados
• JPA (Java Persistence API) – ferramenta de mapeamento objeto-relacional
(ORM - Object-relational mapping)
• Hibernate ferramento ORM open source que é uma inspiração para o JPA
• Hibernate:
• Abstrai o seu código SQL e a camada JDBC (são gerados em tempo de execução)
• Gera o SQL de acordo com o SGBD, tornando transparente dentro do Java a mudança de um
SGBD para outro
FACOM | UFMS
Laboratório de Banco de Dados 39
JPA - Integração do Java com o banco de dados
• Mapeamento
FACOM | UFMS
Laboratório de Banco de Dados
Links úteis
• Material de programação com python: https://www.py4e.com/book
• https://jdbc.postgresql.org/documentation/80/connect.html
• https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-
ao-jpa-com-hibernate/
• https://www.jetbrains.com/help/idea/2016.1/creating-persistence-
units.html
40

Mais conteúdo relacionado

PPT
2006 - ADONET.ppt
PDF
Palestra - Symfony Framework MVC PHP 5
PDF
Java 8 e futuro
PDF
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
PPTX
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
PDF
Framework web 01 - Aula UTFPR 2018
ODP
Processos iniciais do mapeamento OR
2006 - ADONET.ppt
Palestra - Symfony Framework MVC PHP 5
Java 8 e futuro
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Framework web 01 - Aula UTFPR 2018
Processos iniciais do mapeamento OR

Semelhante a 14-programacao-bd-Object Relational Mapper.pdf (20)

PDF
Uma implementação de suporte a
PDF
Zend Framework Estrutura e TDD
PDF
Persistência com JPA usando o NetBeans 7
PDF
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
PPTX
Treinamento ASP.NET 2014
PPT
Aula1
PDF
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
ODP
Entendendo Frameworks web com Python
ODP
Entendendo Framework Web com Python
PDF
Sistemas distribuidos java_8
PDF
JavaFX 8, Collections e Lambdas
PPTX
Banco de Dados em Grafos com Neo4J
PDF
Manual
PDF
Aula ASP.NET.pdf whatsap Whatsap pdf.com
PDF
Apresentação palestra ireport
PDF
PostgreSQL-Prático.pdf
PPT
Java Seminar
PDF
Minicurso Epoca mongoDB
PPTX
Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder
PDF
Simulador Eletromagnético em um Ambiente de Grades Computacionais
Uma implementação de suporte a
Zend Framework Estrutura e TDD
Persistência com JPA usando o NetBeans 7
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Treinamento ASP.NET 2014
Aula1
Palest"Tecnologias para Desenvolvimento Baseado em Componentes"
Entendendo Frameworks web com Python
Entendendo Framework Web com Python
Sistemas distribuidos java_8
JavaFX 8, Collections e Lambdas
Banco de Dados em Grafos com Neo4J
Manual
Aula ASP.NET.pdf whatsap Whatsap pdf.com
Apresentação palestra ireport
PostgreSQL-Prático.pdf
Java Seminar
Minicurso Epoca mongoDB
Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder
Simulador Eletromagnético em um Ambiente de Grades Computacionais
Anúncio

Mais de gabriel-colman (9)

PPTX
Revisão de programação Javascript Aula1.pptx
PDF
Slide 4 CORREÇÃO DAS ATIVIDADES, Banco de dados.pdf
PDF
8-uml-e-modelagem-oo Introdução a UML.pdf
PDF
Álgebra Linear e SQL Banco de Dados.pdf
PDF
Definição Formal do MER(Conceitos do Modelo Relacional).pdf
PDF
Engenharia de Software: Processos de Software
PDF
Introdução.pdf
PPTX
10 - JS OOP.pptx
PDF
shellsort.pdf
Revisão de programação Javascript Aula1.pptx
Slide 4 CORREÇÃO DAS ATIVIDADES, Banco de dados.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf
Álgebra Linear e SQL Banco de Dados.pdf
Definição Formal do MER(Conceitos do Modelo Relacional).pdf
Engenharia de Software: Processos de Software
Introdução.pdf
10 - JS OOP.pptx
shellsort.pdf
Anúncio

Último (7)

PPTX
Curso de Windows 11 resumido na prática.pptx
PDF
Dos requisitos ao código: como criar código rastreável em PHP
PDF
Evolução em código: algoritmos genéticos com PHP
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PPTX
Mapeamento de Objeto para Tabela Relacional
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PDF
apresentacao introducao computacao ead.pdf
Curso de Windows 11 resumido na prática.pptx
Dos requisitos ao código: como criar código rastreável em PHP
Evolução em código: algoritmos genéticos com PHP
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Mapeamento de Objeto para Tabela Relacional
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
apresentacao introducao computacao ead.pdf

14-programacao-bd-Object Relational Mapper.pdf

  • 2. FACOM | UFMS ORM (Object Relational Mapper) • Desenvolvido com o objetivo de flexibilizar o modelo relacional (ainda não havia nosql) • Técnica de mapeamento objeto relacional que permite fazer uma relação entre a programação orientada a objetos e o modelo relacional de banco de dados • Realiza mapeamento e manipulação dos dados • Existem inúmeros frameworks disponíveis para diversas linguagens de programação • Exemplos: • Java – Hibernate • C# – Entity Framework, Nhibernate • PHP – RedBeanPHP, Doctrine, Propel, Eloquent (Laravel) • Python – DjangoORM, SqlAlchemy • NodeJS – Sequelize • A representação é feita por meio de classes, métodos e propriedades • O Framework faz a abstração do SQL • Possui os métodos de CRUD – (create, read, update and delete) • Detalhes de conexões e queries/
  • 3. FACOM | UFMS Laboratório de Banco de Dados Banco de dados relacional Visão Geral 3 Camada de mapeamento ORM Objetos em memória Tabelas e restrições em banco de dados
  • 4. FACOM | UFMS ORM (Object Relational Mapper) • Vantagens • Independência de SGBD • Facilidade de migração • Produtividade e redução de código • Cache de dados • Segurança (sql injection por exemplo) • Arquitetura de software bem definida (necessário uma camada de integração com o banco de dados) • Desvantagens • Modelos mais complexos de entidades e relacionamentos podem causar dificuldades no mapeamento para ORM. Assim, o ORM pode não tratar corretamente • Necessário ter um bom conhecimento do funcionamento interno do ORM • Em alguns casos, é necessário utilizar queries diretamente • Aprender a utilizar um ORM pode ser mais complicado do que utilizar o SQL. Ainda mais se você trabalhar com ORMs diferentes para linguagens de programações diferentes
  • 5. Programação integrada com banco de dados É possível fazer conexões com banco de dados direta ou por meio de ORMs • Python • Direta (procedimental / OO) • Java • Direta (JDBC) • ORM (hibernate)
  • 6. Banco de Dados com python e PostgreSQL 7
  • 7. Laboratório de Banco de Dados Programas Input Output SGBD SQL Arquivos de banco de dados Visão Geral Conexão com o SGBD: cada linguagem possui uma forma de se comunicar (ODBC) 8
  • 8. FACOM | UFMS • Criada pelo holandês Guido Van Rossun em 1991, no instituto de pesquisa nacional para matemática e ciência da computação de Amsterdam • Linguagem de programação de alto nível • Totalmente OO • Multiplataforma (Windows, Linux, etc) • Quem utiliza? • Google, Yahoo, Nasa, Globo.com, Nokia, IBM, etc • Tipagem dinâmica 9
  • 9. FACOM | UFMS Laboratório de Banco de Dados 10 Tipos de dados Python Postgresql int integer, smallint long bigint float real, double Decimal numeric bool boolean str text, varchar, char list array dict tipos personalizados None null
  • 10. FACOM | UFMS Laboratório de Banco de Dados 11 Iniciando PostgreSQL com Python PSYCOPG • Uma das maneiras da linguagem Python reconhecer o banco de dados PostgreSQL é por meio do adaptador PSYCOPG, que é considerado o mais utilizado. Documentação psycopy: http://initd.org/psycopg/docs/index.html
  • 11. FACOM | UFMS Laboratório de Banco de Dados Programas Input Output SGBD PSYCOPYG Arquivos de banco de dados Visão Geral 12
  • 12. FACOM | UFMS Laboratório de Banco de Dados 13 Abrindo uma conexão CONNECT • dbname – the database name (database is a deprecated alias) • user – user name used to authenticate • password – password used to authenticate • host – database host address (defaults to UNIX socket if not provided) • port – connection port number (defaults to 5432 if not provided)
  • 13. FACOM | UFMS Laboratório de Banco de Dados 14 Abrindo um cursor CURSOR • Responsável pela instância de persistência (realiza as transações a partir da conexão do banco de dados corrente)
  • 14. FACOM | UFMS Laboratório de Banco de Dados 15 Executando comando SQL EXECUTE • Executa o comando SQL connpsql.py
  • 15. FACOM | UFMS Laboratório de Banco de Dados 16 Recuperando os resultados FETCHONE / FETCHALL / FETCHMANY • Os métodos a seguir são utilizados para recuperar os dados do banco de dados após a chamada do comando execute(<sql>) • FETCHONE(): • retorna uma única tupla (a primeira) • FETCHALL(): • retorna todas as tuplas de uma consulta • FETCHMANY(<size=cursor.arraysize]>): • retorna o número de tuplas informadas no parâmetro.
  • 16. FACOM | UFMS Laboratório de Banco de Dados 17 Recuperando os resultados FETCHALL • FETCHALL(): • retorna todas as tuplas de uma consulta
  • 17. FACOM | UFMS Laboratório de Banco de Dados 18 Recuperando os resultados FETCHONE • FETCHONE(): • retorna uma única tupla (a primeira)
  • 18. FACOM | UFMS Laboratório de Banco de Dados 19 Recuperando os resultados FETCHMANY • FETCHMANY(<size=cursor.arraysize]>): • retorna o número de tuplas informadas no parâmetro.
  • 19. FACOM | UFMS 20 Classe de conexão ConexaoPSQL.py
  • 20. FACOM | UFMS 21 Utilizando a classe connclasspsql.py
  • 21. Banco de Dados com python e Mysql 23
  • 22. FACOM | UFMS Laboratório de Banco de Dados 24 Iniciando PostgreSQL com Python PYMYSQL • Uma das maneiras da linguagem Python reconhecer o banco de dados MySQL é por meio do adaptador PYMYSQL Documentação pymysql: https://pymysql.readthedocs.io/en/latest/
  • 23. FACOM | UFMS Laboratório de Banco de Dados Programas Input Output SGBD PYMYSQL Arquivos de banco de dados Visão Geral 25
  • 24. FACOM | UFMS 26 Iniciando PostgreSQL com Python PYMYSQL connmysql.py
  • 25. Banco de Dados com Java e postgreSQL 27
  • 26. FACOM | UFMS Laboratório de Banco de Dados Integração do Java com o banco de dados 28 1. Usando JDBC: uma API (biblioteca de persistência em banco de dados relacionais do Java) para conexão com o banco de dados denominada Java DataBase Connectivity - JDBC, • Consiste em um conjunto de classes e interfaces (API) escritas em Java que fazem o envio de instruções SQL para qualquer banco de dados relacional. 2. Usando JPA: Java Persistence API, JPA. • Consiste em padrão da linguagem Java que descreve uma interface comum para frameworks de persistência de dados.
  • 27. FACOM | UFMS Laboratório de Banco de Dados Integração do Java com o banco de dados 29 • Um ponto que deve ser observado é que as criações, alterações, inserções, seleções, manipulações em geral ficam por responsabilidade do programador através de SQL, ele deve fornecer os comandos que deseja executar no banco de dados. • A JDBC é responsável apenas pela conexão com o banco, envio de instruções e devolução dos dados e não pela manipulação dos dados em si.
  • 28. FACOM | UFMS Programas Input Output SGBD JDBC Arquivos de banco de dados Visão Geral 30 Pacote java.sql
  • 29. FACOM | UFMS Laboratório de Banco de Dados 31 JDBC - Integração do Java com o banco de dados 1. Conectar-se a um banco de dados qualquer através da API JDBC; 2. Criar uma fábrica de conexões usando o design pattern Factory; 3. Pesquisar dados por meio de queries; 4. Encapsular suas operações com bancos de dados através de DAO - Data Access Object.
  • 30. FACOM | UFMS Laboratório de Banco de Dados 32 JDBC - Integração do Java com o banco de dados 1. Conectar-se a um banco de dados qualquer através da API JDBC; • A conexão a um banco de dados é feita de modo a evitar que cada banco tenha a sua própria API e um conjunto de classes e métodos, temos um único conjunto de interfaces muito bem definidas que devem ser implementadas. • Esse conjunto de interfaces fica dentro do pacote java.sql e nos referiremos a ele como JDBC. • Entre as diversas interfaces deste pacote, existe a interface Connection, que define métodos para executar uma query (como um insert e select), commit de transação, fechar a conexão, entre outros.
  • 31. FACOM | UFMS Laboratório de Banco de Dados 33 JDBC - Integração do Java com o banco de dados ConnectionMain.class
  • 32. FACOM | UFMS Laboratório de Banco de Dados 34 JDBC - Integração do Java com o banco de dados 2. Criar uma fábrica de conexões usando o design Pattern Factory e DAO; Factory (fábrica) • Encapsula a instanciação de tipos concretos DAO (Data Access Object) • Separa a lógica de negócio da lógica de persistência de dados • Responsável por trocar informações com o SGBD fornecendo operações de CRUD Os Design Patterns são uma coleção de padrões de projeto de software que contém soluções para problemas conhecidos e recorrentes no desenvolvimento de software descrevendo uma solução comprovada para um problema de projeto recorrente.
  • 33. FACOM | UFMS 35 JDBC - Integração do Java com o banco de dados 2. Criar uma fábrica de conexões usando o design Pattern Factory ConnectionFactory.class
  • 34. FACOM | UFMS 36 JDBC - Integração do Java com o banco de dados 2. Criar uma classe DAO para separa a lógica de persistência DepartamentoDAO.class
  • 35. FACOM | UFMS 37 JDBC - Integração do Java com o banco de dados 2. Teste da persistência utilizando JDBC DepartamentoDAOTest.class
  • 36. FACOM | UFMS Laboratório de Banco de Dados 38 JPA - Integração do Java com o banco de dados • JPA (Java Persistence API) – ferramenta de mapeamento objeto-relacional (ORM - Object-relational mapping) • Hibernate ferramento ORM open source que é uma inspiração para o JPA • Hibernate: • Abstrai o seu código SQL e a camada JDBC (são gerados em tempo de execução) • Gera o SQL de acordo com o SGBD, tornando transparente dentro do Java a mudança de um SGBD para outro
  • 37. FACOM | UFMS Laboratório de Banco de Dados 39 JPA - Integração do Java com o banco de dados • Mapeamento
  • 38. FACOM | UFMS Laboratório de Banco de Dados Links úteis • Material de programação com python: https://www.py4e.com/book • https://jdbc.postgresql.org/documentation/80/connect.html • https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica- ao-jpa-com-hibernate/ • https://www.jetbrains.com/help/idea/2016.1/creating-persistence- units.html 40