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



Documentos relacionados
Exercícios de fixação: Listas

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Acesso a banco de dados

JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC

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

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

JDBC. Prof. Márcio Bueno

Programação Orientada a Objetos JDBC Java Database Connectivity

Integrando Java com Banco de Dados

Banco de Dados. Banco de Dados. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Persistência de Classes em Tabelas de Banco de Dados

Curso: Desenvolvimento Java

Drive MySql de conexão para Eclipse

Aula 1 Acesso a Banco de Dados

Listando, gravando, alterando e excluindo registro do banco de dados com JSP

Programação Orientada a Objetos II

Leonardo Gresta Paulino Murta

Padrões de Projeto e Persistência com DAO

Figura 1. A Classe Java

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

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

J550 Integração com Bancos de Dados

JDBC. Java DataBase Connectivity

Acesso a Bancos de Dados em Java (JDBC)

Especialização em web com interfaces ricas

Java JDBC - I. Ex. 2: para o SQLServer da Microsoft, o driver JDBC pode ser obtido em

Funcionamento da Aplicação. Simulações do funcionamento. Simulação SAC

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

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados

DATA ACCESS OBJECT (DAO)

Universidade Católica do Salvador Bacharelado em Informática. Antonio Yuri Jailson do Amor Divino Felipe Souza. Tutorial: Trabalhando com JDBC

JDBC DRIVER. Objetivo: Possibilitar aplicações não Zim de se conectar a um banco de dados Zim utilizando as normas JDBC.

Programação com Acesso a Banco de Dados

Java e Conexão com Banco de Dados

Java na WEB Banco de Dados

JAVA JDBC Java Database Connectivity

JDBC Acessando Banco de Dados

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

Driver Mysql para Banco de Dados. Conexão com um Banco de Dados

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.

Java com Banco de Dados Posgree

JPA: Persistência padronizada em Java

JDBC Java Database Connectivity

Banco de Dados. Sérgio Luiz Ruivace Cerqueira

JAVA JDBC COMO FUNCIONA. Programação Orientada a Objetos Flávio de Oliveira Silva 315. Programação Orientada a Objetos Flávio de Oliveira Silva 316

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?

Criar uma aplicação JPA2 com EclipseLink e H2

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

DSS 09/10. DSS 09/10 Que métodos é que fazem parte de cada camada? Aplicações Multi-camada JDBC. Aula 3 DSS 09/10

Java JDBC Aplicação Java com Acesso a um SGBD. Ricardo Terra (rterrabh [at] gmail.com) Java JDBC Maio, 2010

Desenvolvimento Web TCC Turma A-1

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

Programação Orientada a Objetos (DPADF 0063)

Linguagens de Programação

Desenvolvendo Aplicações Web com NetBeans

Caelum. Sobre a empresa. Sobre a apostila. "Mata o tempo e matarás a tua carreira" Bryan Forbes

JAVA 14 ODBC / JDBC Aceder a Bases de Dados através da Internet. Vitor Vaz da Silva

JDBC Tópicos avançados de acesso a base de dados relacional

Fernando Freitas Costa. Pós-Graduando em Gestão e Docência Universitária. blog.fimes.edu.br/fernando nando@fimes.edu.br

Agenda. Instalação e configuração. Processamento de comandos SQL com JDBC. Driver JDBC Criação da classe de conexão

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

C# - Conexão com MySQL

Persistência Java para Web com MySQL

Documentação Usando o Javadoc

(UFF) JDBC (I) TEPIS II

Java Beans e Servlets

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

Caelum. Sobre a empresa. Sobre a apostila. Mata o tempo e matas a tua carreira Bryan Forbes

Criando um aplicação simples com JAVA e MySQL usando NetBeans Parte I

Atividade JSP com Banco de Dados

Orientação a Objetos

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF Novembro/2005

Introdução a relatórios Crosstab com ireport/jasperreports

Java Básico JDBC. Razer Anthom Nizer Rojas Montaño Banco de Dados: JDBC

Exercícios de Revisão Java Básico

UNIVERSIDADE FEDERAL DO PARANÁ

Banco de Dados. Prof. Leonardo Barreto Campos 1

