Persistência de dados com o

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

Download "Persistência de dados com o"

Transcrição

1 Persistência de dados com o Faculdade Zacarias de Góes Sistemas de Informação Linguagem de Programação Orientada a Objetos

2 1 INDICE 1. INTRODUÇÃO AO HIBERNATE MAPEAMENTO OBJETO-RELACIONAL POJO CONFIGURAÇÃO HIBERNATE.CFG.XML HBM.XML DIALETOS SUPORTADOS HQL TIPOS DE DADOS 7 2. CRIANDO UMA SIMPLES APLICAÇÃO A INTERFACE GRÁFICA O BANCO DE DADOS MAPEANDO O BANCO DE DADOS CONFIGURANDO O HIBERNATE A CLASSE DA SESSÃO A CLASSE DE PERSISTÊNCIA IMPLEMENTANDO AS CLASSES RODANDO A APLICAÇÃO REFERÊNCIAS 20

3 2 1. INTRODUÇÃO AO HIBERNATE O Hibernate é um Java FrameWork responsável por realizar a persistência dos dados no Banco de Dados utilizando o Mapeamento Objeto-Relacional. Ele funciona como um MiddleWare, uma camada que está entre a aplicação e o Banco de Dados, servindo como um intermediário e diminuindo a complexidade da programação, reduzindo substancialmente o tempo de desenvolvimento. Ele facilita o mapeamento dos atributos entre uma base tradicional de dados relacionais e o modelo objeto de uma aplicação, mediante o uso de arquivos XML para estabelecer esta relação. Sua principal característica é a transformação das classes (POJO) e tipos de dados do Java para tabelas e tipos de dados SQL. O Hibernate gera as chamadas SQL (Select, Insert, Join, Triggers...) e libera o desenvolvedor do trabalho manual da conversão dos dados resultante, mantendo o programa portável para qualquer banco de dados SQL, porém causando um pequeno aumento no tempo de execução. Demonstração do papel do Hibernate em uma aplicação 1.1. MAPEAMENTO OBJETO-RELACIONAL O Object-Relational Mapping (ORM), em português, Mapeamento Objeto- Relacional, é uma técnica de desenvolvimento utilizada para facilitar a comunicação da programação orientada aos objetos com os bancos de dados relacionais. As tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes. Com esta técnica aliada ao Hibernate, o programador não precisa se preocupar com os comandos em linguagem SQL, apenas irá utilizar uma interface de programação simples que faz todo o trabalho de persistência.