2 Orientação a objetos na prática

Passos para a configuração do ambiente de desenvolvimento:

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

Criar um novo projeto

JPA Java Persistence API. Prof. Ramon Chiara

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

Orientação a Objetos com Java

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

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

Autenticação e Autorização

Android e Bancos de Dados

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

Desenvolvimento Web com Struts

GUIA DE INÍCIO RÁPIDO NHS NOBREAK MANAGER 4.0 TOPOLOGIA MÍNIMA DE REDE PARA A INSTALAÇÃO E USO DO SOFTWARE COM GPRS

Antes de iniciar execute o script do banco de dados no SQLYOG ou outra ferramenta de sua preferência

Criando uma agenda simples com NetBeans 6.5

Transcrição:

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 br.edu.ufabc.prograd.modelo Dentro do pacote que você acabou de criar, crie uma classe chamada Aluno que deve ter o seguinte código: package br.edu.ufabc.prograd.modelo; public class Aluno { private Long id; private String nome; private String email; private String endereco; 1 Observe que criamos o atributo id do tipo Long não do tipo long, porque Long inicia o atributo com valor default null. Fazemos assim para não dar erro na inserção do banco de dados. 2 Vamos transformar a classe Aluno em um javabean. Javabeans são classes que possuem o construtor sem argumentos e métodos de acesso do tipo get e set. Para fazer isso de forma automática no Eclipse, use o atalho ctrl + 3 e digite generate. Dentre as opções trazidas, selecione Generate Getters and Setters. Na janela que abrir, selecione todos os atributos. 3 Crie um pacote chamado br.edu.ufabc.prograd.testes 4 Dentro do pacote recém-criado, crie uma classe chamada CriaAluno que deve ter o seguinte código: package br.edu.ufabc.prograd.testes; import br.edu.ufabc.prograd.modelo.aluno; public class CriaAluno { public static void main(string[] args) throws SQLException { Aluno aluno = new Aluno(); aluno.setnome("jack"); aluno.setemail("jack@gmail.com"); aluno.setendereco("av. dos Estados, 5001"); aluno.setid((long) 3); // se essa conversão de tipo (casting) der erro no Java 1.8, modifique o comando para: aluno.setid(new Long(3));

System.out.println(aluno.getNome()); System.out.println(aluno.getEmail()); System.out.println(aluno.getEndereco()); System.out.println(aluno.getId()); CONECTANDO O BANCO DE DADOS AO PROJETO JAVA: Crie um pacote que será responsável pelas conexões com o BD: br.edu.ufabc.prograd.jdbc JDBC (Java DataBase Connectivity): conjunto de interfaces bem definidas dentro do pacote java.sql; driver JDBC: classes concretas que fazem ponte entre API JDBC e o BD; no pacote br.edu.ufabc.prograd.jdbc, crie uma classe chamada ConnectionFactory com o código: package br.edu.ufabc.prograd.jdbc; public class ConnectionFactory { public Connection getconnection(){ System.out.println("Conectando ao banco de dados"); // a linha abaixo não é mais necessária a partir do JDBC 4 (Java 6) //Class.forName("org.h2.Driver"); return DriverManager.getConnection("jdbc:h2:tcp://localhost/~poo","admin","admin"); catch (Exception e) { adicione os imports necessários (java.sql.connection e java.sql.drivermanager); adicione o driver do H2 (um arquivo JAR) contendo a implementação JDBC do H2 ao classpath do projeto. O driver do H2 chama-se h2-1.4.182.jar e encontra-se dentro da pasta h2, pasta bin. Para incluir o driver do banco de dados: clique direito sobre o projeto, opção Build Path -> Configure Build Path -> Libraries -> Add External JARs teste a conexão na classe CriaAluno com o código: // testando conexão Connection connection = new ConnectionFactory().getConnection(); System.out.println("Conexão estabelecida"); connection.close(); sempre tratar exceções e sempre lembrar de fechar conexões do BD; importância de criar uma fábrica de conexões: um único lugar para mudar, caso necessário; possibilidade de criar pooling de conexões; seguimos padrões de projeto a respeito de encapsular construção de objetos complicados (livro Padrões de Projeto da Gang of four);

ACESSANDO E MODIFICANDO OS DADOS DO BANCO DE DADOS (INSERIR): Crie um pacote que será responsável por objetos de acessos aos dados (DAO - Data Access Object): br.edu.ufabc.prograd.dao nesse pacote, crie um Javabean AlunoDAO; lembre-se de importar a classe java.sql (cuidado para não confundir com a classe com.sql); coloque a conexão com o banco de dados no construtor do AlunoDAO: public class AlunoDAO { private Connection connection; public AlunoDAO() { this.connection = new ConnectionFactory().getConnection(); Na classe AlunoDAO, implemente a inserção de registros: (?,?,?)"; public void insere(aluno aluno) { String sql = "insert into alunos (nome,email,endereco) values // prepared statement para inserção PreparedStatement stmt = connection.preparestatement(sql); // seta valores stmt.setstring(1, aluno.getnome()); stmt.setstring(2, aluno.getemail()); stmt.setstring(3, aluno.getendereco()); //executa // fecha statement catch (SQLException e) { modifique a classe CriaAluno, acrescentando um código para testar o método de inserção: // gravando registro dao.insere(aluno); System.out.println("Gravado!"); Quais são os problemas com a SQL abaixo? String sql = "insert into alunos (nome,email,endereco) values ('"+nome+"','"+email+"'+'"+endereco+"')"; 1. difícil de ler; mais provável de ocorrer erros;

preconceito contra Joana D'Arc; SQL Injection: técnica usada para atacar aplicações orientadas a dados. Ilustração: http://xkcd.com/327/ é necessário sanitizar as entradas do BD: tratar entradas (caracteres especiais, etc); mais genérico e mais seguro: String sql = "insert into alunos (nome,email,endereco) values (?,?,?)"; 1. PreparedStatement: interface para executar as cláusulas, faz sanitização das entradas do BD; ACESSANDO E MODIFICANDO OS DADOS DO BANCO DE DADOS (REMOVER, ALTERAR E LISTAR): Implemente a remoção de registros: public void remove(aluno aluno) { PreparedStatement stmt = connection.preparestatement("delete from alunos where id=?"); stmt.setlong(1, aluno.getid()); catch (SQLException e) { modifique a classe CriaAluno, acrescentando um código para testar o método de remoção (não esqueça de setar o id do registro a ser modificado): // removendo registro dao.remove(aluno); System.out.println("Removido!"); implemente a alteração de registros: id=?"; public void altera(aluno aluno) { String sql = "update alunos set nome=?, email=?, endereco=? where PreparedStatement stmt = connection.preparestatement(sql); stmt.setstring(1, aluno.getnome()); stmt.setstring(2, aluno.getemail()); stmt.setstring(3, aluno.getendereco()); stmt.setlong(4, aluno.getid()); catch (SQLException e) {

modifique a classe CriaAluno, acrescentando um código para testar o método de alteração (não esqueça de setar o id do registro a ser modificado): // alterando registro dao.altera(aluno); System.out.println("Alterado!"); implemente a listagem dos registros: public List<Aluno> getlista() { // importar java.util List<Aluno> alunos = new ArrayList<Aluno>(); PreparedStatement stmt; stmt = this.connection.preparestatement("select * from alunos order by nome"); ResultSet rs = stmt.executequery(); // importar java.sql while (rs.next()) { Aluno aluno = new Aluno(); aluno.setid(rs.getlong("id")); aluno.setnome(rs.getstring("nome")); aluno.setemail(rs.getstring("email")); aluno.setendereco(rs.getstring("endereco")); alunos.add(aluno); rs.close(); catch (SQLException e) { return alunos; modifique a classe CriaAluno, acrescentando um código para testar o método de listagem: // listando registros List<Aluno> alunos = dao.getlista(); for (Aluno aluno1 : alunos){ System.out.println("Nome: "+aluno1.getnome()+" Email: "+aluno1.getemail()+" Endereço: "+ aluno1.getendereco()); Use os métodos criados para inserir, remover, alterar e listar para fazer testes com o banco de dados através da aplicação Java. Usando o comando SQL select, cheque no BD as alterações realizadas.