4 3 O Hibernate utiliza duas técnicas de mapeamento: arquivos XML separados da aplicação e Annotations (Anotações) que estão presentes no próprio código. Iremos abordar apenas o uso de arquivos XML POJO POJO significa Plain Old Java Objects, a tradução mais próxima para o português seria: O Simples e Velho Objeto Java. Seu objetivo é criar classes o mais simples possível, seguindo um padrão já definido, que tornam suas instâncias "genéricas" para todo o programa e diversos FrameWorks que se beneficiam desta técnica. Uma classe POJO segue definições rígidas de estrutura: Construtor sem argumentos; Atributos declarados como private; Métodos getters e setters, para cada atributo, declarados como public; Nada mais que isso. Abaixo segue um exemplo de uma classe POJO: public class Usuario { private int ID; private String nome; private String ; // CONSTRUTOR public Usuario() { // GETTERS public int getid() { return ID; public String getnome() { return nome; public String get () { return ; // SETTERS public void setid(int ID) { this.id = ID; public void setnome(string nome) { this.nome = nome; public void set (string ) { this. = ; No Hibernate o POJO é utilizado para mapear os campos do Banco de Dados na aplicação, permitindo que a geração do código SQL seja feita de forma automática, em tempo de execução.

5 4 Uma regra que deve ser seguida rigorosamente é criar a classe POJO com o mesmo nome da tabela a qual está sendo associado e os atributos com o mesmo nome e tipo dos campos. Isto não é obrigatório, mais por questão de organização e controle do código esta regra é altamente recomendada CONFIGURAÇÃO Para que o Hibernate funcione, além de importar as APIs necessárias para seu projeto, é preciso configurá-lo corretamente. Ele pode ser configurado de diversas formas: Utilizando uma instância de org.hibernate.cfg.configuration; Através do arquivo hibernate.properties; Através do arquivo hibernate.cfg.xml. Utilizaremos o hibernate.cfg.xml em nossos exemplos. Há um grande número de propriedades que controlam o comportamento do Hibernate em tempo de execução, sendo possível configurá-las em qualquer uma das técnicas citadas acima. Também é preciso mapear as classes POJO contendo a estrutura das tabelas, que por sua vez pode ser feito de duas maneiras: Com o uso Com o uso do hbm.xml. Os Annotations nos permite fazer o mapeamento diretamente no POJO utilizando antes da declaração da classe, métodos e atributos. Já o hbm.xml (Hibernate Mapping) é um arquivo separado que possui a localização do POJO. Utilizaremos o hbm.xml em nossos exemplos HIBERNATE.CFG.XML O hibernate.cfg.xml contém basicamente as seguintes informações: Local onde se encontra o Banco de Dados Dialeto do Banco de Dados (MySQL, SQL Server, Oracle, Firebird...); Usuário e senha; Local onde se encontram os hmb.xml; Tipo de cache a ser utilizado; Habilitar a coleta de estatísticas para melhorar o desempenho; E várias outras propriedades. A seguir temos um exemplo do hibernate.cfg.xml:

6 5 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" " <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost/banco_dados</property> <property name="hibernate.connection.username">usuario</property> <property name="hibernate.connection.password"/>senha</property> <property name="hibernate.dialect">org.hibernate.dialect.mysqldialect</property> <property name="show_sql">true</property> <property name="hibernate.format_sql">true</property> <property name="hibernate.generate_statistics">true</property> <mapping resource="classepojo.hbm.xml"/> </session-factory> </hibernate-configuration> HBM.XML O arquivo hbm.xml é responsável por mapear Banco de Dados, informando o nome da tabela, nome, tamanho e tipo de dados dos campos, o elemento identificador da tabela entre outras informações. A nomenclatura deste arquivo deve ser a seguinte: nome_pojo.hbm.xml. O exemplo a seguir demonstra como um arquivo de mapeamento deve ser criado: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" " <hibernate-mapping> <class name="aplicacao.exemplo" table="tabela_exemplo"> <id column="id" name="id" type="java.lang.long"> <generator class="native"></generator> </id> <property column="nome" name="nome" length="50" type="java.lang.string"/> <property column=" " name=" " length="50" type="java.lang.string"/> <property column="data_nascimento" name="data_nascimento" type="java.util.date"/> </class> </hibernate-mapping> 1.4. DIALETOS SUPORTADOS Você deve sempre determinar a propriedade hibernate.dialect ao configurar o Hibernate. Se você especificar um dialeto, o Hibernate usará padrões lógicos exclusivos para o dialeto informado, reduzindo o esforço de especificá-los manualmente.

7 6 A seguir temos uma tabela com os principais Bancos de Dados suportados pelo Hibernate: Banco de Dados PostgreSQL MySQL5 Oracle 11g SQL Server 2008 HypersonicSQL Interbase Firebird Dialeto org.hibernate.dialect.postgresqldialect org.hibernate.dialect.mysql5dialect org.hibernate.dialect.oracle10gdialect org.hibernate.dialect.sqlserver2008dialect org.hibernate.dialect.hsqldialect org.hibernate.dialect.interbasedialect org.hibernate.dialect.firebirddialect 1.5. HQL O Hibernate vem com uma poderosa linguagem de consulta, o Hibernate Query Language (HQL), que é muito parecida com o SQL. No entanto, comparado com o SQL o HQL é totalmente orientado à objetos, e compreende noções de herança, polimorfismo e associações. As Consultas não diferenciam maiúscula de minúscula, exceto pelo nomes das classes e propriedades Java. Portanto, SeLeCT é o mesmo que select que é o mesmo que SELECT, mas org.hibernate.exemplo não é org.hibernate.exemplo e exemplo.teste não é exemplo.teste. A seguir são apresentados alguns exemplos de HQL: // SELECT Query query = session.createquery("from pessoas where id = :id "); query.setparameter("id", "2324"); // UPDATE Query query = session.createquery("update pessoas set nome = :nome where id = :id"); query.setparameter("nome", "Fulano"); query.setparameter("id", "2324"); // DELETE Query query = session.createquery("delete pessoas where id = :id"); query.setparameter("id", "2324"); Para realizarmos um INSERT, UPDATE ou DELETE, não precisamos escrever o HQL como mostra o exemplo acima, apenas precisamos atribuir os devidos valores para o POJO e utilizarmos um código como o citado abaixo para persistir os dados: try { transacao = sessao.begintransaction(); sessao.save(pojo); transacao.commit(); catch (Exception e) {

8 TIPOS DE DADOS Sabemos que o Java possui seus próprios tipos de dados (java.lang.string, java.lang.character, java.util.date, java.util.list...), assim como o SQL também possui (varchar, character, timestamp...). Isso poderia se tornar um problema em alguns casos, pois nem sempre a conversão de um tipo de dado do Java coincidiria com um tipo de dado SQL. Por exemplo, no Java temos o tipo java.util.date responsável por armazenar data e hora, ou apenas um dos dois. Na linguagem SQL temos date (Data), time (Horário) e timestamp (Data e Horário). Uma conversão deste tipo pode não ser bem sucedida em determinadas situações. Para que este tipo de problema não ocorra, o Hibernate tem seus próprios tipos de dados, que funcionam como intermediários entre os tipos da aplicação e o Banco de Dados, garantindo uma conversão segura. Confira a tabela comparativa entre os tipos de dados do Hibernate e do Java: Hibernate integer long short float double character byte boolean, yes_no, true_false string, text date, time, timestamp calendar, calendar_date big_decimal big_integer Locale timezone currency class Binary Java int, java.lang.integer long, java.lang.long short, java.lang.short float, java.lang.float double, java.lang.double char, java.lang.character byte, java.lang.byte boolean, java.lang.boolean java.lang.string java.util.date java.util.calendar java.math.bigdecimal java.math.biginteger java.util.locale java.util.timezone java.util.currency java.lang.class byte[] 2. CRIANDO UMA SIMPLES APLICAÇÃO Iremos desenvolver uma simples aplicação que realizará as funções básicas do SQL: SELECT, INSERT, UPDATE e DELETE. Iremos utilizar o Java 6, Hibernate 3.6.6, MySQL5

9 8 e o NetBeans 7 neste projeto. Para baixar o Hibernate acesse: Primeiramente crie um novo projeto no NetBeans com o nome de sua preferência, aqui daremos o nome de HelloHibernate. Feito isso iremos importar as APIs necessárias para o funcionamento do Hibernate, são elas: hibernate3.jar; hibernate-jpa-2.0-api final.jar; antlr jar; commons-collections-3.1.jar; dom4j jar; javassist ga.jar; jta-1.1.jar; slf4j-api jar; slf4j-simple jar. A API slf4j-simple jar não vem no pacote de instalação do Hibernate, mas ainda assim é necessário para seu funcionamento. Para baixá-la acesse: Agora iremos criar as seguintes classes: Main (Formulário JFrame); HibernateUtil (Classe que realizará a persistência dos dados); Sessao (Responsável pela conexão com o Banco de Dados); Pessoas (POJO da tabela pessoas que será criada mais a frente). Nesta aplicação iremos fazer um sistema de cadastro/consulta com apenas 3 campos: nome, idade e sexo que são do tipo, respectivamente, string, integer e character A INTERFACE GRÁFICA A interface gráfica deve ser feita parecida com a figura abaixo:

10 9 Interface Gráfica da aplicação Nesta interface encontramos os seguintes componentes Swing: JTextField: txtnome; JSpinner: spnidade; JRadioButton: rdom e rdof (Com o ButtonGroup grpsexo); JButton: btninserir, btnatualizar, btndeletar; JTable: tblregistros O BANCO DE DADOS O nome do Banco de Dados será hello_hibernate e o nome da tabela pessoas. A estrutura da tabela deve ser feita da seguinte forma: Campo Tipo Tamanho Atributos id int Auto Increment, Primary Key nome varchar 50 Idade Int 3 sexo char MAPEANDO O BANCO DE DADOS Chegou a hora de criarmos o POJO, a classe responsável por mapear a tabela pessoas. Ela deve ficar da seguinte forma: public class Pessoas { // ATRIBUTOS private int id; private String nome;

11 10 private int idade; private char sexo; // CONSTRUTOR public Pessoas() { // GETTERS public int getid() { return id; public String getnome() { return nome; public int getidade() { return idade; public char getsexo() { return sexo; // SETTERS public void setid(int id) { this.id = id; public void setnome(string nome) { this.nome = nome; public void setidade(int idade) { this.idade = idade; public void setsexo(char sexo) { this.sexo = sexo; Apenas declaramos os quatro atributos com seus respectivos tipos e com o modificador de acesso private. Em seguida criamos os métodos getters e setters para cada atributo CONFIGURANDO O HIBERNATE Agora iremos criar o pessoas.hbm.xml, o arquivo contendo o mapeamento da tabela pessoas com os tipos de dados do Hibernate e que também informa o POJO responsável pelo mapeamento, neste caso a classe Pessoas. O arquivo deve ficar desta forma: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" " <hibernate-mapping> <class name="pessoas" table="pessoas"> <id name="id"> <generator class="native"/>

12 11 </id> <property name="nome" type="string" length="50"/> <property name="idade" type="integer" length ="3"/> <property name="sexo" type="character" length ="1"/> </class> </hibernate-mapping> Feito isso, iremos criar o hibernate.cfg.xml, arquivo responsável pela conexão com o Banco de Dados e pelo comportamento geral do Hibernate. Iremos informar o Dialeto, Driver e URL do Banco de Dados, usuário, senha e habilitaremos as opções de mostrar o SQL no console da IDE com formatação (Apenas para facilitar o entendimento do código) e a geração de estatísticas. Repare que no final deste arquivo indicamos o local do pessoas.hbm.xml na propriedade resource da Tag mapping. O arquivo deve ficar da seguinte forma: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" " 3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.mysqldialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hello_hibernate</pr operty> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password"/> <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> <property name="hibernate.generate_statistics">true</property> <!-- ARQUIVO DE MAPEAMENTO --> <mapping resource="pessoas.hbm.xml"/> </session-factory> </hibernate-configuration> 2.5. A CLASSE DA SESSÃO A classe Sessao será responsável por ler o arquivo hibernate.cfg.xml e estabelecer a conexão com o Banco de Dados. Nela usaremos apenas três classes: Configuration, SessionFactory e Session. A classe Configuration é responsável por ler o arquivo hibernate.cfg.xml e iniciar a sessão propriamente dita.

13 12 A classe SessionFactory possui um custo alto de criação, é criado uma única vez, no início da execução da aplicação, a partir da instância de uma Configuration. Uma Session é um objeto de baixo custo de criação e deve ser usado uma vez, para uma única requisição e então deve ser descartada (sessao.close()). Uma transação precisa ser o mais curta possível, para reduzir a disputa pelo bloqueio na Base de Dados. Transações longas impedirão que sua aplicação seja altamente concorrente. A classe Sessao deve ficar da seguinte maneira: import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.cfg.configuration; public class Sessao { private static SessionFactory fabricasessao; // Estrutura static para garantir que a SessionFactory seja iniciada apenas uma vez static { try { fabricasessao = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory(); catch (Exception e){ e.printstacktrace(); public static Session getsessao(){ return fabricasessao.opensession(); 2.6. A CLASSE DE PERSISTÊNCIA Feita a classe Sessao iremos implementá-la na classe HibernateUtil junto com os métodos select, insertupdate e delete. Nesta classe precisaremos das classes Session, Transaction, Query e List. A Session nos permite acessar a SessionFactory. A Transaction é quem iniciará a Session e execuratá a Query. Ao realizar o SELECT será retornado uma List. Veja como deve ficar a classe: import java.util.arraylist; import java.util.list; import javax.swing.joptionpane; import org.hibernate.hibernateexception; import org.hibernate.query; import org.hibernate.session; import org.hibernate.transaction; public class HibernateUtil {

14 13 private Session sessao; private Transaction transacao; private Query query; public List select(){ List<Pessoas> lista = new ArrayList(); try { this.sessao = Sessao.getSessao(); transacao = sessao.begintransaction(); query = sessao.createquery("from Pessoas"); lista = query.list(); sessao.close(); catch (HibernateException e) { JOptionPane.showMessageDialog(null, "Erro ao realizar Select.\n"+e.getMessage(), null, JOptionPane.ERROR_MESSAGE); e.printstacktrace(); return lista; public void insertupdate(pessoas pessoa){ try{ this.sessao = Sessao.getSessao(); transacao = sessao.begintransaction(); sessao.saveorupdate(pessoa); transacao.commit(); sessao.close(); JOptionPane.showMessageDialog(null, "Registro salvo com sucesso!", null, JOptionPane.INFORMATION_MESSAGE); catch (HibernateException e) { JOptionPane.showMessageDialog(null, "Erro ao persistir os dados.\n"+e.getmessage(), null, JOptionPane.ERROR_MESSAGE); e.printstacktrace(); public void delete(pessoas pessoa){ try{ this.sessao = Sessao.getSessao(); transacao = sessao.begintransaction(); sessao.delete(pessoa); transacao.commit(); sessao.close(); JOptionPane.showMessageDialog(null, "Registro deletado com sucesso!", null, JOptionPane.INFORMATION_MESSAGE); catch (HibernateException e) { JOptionPane.showMessageDialog(null, "Erro ao deletar registro.\n"+e.getmessage(), null, JOptionPane.ERROR_MESSAGE); e.printstacktrace(); Como você pode ver, criamos três métodos: select, insertupdate e delete. Em select utilizamos o HQL para realizar uma consulta que retornará uma List. Em insertupdate utilizamos o método saveorupdate que realiza tanto o INSERT quanto o UPDATE (apenas se o atributo id já existir). Em delete utilizamos o método delete para apagar determinado registro. Note que tanto em insertupdate e delete passamos por parâmetro o POJO Pessoas e no método select retornamos uma List<Pessoas>. Observe também que utilizamos o sessao.begintransaction() para iniciar a sessão, em seguida

15 14 executamos a query com o transacao.commit() e fechamos a sessão, sessao.close(). Isso é muito importante pois, como vimos anteriormente, uma transação tem que ser o mais curta possível IMPLEMENTANDO AS CLASSES Agora vamos implementar o HibernateUtil e outros métodos na classe principal Main, tornando a aplicação funcional. Vamos começar com a declaração dos atributos e do método construtor Main. private HibernateUtil hibernate; private Pessoas pessoas; private DefaultTableModel tblmodel; private int id; public Main() { hibernate = new HibernateUtil(); pessoas = new Pessoas(); initcomponents(); setlocationrelativeto(null); setlisteners(); atualizartabela(); O que acabamos de fazer? Instanciamos o HibernateUtil e o POJO Pessoas; Iniciamos os componentes Swing; Centralizamos a tela; Adicionamos os listeners necessários (A seguir); Atualizamos a tabela (A seguir). Agora iremos criar os métodos limparcampos e validarcampos: private void limparcampos(){ id = 0; txtnome.settext(""); spnidade.setvalue(0); grpsexo.clearselection(); private boolean validarcampos(){ if(txtnome.gettext().isempty()){ JOptionPane.showMessageDialog(null, "Informe o nome", null, JOptionPane.WARNING_MESSAGE); return false; else if((integer)spnidade.getvalue() < 1){ JOptionPane.showMessageDialog(null, "Informe uma idade válida", null, JOptionPane.WARNING_MESSAGE); return false; else if(!rdof.isselected() &&!rdom.isselected()){ JOptionPane.showMessageDialog(null, "Informe o sexo", null, JOptionPane.WARNING_MESSAGE); return false; return true;

16 15 Feito isso, o próximo passo é criar os métodos setpessoas (Que irá pegar os valores do formulário e setar no POJO) e atualizartabela (Que chamará o método select do HibernateUtil e preencherá a tabela sempre que um evento for disparado). private void setpessoas() { pessoas.setid(id); pessoas.setnome(txtnome.gettext()); pessoas.setidade((integer)spnidade.getvalue()); if(rdom.isselected()) pessoas.setsexo('m'); else if(rdof.isselected()) pessoas.setsexo('f'); private void atualizartabela(){ try { limparcampos(); tblmodel.getdatavector().clear(); List<Pessoas> select = hibernate.select(); if(!select.isempty()){ for(pessoas p : select) tblmodel.addrow(new Object[]{p.getId(), p.getnome(), p.getidade(), p.getsexo()); catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro ao atualizar tabela\n"+e.getmessage(), null, JOptionPane.ERROR_MESSAGE); Por último iremos adicionar os listeners nos botões e na tabela. Nos botões btninserir, bntatualizar e BtnDeletar iremos adicionar um ActionListener que, primeiramente, realizará uma validação e caso a mesma seja positiva executará o setpessoas, depois o método do HibernateUtil (insertupdade ou delete) e por último atualizará a tabela. Na tabela adicionaremos um MouseListener e sobrescreveremos o método mouseclicked. Ao clicarmos em uma linha, os campos nome, idade e sexo serão preenchidos e o atributo id terá seu valor atualizado. private void setlisteners() { btninserir.addactionlistener(new ActionListener() public void actionperformed(actionevent e) { if(validarcampos()){ id = 0; setpessoas(); hibernate.insertupdate(pessoas); atualizartabela(); ); btnatualizar.addactionlistener(new ActionListener() public void actionperformed(actionevent e) {

17 16 if(validarcampos()){ setpessoas(); hibernate.insertupdate(pessoas); atualizartabela(); ); btndeletar.addactionlistener(new ActionListener() public void actionperformed(actionevent e) { if(id > 0){ setpessoas(); hibernate.delete(pessoas); atualizartabela(); ); tblregistros.addmouselistener(new MouseAdapter() public void mouseclicked(mouseevent e) { int linha = tblregistros.getselectedrow(); id = (Integer)tblRegistros.getModel().getValueAt(linha, 0); txtnome.settext(tblregistros.getmodel().getvalueat(linha,1)+""); spnidade.setvalue(tblregistros.getmodel().getvalueat(linha, 2)); if((character)tblregistros.getmodel().getvalueat(linha, 3)=='M') rdom.setselected(true); else if((character)tblregistros.getmodel().getvalueat(linha, 3)=='F') rdof.setselected(true); ); Com isso feito nossa aplicação já está pronta para ser testada. Vamos lá? 2.8. RODANDO A APLICAÇÃO Agora vamos dar um Build (F11) no projeto e observar no console do NetBeans se houve alguma exceção. Se você seguiu todos os passos a risca então o processo de compilação será executado com sucesso. Vamos rodar a aplicação (F6) e novamente observar o console. Agora você está diante do Log de inicialização do Hibernate que deve ser parecido com a figura abaixo:

18 17 Log de inicialização do Hibernate no NetBeans É muito importante prestarmos atenção neste Log, pois nele encontramos informações úteis a respeito de sua configuração e a possíveis HibernateException que podem vir a acontecer. Agora observe o final do Log, mais precisamente na consulta SQL que foi feita: um SELECT gerado automaticamente. Lembram-se que no método construtor da classe principal Main chamamos o método atualizartabela? Se você estiver vendo esta consulta SQL em seu console e não houve nenhum HibernateException significa que o Hibernate está configurado perfeitamente e que o SELECT foi executado sem erros. Vamos voltar para a aplicação. Como ainda não temos nenhum registro no Banco de Dados, mesmo com o SELECT sendo feito, temos uma tabela vazia na aplicação. Para resolver isso vamos inserir alguns registros:

19 18 INSERT Enquanto você inseria os registros, você observou o console do NetBeans com as consultas SQL (INSERT e SELECT) sendo geradas automaticamente? Até agora não precisamos nos preocupar com nenhum código SQL, não é mesmo? E vamos continuar assim graças ao Hibernate. Agora vamos testar o UPDATE e DELETE: U UPDATE DELETE Acabamos de persistir os dados com o Hibernate provando a facilidade de uso e eficiência deste incrível FrameWork. Se compararmos com o modo tradicional (JDBC, ResultSet, Next), o Hibernate nos livra da mão de obra e stress de construir diversas consultas SQL que muitas vezes precisam ser refeitas e podem acabar complicando o entendimento do código e comprometendo sua integridade.

20 19 Com pouco tempo de estudo e mínimos conhecimentos em Banco de Dados, podemos desenvolver aplicações magníficas que se aproveitam do Paradigma da Orientação a Objetos para persistir os dados em praticamente qualquer Banco de Dados utilizado atualmente. Isso mesmo, aprendendo Hibernate aprenderemos a trabalhar também com o Oracle, MySQL, PosgreSQL, SQL Server, SQLite, Firebird e muitos outros SGBDs famosos pela sua segurança e robustez.

21 20 3. REFERÊNCIAS LINWOOD, Jeff; MINTER, Dave. Beginning Hibernate. 2ª Edição. New York: Apress, RED HAT. HIBERNATE - Persistência Relacional para Java Idiomático. Disponível em: < CAFÉ, Adriel Almeida. POJO: Encapsulando as Classes. Disponível em: <

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

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

Leia mais

HIBERNATE EM APLICAÇÃO JAVA WEB

HIBERNATE 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 mais

JPA: Persistência padronizada em Java

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

Leia mais

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

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5.

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5. Desenvolvendo aplicações em camadas com PHP 5. Talvez a primeira vista você ache estranha a palavra Camada em programação, mas o que vem a ser Camada? Segundo o dicionário: Camada 1 - Qualquer matéria

Leia mais

Figura 1.1 Código de inserção não baseado em Hibernate. Figura 1.2 Código de inserção baseado em Hibernate

Figura 1.1 Código de inserção não baseado em Hibernate. Figura 1.2 Código de inserção baseado em Hibernate Hibernate É um framework para mapeamento objeto/relacional para aplicações em Java. Tem como objetivo mor o mapeamento de classes Java em tabelas do banco de dados e viceversa, possibilitando a realização

Leia mais

Acessando um Banco de Dados

Acessando um Banco de Dados Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para

Leia mais

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

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

Leia mais

NOVIDADES DO JAVA PARA PROGRAMADORES C

NOVIDADES DO JAVA PARA PROGRAMADORES C PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o Conceito de Classes e Objetos Capacitar para a criação de objetos simples

Leia mais

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

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

Leia mais

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

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

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

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

JSP - ORIENTADO A OBJETOS

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

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

Leonardo Gresta Paulino Murta leomurta@gmail.com

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

Leia mais

Mecanismo de Persistência

Mecanismo de Persistência Hibernate Mecanismo de Persistência Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br Dezembro/2005 Hibernate Mecanismo de persistência (operações em banco como inserir, atualizar, consultar

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

HIBERNATE Criando um projeto em Java + Hibernate do zero

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

Leia mais

CONVENÇÃO DE CÓDIGO JAVA

CONVENÇÃO DE CÓDIGO JAVA CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2

Leia mais

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

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

Leia mais

Parte II Persistência entre Modelos de Dados

Parte II Persistência entre Modelos de Dados Parte II Persistência entre Modelos de Dados Clodis Boscarioli Agenda: Hibernate Introdução; Configurações; Mapeamento com XML; Exemplos; Associações: 1-n; n-1; n-n; 1-1. Hibernate - Introdução O Hibernate

Leia mais

Resolvendo objeto-relacional impedance mismatch com hibernate

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

Leia mais

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

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

Leia mais

JDBC Java Database Connectivity

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

Leia mais

2 Orientação a objetos na prática

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

Leia mais

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

RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO Revista Eletrônica da Faculdade Metodista Granbery http://re.granbery.edu.br - ISSN 1981 0377 Curso de Sistemas de Informação - N. 10, JAN/JUN 2011 RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE

Leia mais

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

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

Leia mais

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

Desvendando o Hibernate

Desvendando o Hibernate Passos Iniciais Desvendando o Hibernate 1. Repetir os passos do tutorial "CRUD com Hibernate" 2. Adicionar o driver JDBC do banco Esquematizando Fontes dos Arquivos WEB-INF\classes\hibernate.cfg.xml

Leia mais

Unidade 9: Middleware JDBC para Criação de Beans

Unidade 9: Middleware JDBC para Criação de Beans Programação Servidor para Sistemas Web 1 Unidade 9: Middleware JDBC para Criação de Beans Implementando MVC Nível 1 Prof. Daniel Caetano Objetivo: Preparar o aluno para construir classes de entidade com

Leia mais

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

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

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

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

Integrando Java com Banco de Dados

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

Leia mais

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

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

Leia mais

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

Programação Orientada a Objetos JDBC Java Database Connectivity

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

Leia mais

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

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

Leia mais

Usando 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 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 mais

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

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

Leia mais

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Descrição Implemente nesta atividade de laboratório um programa em Java utilizando threads

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

Data Transformation Services (DTS) por Anderson Ferreira Souza

Data Transformation Services (DTS) por Anderson Ferreira Souza Data Transformation Services (DTS) por Anderson Ferreira Souza O Sql Server possui um recurso extremamente poderoso que é muito pouco utilizado pelos administradores e programadores. Com certeza, sendo

Leia mais

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. 1 - Criando uma classe em Java Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. Antes de criarmos a(s) classe(s) é necessário criar o projeto

Leia mais

Classes de Entidades Persistentes JDB

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

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Bruno Maciel Competências a serem trabalhadas nessa aula Criação da Base de Dados (MySQL) Criação de Tabelas Tipo de Dados Chave Primária

Leia mais

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

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

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

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

Leia mais

Criando uma agenda simples com NetBeans 6.5

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

Leia mais

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

Leia mais

Aula 1 Acesso a Banco de Dados

Aula 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 mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

Java com Banco de Dados Posgree

Java com Banco de Dados Posgree Java com Banco de Dados Posgree Prof. Luiz Claudio Ferreira de Souza www.luizclaudiofs.blogspot.com 1 Driver para ligação Java e Postgre http://jdbc.postgresql.org/download.html www.luizclaudiofs.blogspot.com

Leia mais

Noções sobre Objetos e Classes

Noções sobre Objetos e Classes Noções sobre Objetos e Classes Prof. Marcelo Cohen 1. Elementos de programação Revisão de programação variáveis, tipos de dados expressões e operadores cadeias de caracteres escopo de variáveis Revisão

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

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

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

Leia mais

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

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

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

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

Leia mais

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN 2178-5589.

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN 2178-5589. Tutorial de Instalação e Uso do Eclipse Alexandre V. S. Lage, Caio de O. Leal, Eduardo A. F. da Silva, Felipe C. C. Trindade, Gutierre da C. Oliveira e Miguel G. P. de Carvalho. INTRODUÇÃO O Eclipse (2012)

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistê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 mais

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br WebWork 2 João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 0.5 Última Atualização: Agosto/2005 1 Agenda Introdução WebWork 2 & XWork Actions Views Interceptadores Validação Inversão de Controle (IoC)

Leia mais

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. JDBC CRIANDO O BANCO DE DADOS: Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. CRIANDO O PROJETO JAVA PARA DESKTOP: Crie um projeto Java chamado Prograd Crie um pacote chamado

Leia mais

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br 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 mais

1. Domínio dos Atributos

1. 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 mais

AULA 07 HIBERNATE. Ao término desse capítulo você terá aprendido: Fundamentos do MVC Estrutura dos pacotes no NetBeans

AULA 07 HIBERNATE. Ao término desse capítulo você terá aprendido: Fundamentos do MVC Estrutura dos pacotes no NetBeans AULA 07 HIBERNATE Ao término desse capítulo você terá aprendido: Fundamentos do MVC Estrutura dos pacotes no NetBeans O JDBC é uma das maneiras mais diretas para desenvolver um aplicativo Java que interaja

Leia mais

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

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

Leia mais

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

C# - Conexão com MySQL

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

Leia mais

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

Esta apresentação ensinará os conceitos de Orientação a Objetos com C++, do mais básico para o mais avançado. É suposto que o aluno já tenha

Esta apresentação ensinará os conceitos de Orientação a Objetos com C++, do mais básico para o mais avançado. É suposto que o aluno já tenha Esta apresentação ensinará os conceitos de Orientação a Objetos com C++, do mais básico para o mais avançado. É suposto que o aluno já tenha conhecimento avançado de C. Exemplo em C: Faça um programa que

Leia mais

Android e Bancos de Dados

Android 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 mais

MANIPULAÇÃO DE BANCO DE DADOS UTILIZANDO INTERFACE GRÁFICA

MANIPULAÇÃO DE BANCO DE DADOS UTILIZANDO INTERFACE GRÁFICA JOSIEL S. MOURA MANIPULAÇÃO DE BANCO DE DADOS UTILIZANDO INTERFACE GRÁFICA ORIENTADO A PROJETO: CONTROLE DE ESTOQUE 2012 JOSIEL S. MOURA MANIPULAÇÃO DE BANCO DE DADOS UTILIZANDO INTERFACE GRÁFICA ORIENTADO

Leia mais

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO Antes de criarmos um novo Banco de Dados quero fazer um pequeno parênteses sobre segurança. Você deve ter notado que sempre

Leia mais

Projeto de Software Orientado a Objeto

Projeto de Software Orientado a Objeto Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software

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

Exercícios de Revisão Java Básico

Exercí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 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

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO AO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar a grande semelhança entre Java e C Apresentar a organização diferenciada

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Unidade 20 ArrayList: Operações de Busca Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 TIPOS DE BUSCAS... 3 BUSCA ESPECÍFICA... 3 BUSCA ABRANGENTE... 3 PROCEDIMENTO DE BUSCA...

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

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

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

INTRODUÇÃO À TECNOLOGIA SERVLETS

INTRODUÇÃO À TECNOLOGIA SERVLETS PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO À TECNOLOGIA SERVLETS Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o conceito aplicações orientada a serviços via web Apresentar o papel dos contentores

Leia mais

Introdução ao Hibernate 3

Introdução ao Hibernate 3 Introdução ao Hibernate 3 Maurício Linhares Mapeie o seu modelo de objetos diretamente para o banco de dados, de uma forma simples e se livrando de vez da SQL O que é o Hibernate? O Hibernate é uma ferramenta

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

8VDQGR5HSRUW0DQDJHUFRP&ODULRQH3RVWJUH64/ -XOLR&HVDU3HGURVR 8VDQGRSDUkPHWURV

8VDQGR5HSRUW0DQDJHUFRP&ODULRQH3RVWJUH64/ -XOLR&HVDU3HGURVR 8VDQGRSDUkPHWURV 8VDQGRSDUkPHWURV O envio de parâmetros para um relatório é uma das funções mais úteis do Report Manager, com eles você pode: Permitir que o usuário final altere palavras ou sentenças de um relatório; Atribuir

Leia mais

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v2010.10

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v2010.10 Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v2010.10 Linha de Equipamentos MEC Desenvolvidos por: Maxwell Bohr Instrumentação Eletrônica Ltda. Rua Porto Alegre, 212 Londrina

Leia mais

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

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

Leia mais

Programação Orientada a Objeto

Programação Orientada a Objeto Programação Orientada a Objeto Classes, Atributos, Métodos e Objetos Programação de Computadores II Professor: Edwar Saliba Júnior 1) Java é uma linguagem orientada a objetos. Para que possamos fazer uso

Leia mais

Sintaxe Básica de Java Parte 1

Sintaxe Básica de Java Parte 1 Sintaxe Básica de Java Parte 1 Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marcioubeno.com Fonte: Material da Profª Karina Oliveira Estrutura de Programa Um programa

Leia mais

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

SISTEMA 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 mais

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO O Driver IGS possui um módulo de configuração que possibilita a comunicação com protocolos proprietários. Trata-se do Driver

Leia mais

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. Data: 14/8 Página 1 de 9 Primeiros passos Introdução Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. No tutorial anterior, mostramos como

Leia mais

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) 8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras

Leia mais