DATA ACCESS OBJECT (DAO)

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

Download "DATA ACCESS OBJECT (DAO)"

Transcrição

1 Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação DATA ACCESS OBJECT (DAO) SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre 2015

2 2/60 DATA ACCESS OBJECT (DAO) CONTEXT0 A maioria dos sistemas precisa persistir dados em algum ponto de seu funcionamento Dados de um sistema podem ser armazenados de diferentes formas O acesso ao banco de dados depende fortemente do tipo de armazenamento e da tecnologia utilizada A interação entre as regras de negócio e as regras de armazenamento de dados influencia na qualidade do sistema

3 3/60 DATA ACCESS OBJECT (DAO) PROBLEMA MVC Visão Controle Modelo??? Persistência C1 C2 M1 M2 M3 BD File XML Java/.NET/C++??? SQL/I-O/XML

4 4/60 DATA ACCESS OBJECT (DAO) SOLUÇÃO Visão Controle Modelo DAO Persistência C1 M1 DM1 BD M2 DM2 File C2 M3 DM3 XML Java/.NET/C++ Java/.NET/SQL/XML SQL/I-O/XML

5 5/60 DATA ACCESS OBJECT (DAO) SOLUÇÃO Criar um objeto para gerenciar a obtenção e o armazenamento de dados Abstrair e encapsular todo o acesso às fontes de dados Ocultar do cliente a forma de acesso por meio de uma interface Fornecer os dados do banco usando um objeto de transferência

6 DATA ACCESS OBJECT (DAO) SOLUÇÃO 6/60

7 DATA ACCESS OBJECT (DAO) SOLUÇÃO 7/60

8 8/60 DATA ACCESS OBJECT (DAO) SOLUÇÃO A aplicação cria um objeto do tipo DAO

9 9/60 DATA ACCESS OBJECT (DAO) SOLUÇÃO O DAO acessa o banco de dados e retorna um objeto de transferência

10 10/60 DATA ACCESS OBJECT (DAO) SOLUÇÃO Objeto de transferência é modificado pela aplicação

11 11/60 DATA ACCESS OBJECT (DAO) SOLUÇÃO A aplicação usa o DAO para atualizar o objeto de transferência no banco de dados

12 DATA ACCESS OBJECT (DAO) EXEMPLO 12/60

13 13/60 DATA ACCESS OBJECT (DAO) EXEMPLO CRUD Create = Criar Read = Ler Update = Atualizar Delete = Remover

14 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO 14/60

15 15/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public class Aluno { private long matricula; private String nome, instituicao; private boolean sexo; public static final boolean MASCULINO = false; public static final boolean FEMININO = true; public Aluno(){ // Setters e Getters para manter o encapsulamento public long getmatricula() {return matricula; public void setmatricula(long matr) {this.matricula = matr; public String getnome() {return nome; public void setnome(string nome) {this.nome = nome; public String getinstituicao() {return instituicao; public void setinstituicao(string inst) {this.instituicao = inst; public boolean getsexo() {return sexo; public void setsexo(boolean sexo) {this.sexo = sexo; Continua...

16 16/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public class Aluno { private long matricula; private String nome, instituicao; private boolean sexo; public static final boolean MASCULINO = false; public static final boolean FEMININO = true; public Aluno(){ // Setters e Getters para manter o encapsulamento public long getmatricula() {return matricula; public void setmatricula(long matr) {this.matricula = matr; public String getnome() {return nome; public void setnome(string nome) {this.nome = nome; public String getinstituicao() {return instituicao; public void setinstituicao(string inst) {this.instituicao = inst; public boolean getsexo() {return sexo; public void setsexo(boolean sexo) {this.sexo = sexo; Continua...

17 17/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public class Aluno { private long matricula; private String nome, instituicao; private boolean sexo; public static final boolean MASCULINO = false; public static final boolean FEMININO = true; public Aluno(){ // Setters e Getters para manter o encapsulamento public long getmatricula() {return matricula; public void setmatricula(long matr) {this.matricula = matr; public String getnome() {return nome; public void setnome(string nome) {this.nome = nome; public String getinstituicao() {return instituicao; public void setinstituicao(string inst) {this.instituicao = inst; public boolean getsexo() {return sexo; public void setsexo(boolean sexo) {this.sexo = sexo; Continua...

18 18/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public class Aluno { private long matricula; private String nome, instituicao; private boolean sexo; public static final boolean MASCULINO = false; public static final boolean FEMININO = true; public Aluno(){ // Setters e Getters para manter o encapsulamento public long getmatricula() {return matricula; public void setmatricula(long matr) {this.matricula = matr; public String getnome() {return nome; public void setnome(string nome) {this.nome = nome; public String getinstituicao() {return instituicao; public void setinstituicao(string inst) {this.instituicao = inst; public boolean getsexo() {return sexo; public void setsexo(boolean sexo) {this.sexo = sexo; Continua...

19 19/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO // Os métodos a seguir misturam as regras de negócio (Java) // com as regras de bancos de dados (SQL), o que diminui a coesão public void createaluno(){ try { Class.forName("com.mysql.jdbc.Driver"); Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/IFSP_DAO", "IFSP_DAO", "123123"); // cria um preparedstatement baseado em uma string SQL String sql = "INSERT INTO aluno (id, nom, inst, gen) values (?,?,?,?)"; PreparedStatement stmt = conexao.preparestatement(sql); // preenche os valores para (?,?,...,?) stmt.setlong(1, matricula); stmt.setstring(2, nome); stmt.setstring(3, instituicao); stmt.setboolean(4, sexo); // executa o comando SQL stmt.execute(); stmt.close(); Continua...

20 20/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO // Os métodos a seguir misturam as regras de negócio (Java) // com as regras de bancos de dados (SQL), o que diminui a coesão public void createaluno(){ try { Class.forName("com.mysql.jdbc.Driver"); Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/IFSP_DAO", "IFSP_DAO", "123123"); // cria um preparedstatement baseado em uma string SQL String sql = "INSERT INTO aluno (id, nom, inst, gen) values (?,?,?,?)"; PreparedStatement stmt = conexao.preparestatement(sql); // preenche os valores para (?,?,...,?) stmt.setlong(1, matricula); stmt.setstring(2, nome); stmt.setstring(3, instituicao); stmt.setboolean(4, sexo); // executa o comando SQL stmt.execute(); stmt.close(); Continua...

21 21/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO // Os métodos a seguir misturam as regras de negócio (Java) // com as regras de bancos de dados (SQL), o que diminui a coesão public void createaluno(){ try { Class.forName("com.mysql.jdbc.Driver"); Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/IFSP_DAO", "IFSP_DAO", "123123"); // cria um preparedstatement baseado em uma string SQL String sql = "INSERT INTO aluno (id, nom, inst, gen) values (?,?,?,?)"; PreparedStatement stmt = conexao.preparestatement(sql); // preenche os valores para (?,?,...,?) stmt.setlong(1, matricula); stmt.setstring(2, nome); stmt.setstring(3, instituicao); stmt.setboolean(4, sexo); // executa o comando SQL stmt.execute(); stmt.close(); Continua...

22 22/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO // Os métodos a seguir misturam as regras de negócio (Java) // com as regras de bancos de dados (SQL), o que diminui a coesão public void createaluno(){ try { Class.forName("com.mysql.jdbc.Driver"); Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/IFSP_DAO", "IFSP_DAO", "123123"); // cria um preparedstatement baseado em uma string SQL String sql = "INSERT INTO aluno (id, nom, inst, gen) values (?,?,?,?)"; PreparedStatement stmt = conexao.preparestatement(sql); // preenche os valores para (?,?,...,?) stmt.setlong(1, matricula); stmt.setstring(2, nome); stmt.setstring(3, instituicao); stmt.setboolean(4, sexo); // executa o comando SQL stmt.execute(); stmt.close(); Continua...

23 23/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO System.out.println("O aluno " + nome + " foi gravado no banco de dados."); conexao.close(); return true; catch (ClassNotFoundException e) { System.err.println("Não foi possível encontrar a classe de conexão!"); e.printstacktrace(); catch (SQLException e) { System.err.println("Erro na comunicação com o banco de dados!"); e.printstacktrace(); Continua...

24 24/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO System.out.println("O aluno " + nome + " foi gravado no banco de dados."); conexao.close(); return true; catch (ClassNotFoundException e) { System.err.println("Não foi possível encontrar a classe de conexão!"); e.printstacktrace(); catch (SQLException e) { System.err.println("Erro na comunicação com o banco de dados!"); e.printstacktrace(); Continua...

25 25/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO System.out.println("O aluno " + nome + " foi gravado no banco de dados."); conexao.close(); return true; catch (ClassNotFoundException e) { System.err.println("Não foi possível encontrar a classe de conexão!"); e.printstacktrace(); catch (SQLException e) { System.err.println("Erro na comunicação com o banco de dados!"); e.printstacktrace(); Continua...

26 26/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public Aluno readaluno(long matr){ try { Class.forName("com.mysql.jdbc.Driver"); Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/IFSP_DAO", IFSP_DAO", "123123"); // Busca o aluno pela matrícula String sql = "SELECT * FROM aluno WHERE id =?" ; PreparedStatement stmt = conexao.preparestatement(sql); stmt.setlong(1, matr); ResultSet resultado = stmt.executequery(); if(resultado.next()){ Aluno a = new Aluno(); // Cria o objeto de transferência a.setnome(resultado.getstring("nom")); a.setmatricula(resultado.getint("id")); a.setinstituicao(resultado.getstring("inst")); a.setsexo(resultado.getboolean("gen")); System.out.println("O aluno " + a.getnome() + ", matrícula n. " + a.getmatricula() + ", estuda no " + a.getinstituicao() + "."); return a; // retorna o objeto de transferência Continua...

27 27/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public Aluno readaluno(long matr){ try { Class.forName("com.mysql.jdbc.Driver"); Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/IFSP_DAO", IFSP_DAO", "123123"); // Busca o aluno pela matrícula String sql = "SELECT * FROM aluno WHERE id =?" ; PreparedStatement stmt = conexao.preparestatement(sql); stmt.setlong(1, matr); ResultSet resultado = stmt.executequery(); if(resultado.next()){ Aluno a = new Aluno(); // Cria o objeto de transferência a.setnome(resultado.getstring("nom")); a.setmatricula(resultado.getint("id")); a.setinstituicao(resultado.getstring("inst")); a.setsexo(resultado.getboolean("gen")); System.out.println("O aluno " + a.getnome() + ", matrícula n. " + a.getmatricula() + ", estuda no " + a.getinstituicao() + "."); return a; // retorna o objeto de transferência Continua...

28 28/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public Aluno readaluno(long matr){ try { Class.forName("com.mysql.jdbc.Driver"); Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/IFSP_DAO", IFSP_DAO", "123123"); // Busca o aluno pela matrícula String sql = "SELECT * FROM aluno WHERE id =?" ; PreparedStatement stmt = conexao.preparestatement(sql); stmt.setlong(1, matr); ResultSet resultado = stmt.executequery(); if(resultado.next()){ Aluno a = new Aluno(); // Cria o objeto de transferência a.setnome(resultado.getstring("nom")); a.setmatricula(resultado.getint("id")); a.setinstituicao(resultado.getstring("inst")); a.setsexo(resultado.getboolean("gen")); System.out.println("O aluno " + a.getnome() + ", matrícula n. " + a.getmatricula() + ", estuda no " + a.getinstituicao() + "."); return a; // retorna o objeto de transferência Continua...

29 29/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO else{ System.out.println("Matrícula não encontrada!"); conexao.close(); return null; catch (ClassNotFoundException e) {... catch (SQLException e) {... Continua...

30 30/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO else{ System.out.println("Matrícula não encontrada!"); conexao.close(); return null; catch (ClassNotFoundException e) {... catch (SQLException e) {... Continua...

31 31/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public boolean updatealuno(){ try { Class.forName("com.mysql.jdbc.Driver"); Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/IFSP_DAO", "IFSP_DAO", "123123"); // cria um preparedstatement baseado em uma string SQL String sql = "UPDATE aluno SET nom =?, inst =?, gen =? WHERE id =?"; PreparedStatement stmt = conexao.preparestatement(sql); // preenche os valores para (?,?,...,?) stmt.setstring(1, nome); stmt.setstring(2, instituicao); stmt.setboolean(3, sexo); stmt.setlong(4, matricula); stmt.executeupdate(); stmt.close(); System.out.println("O aluno " + nome + " foi atualizado no BD."); conexao.close(); // adiciona os métodos catch Continua...

32 32/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public boolean deletealuno(){ try { Class.forName("com.mysql.jdbc.Driver"); Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/IFSP_DAO", "IFSP_DAO", "123123"); // Remove o aluno String sql = "DELETE FROM aluno WHERE id =?" ; PreparedStatement stmt = conexao.preparestatement(sql); stmt = conexao.preparestatement(sql); stmt.setlong(1, matricula); stmt.execute(); stmt.close(); conexao.close(); System.out.println("O aluno " + nome + " foi removido do BD."); // adiciona os métodos catch // fim do método deletealuno // fim da classe Aluno

33 33/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public boolean deletealuno(){ try { Class.forName("com.mysql.jdbc.Driver"); Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/IFSP_DAO", "IFSP_DAO", "123123"); // Remove o aluno String sql = "DELETE FROM aluno WHERE id =?" ; Arrg! Deve ter um PreparedStatement stmt = conexao.preparestatement(sql); stmt = conexao.preparestatement(sql); jeito mais fácil! stmt.setlong(1, matricula); stmt.execute(); stmt.close(); conexao.close(); System.out.println("O aluno " + nome + " foi removido do BD."); // adiciona os métodos catch // fim do método deletealuno // fim da classe Aluno

34 34/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public class ClienteExemplo { public static void main(string[] args) { //Cria um aluno Aluno jorge = new Aluno(); jorge.setmatricula(101010); jorge.setinstituicao("ifsp São Carlos"); jorge.setsexo(aluno.masculino); jorge.setnome("jorge"); //Salva o aluno no banco de dados jorge.createaluno(); //Atualiza as informações do aluno jorge.setnome("jorge Fernandes"); jorge.updatealuno(); //Busca as informações cadastradas no banco de dados jorge.readaluno(jorge.getmatricula()); Continua...

35 35/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO public class ClienteExemplo { public static void main(string[] args) { //Cria um aluno Aluno jorge = new Aluno(); jorge.setmatricula(101010); jorge.setinstituicao("ifsp São Carlos"); jorge.setsexo(aluno.masculino); jorge.setnome("jorge"); //Salva o aluno no banco de dados jorge.createaluno(); Regras de armazenamento ou de negócio? //Atualiza as informações do aluno jorge.setnome("jorge Fernandes"); jorge.updatealuno(); //Busca as informações cadastradas no banco de dados jorge.readaluno(jorge.getmatricula()); Continua...

36 36/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO //Remove o aluno jorge.deletealuno(); //Verifica se as informações foram mesmo removidas jorge.readaluno(jorge.getmatricula());

37 37/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO //Remove o aluno jorge.deletealuno(); //Verifica se as informações foram mesmo removidas jorge.readaluno(jorge.getmatricula()); Ops! Um aluno responsável por ler outro aluno?

38 38/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO O que será que acontece se eu usar mais de um BD?

39 39/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO Sem problemas, está funcionando... - coesão + complexidade - Modularidade

40 40/60 SEM DAO EXEMPLO DE IMPLEMENTAÇÃO coesão +++ complexidade Modularidade D oh! Como eu reúso e mantenho isso?!

41 COM DAO EXEMPLO DE IMPLEMENTAÇÃO 41/60

42 42/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO public class Aluno { private long matricula; private String nome; private String instituicao; private boolean sexo; public static final boolean MASCULINO = false; public static final boolean FEMININO = true; public Aluno(){ // Setters e Getters para manter o encapsulamento public long getmatricula() {return matricula; public void setmatricula(long matr) {this.matricula = matr; public String getnome() {return nome; public void setnome(string nome) {this.nome = nome; // Continua a definição dos Setters e Getters...

43 43/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO public class ConnectionFactory { public ConnectionFactory(){ public Connection createconnection() throws SQLException{ try { Class.forName("com.mysql.jdbc.Driver"); return DriverManager.getConnection( "jdbc:mysql://localhost/ifsp_dao", "IFSP_DAO", "123123"); catch (ClassNotFoundException e) { System.err.println("Não foi possível encontrar a classe de conexão!"); e.printstacktrace(); return null; Com o padrão Método Fábrica facilitamos a criação de conexões com o banco de dados!

44 44/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO public class AlunoDAO{ public void create(aluno a){ try { // utiliza a fábrica de conexões para criar uma Connection Sql ConnectionFactory fabricacon = new ConnectionFactory(); Connection conexao = fabricacon.createconnection(); // cria um preparedstatement baseado em uma string SQL String sql = "INSERT INTO aluno (id, nom, inst, gen) values (?,?,?,?)"; PreparedStatement stmt = conexao.preparestatement(sql); // preenche os valores para (?,?,...,?) stmt.setlong(1, a.getmatricula()); stmt.setstring(2, a.getnome()); stmt.setstring(3, a.getinstituicao()); stmt.setboolean(4, a.getsexo()); // executa o comando SQL stmt.execute(); stmt.close(); Reduzi a complexidade Continua...

45 45/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO System.out.println("O aluno " + a.getnome() + " foi gravado BD."); conexao.close(); catch (SQLException e) { System.err.println("Erro na comunicação com o banco de dados!"); e.printstacktrace(); Diminui as exceções! Continua...

46 46/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO public Aluno read(long matr){ try { // Utiliza a fábrica de conexões para criar uma Connection Sql ConnectionFactory fabricacon = new ConnectionFactory(); Connection conexao = fabricacon.createconnection(); // Busca o aluno pela matrícula String sql = "SELECT * FROM aluno WHERE id =?" ; PreparedStatement stmt = conexao.preparestatement(sql); stmt.setlong(1, matr); ResultSet resultado = stmt.executequery(); if(resultado.next()){ Aluno a = new Aluno(); a.setnome(resultado.getstring("nom")); a.setmatricula(resultado.getint("id")); a.setinstituicao(resultado.getstring("inst")); a.setsexo(resultado.getboolean("gen")); System.out.println("O aluno " + a.getnome() + ", matrícula n. " + a.getmatricula() + ", estuda no " + a.getinstituicao() + "."); return a; Continua...

47 47/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO else{ System.out.println("Matrícula não encontrada!"); conexao.close(); return null; catch (SQLException e) { System.err.println("Erro na comunicação com o banco de dados!"); e.printstacktrace(); return null; Continua...

48 48/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO public void update(aluno a) { try { // utiliza a fábrica de conexões para criar uma Connection Sql ConnectionFactory fabricacon = new ConnectionFactory(); Connection conexao = fabricacon.createconnection(); // cria um preparedstatement baseado em uma string SQL String sql = "UPDATE aluno SET nom =?, inst =?, gen =? WHERE id =?"; PreparedStatement stmt = conexao.preparestatement(sql); // preenche os valores para (?,?,...,?) stmt.setstring(1, a.getnome()); stmt.setstring(2, a.getinstituicao()); stmt.setboolean(3, a.getsexo()); stmt.setlong(4, a.getmatricula()); stmt.executeupdate(); stmt.close(); conexao.close(); System.out.println("O aluno " + a.getnome() + " foi atualizado no BD"); catch (SQLException e) {... // fim do método update Continua...

49 49/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO public void delete(aluno a) { try { // utiliza a fábrica de conexões para criar uma Connection Sql ConnectionFactory fabricacon = new ConnectionFactory(); Connection conexao = fabricacon.createconnection(); // Remove o aluno String sql = "DELETE FROM aluno WHERE id =?" ; PreparedStatement stmt = conexao.preparestatement(sql); stmt = conexao.preparestatement(sql); stmt.setlong(1, a.getmatricula()); stmt.execute(); stmt.close(); System.out.println("O aluno "+ a.getnome() +" foi removido do BD."); conexao.close(); catch (SQLException e) {... // fim do método delete // fim da classe AlunoDAO

50 50/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO public class ClienteExemplo { public static void main(string[] args) { //Cria um aluno Aluno jorge = new Aluno(); jorge.setmatricula(101010); jorge.setinstituicao("ifsp São Carlos"); jorge.setsexo(aluno.masculino); jorge.setnome("jorge"); //Cria o DAO para conexão com o banco de dados AlunoDAO alunodao = new AlunoDAO(); //Salva o aluno no banco de dados; alunodao.create(jorge); //Atualiza as informações do aluno jorge.setnome("jorge Fernandes"); // gerencia a aplicação alunodao.update(jorge); //gerencia o banco de dados Continua...

51 51/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO public class ClienteExemplo { public static void main(string[] args) { //Cria um aluno Aluno jorge = new Aluno(); jorge.setmatricula(101010); jorge.setinstituicao("ifsp São Carlos"); jorge.setsexo(aluno.masculino); jorge.setnome("jorge"); Separação de interesses! //Cria o DAO para conexão com o banco de dados AlunoDAO alunodao = new AlunoDAO(); //Salva o aluno no banco de dados; alunodao.create(jorge); //Atualiza as informações do aluno jorge.setnome("jorge Fernandes"); // gerencia a aplicação alunodao.update(jorge); //gerencia o banco de dados Continua...

52 52/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO //Busca as informações cadastradas no banco de dados alunodao.read(jorge.getmatricula()); //Remove o aluno alunodao.delete(jorge); //Verifica se as informações foram mesmo removidas alunodao.read(jorge.getmatricula());

53 53/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO //Busca as informações cadastradas no banco de dados alunodao.read(jorge.getmatricula()); //Remove o aluno alunodao.delete(jorge); //Verifica se as informações foram mesmo removidas alunodao.read(jorge.getmatricula()); Maior coesão!

54 54/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO O que será que acontece se eu usar mais de um BD?

55 55/60 COM DAO EXEMPLO DE IMPLEMENTAÇÃO coesão modularidade reusabilidade Bem melhor agora!!

56 56/60 RESUMO MVC: Organizar o sistema de forma mais coesa, separando a representação gráfica, o controle e as regras de negócio DAO: Encapsular o acesso ao banco de dados separando as regras de persistência das regras de negócio O acesso ao banco pode variar sem que a aplicação seja alterada A aplicação pode ter múltiplas formas de acesso aos dados de forma mais organizada Maior flexibilidade, coesão, modularidade e facilidade de manutenção

57 57/60 EXERCÍCIOS 1. Criar uma classe Instituicao com uma relação um para muitos com Aluno. Desenvolver uma classe InstituicaoDAO para persistir objetos da classe Instituicao. 2. Estender a estrutura do Exercício 1 utilizando o padrão Fábrica Abstrata para fabricar objetos do tipo DAO. 3. Implementar classes DAO para gravar objetos do tipo Aluno e Instituicao em arquivos de texto. Criar também a fábrica para construir os objetos do tipo DAO.

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

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

API JDBC. Paulo Ricardo Lisboa de Almeida. 1 Universidade Positivo

API JDBC. Paulo Ricardo Lisboa de Almeida. 1 Universidade Positivo API JDBC Paulo Ricardo Lisboa de Almeida 1 JDBC JDBC Java Database Connectivity API Java para conexões com bancos de dados Encontrada dentro de java.sql 2 JDBC Necessário driver JDBC do banco Classes concretas

Leia mais

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

Funcionamento da Aplicação. Simulações do funcionamento. Simulação SAC Funcionamento da Aplicação Simulações do funcionamento Simulação SAC Simulação PRICE Simulação Cartão de Crédito Simulação Deposito Simulação parcela mínima Simulação Parcelamento máximo Classe: ConnectionFactory;

Leia mais

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

Listando, gravando, alterando e excluindo registro do banco de dados com JSP SISTEMAS DE INFORMAÇÃO 3º ANO PROGRAMAÇÃO II PROF. RONALDO FERREIRA DA SILVA JavaServer Pages JavaServer Pages (JSP) é uma tecnologia que ajuda os desenvolvedores de software a criarem páginas web geradas

Leia mais

Padrões de Projeto e Persistência com DAO

Padrões de Projeto e Persistência com DAO Curso de Análise de Sistemas Análise de Sistemas II Padrões de Projeto e Persistência com DAO Prof. Giuliano Prado de Morais Giglio, M.Sc. Introdução a Padrões de Projeto Padrões de Projeto foram inicialmente

Leia mais

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

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

Leia mais

Aula Prática JBCD - Introdução

Aula Prática JBCD - Introdução Aula Prática JBCD - Introdução Paulo Ricardo Lisboa de Almeida 1 Instanciando a aplicação Clone o projeto da aula passada com o Git (disponível no site da disciplina) Suba o banco de dados Crie as tabelas

Leia mais

Web Services. EclipseSDK/DB2 Construindo/Consumindo Serviços

Web Services. EclipseSDK/DB2 Construindo/Consumindo Serviços Web Services EclipseSDK/DB2 Construindo/Consumindo Serviços Mario C. Ponciano a.k.a: Razec http://razec.wordpress.com mrazec@gmail.com 28 de Novembro 2009 2 Sumário Objetivo... 3 Requisitos... 3 Desenvolvimento...

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

JavaServer Faces JSF

JavaServer Faces JSF JavaServer Faces JSF Fernando Freitas Costa Bacharel em Sistemas de Informação Especialista em Gestão e Docência Universitária blog.fimes.edu.br/fernando nando@fimes.edu.br JavaServer Faces e Banco de

Leia mais

Java DataBase Connectivity - JDBC. Ramon Lopes Embaixador de Campus Sun - UFBA

Java DataBase Connectivity - JDBC. Ramon Lopes Embaixador de Campus Sun - UFBA Java DataBase Connectivity - JDBC Ramon Lopes Embaixador de Campus Sun - UFBA 1 Agenda O que é um BD? Introdução SQL JDBC Padrões de Projetos Projeto Final Sun Confidential: Internal Only 2 O que é um

Leia mais

Drive MySql de conexão para Eclipse

Drive MySql de conexão para Eclipse Drive MySql de conexão para Eclipse de Setembro de 0 Olá, neste artigo iremos focar em como utilizar o drive de conexão do Mysql na IDE eclipse. Veremos passo-a-passo como instalar, o que é uma coisa muito

Leia mais

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

Universidade Católica do Salvador Bacharelado em Informática. Antonio Yuri Jailson do Amor Divino Felipe Souza. Tutorial: Trabalhando com JDBC Universidade Católica do Salvador Bacharelado em Informática Antonio Yuri Jailson do Amor Divino Felipe Souza Tutorial: Trabalhando com JDBC Configuração e manipulação. Professor: Eduardo Jorge Salvador

Leia mais

Acesso a banco de dados

Acesso a banco de dados Acesso a banco de dados 1. Crie uma pasta chamada AcessoBD com as seguintes subpastas: Aplicativos, Drivers, AcessoMSACCESS, AcessoMySQL e AcessoSQLSERVER Exemplo 1: MS ACCESS 1. Crie um banco de dados

Leia mais

Banco de Dados. Banco de Dados. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010

Banco de Dados. Banco de Dados. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona alcides.pamplona@gmail.com Tópicos API JDBC Utilizando JDBC Statement PreparedStatement Mapeamento Objeto-Relacional 2 API JDBC 3 API

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

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

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

Modulo 8 - Padrão DAO (Dta Access Object) Prof. Sheila Cáceres

Modulo 8 - Padrão DAO (Dta Access Object) Prof. Sheila Cáceres Aplicações de Linguagem de Programação Orientada a Objetos Modulo 8 - Padrão DAO (Dta Access Object) Prof. Sheila Cáceres O padrão de projeto DAO surgiu para facilitar a comunicação entre as camadas de

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

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Java Database Connectivity (JDBC) Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

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

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel Acesso a Banco Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel As conexões em Java são feitas através de uma ponte que implementa todas as funcionalidades que um banco de dados padrão deve

Leia mais

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

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados Aplicações de Linguagem de Programação Orientada a Objetos 2ºsem/2012 (Professor: Tiago) Módulo 5 - JDBC java.sql - Conexão com Banco de Dados Fazer o download do drive de conexão com o BD: http://jdbc.postgresql.org/download.html

Leia mais

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

Fernando Freitas Costa. Pós-Graduando em Gestão e Docência Universitária. blog.fimes.edu.br/fernando nando@fimes.edu.br JavaServerFaces JSF Fernando Freitas Costa Bacharel em Sistemas de Informação Pós-Graduando em Gestão e Docência Universitária blog.fimes.edu.br/fernando nando@fimes.edu.br JavaServerFaces e Banco de Dados

Leia mais

JDBC. Java DataBase Connectivity

JDBC. Java DataBase Connectivity JDBC Java DataBase Connectivity JDBC??? Uma API que permite o acesso a virtualmente qualquer fonte de dado tabular a partir de um programa escrito em Java O que é uma uma fonte de dados tabular? acesso

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

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

Especialização em web com interfaces ricas

Especialização em web com interfaces ricas Especialização em web com interfaces ricas Acessando Bancos de Dados com Java Prof. Fabrízzio Alphonsus A. M. N. Soares fabrizzio@inf.ufg.br professor.fabrizzio@gmail.com Instituto de Informática Universidade

Leia mais

Banco de Dados. Banco de Dados

Banco de Dados. Banco de Dados Banco de Dados Um banco de dados é um conjunto de informações organizadas de forma regular em tabelas semelhantes a matrizes de duas dimensões que contém linhas e colunas (Estilo planilha do Microsoft

Leia mais

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

Driver Mysql para Banco de Dados. Conexão com um Banco de Dados Driver Mysql para Banco de Dados MySQL.: Driver.: com.mysql.jdbc.driver URL.: jdbc:mysql://localhost/nomedobanco Usuário.: root senha.: ****** Conexão com um Banco de Dados Colocar o driver do banco de

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

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

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

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

JDBC Tópicos avançados de acesso a base de dados relacional JDBC Tópicos avançados de acesso a base de dados relacional A gestão de instruções SQL em JDBC 1 : proposta de uma arquitectura para evitar a manipulação de código SQL embutido em código JAVA. A arquitectura

Leia mais

J550 Integração com Bancos de Dados

J550 Integração com Bancos de Dados J550 Integração com Bancos de Dados Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Objetivos Este módulo apresenta estratégias para conectar servlets com a camada de dados usando um DAO - Data

Leia mais

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Programação Estruturada e Orientada a Objetos. Objetos e Métodos Programação Estruturada e Orientada a Objetos Objetos e Métodos 2013 O que veremos hoje? Objetos e Métodos Transparências baseadas no material do Prof. Jailton Carlos Objetivos Aprender a criar construtores;

Leia mais

JDBC Acessando Banco de Dados

JDBC Acessando Banco de Dados Acessando Banco de Dados Objetivos Entender o que são Drivers. Diferenciar ODBC, JDBC e DRIVERMANAGER. Desenvolver uma aplicação Java para conexão com Banco de Dados. Criar um objeto a partir da classe

Leia mais

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento.

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento. Introdução Atributos, métodos e encapsulamento joao@ecomp.uefs.br Atributos Ipos de acesso: private, public, protected e default Encapsulamento Métodos Construtores Criando objetos Departamento de Ciências

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

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. JDBC - Java Database Connectivity A,L,F,M

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. JDBC - Java Database Connectivity A,L,F,M JAVA Marcio de Carvalho Victorino 1 JDBC - Java Database Connectivity 2 1 JDBC conceito JDBC é uma API (Application Program Interface) para acesso a SGBD s (Sistemas Gerenciadores de Banco de Dados) relacionais

Leia mais

JDBC - Java Data Base Connectivity

JDBC - Java Data Base Connectivity JDBC - Java Data Base Connectivity JDBC API para Bases de Dados relacionais. Permite o desenvolvimento de aplicac~oes que interagem com BD relacionais de modo uniforme e independente dos diferentes SGBD.

Leia mais

Autenticação e Autorização

Autenticação e Autorização Autenticação e Autorização Introdução A segurança em aplicações corporativas está relacionada a diversos aspectos, tais como: autenticação, autorização e auditoria. A autenticação identifica quem acessa

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objetos (DPADF 0063) Programação Orientada a Objetos (DPADF 0063) Aula 9 JDBC (Java Database Connectivity) Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas

Leia mais

Tratamento de Exceções

Tratamento de Exceções Tratamento de Exceções Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução Exceções São eventos que

Leia mais

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans Roteiro Introdução Conceitos de Oientação a Objetos A Linguagem Java NetBeans (www.netbeans.org) Fernando Vieira Paulovich paulovic@icmc.usp.br

Leia mais

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona Linguagem de Programação CESBD 2010 Parte 2 Alcides Pamplona alcides.pamplona@gmail.com Tópicos API JDBC Utilizando JDBC Statement PreparedStatement Controle de Transação Mapeamento Objeto-Relacional

Leia mais

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Professora Sheila Cáceres Variáveis locais Campos são um tipo de variável. Eles: armazenam valores por toda a vida de um objeto; e

Leia mais

CONEXÃO JAVA - BANCO DE DADOS

CONEXÃO JAVA - BANCO DE DADOS CONEXÃO JAVA - BANCO DE DADOS RAQUEL, HEITOR, TIAGO, GEWTON Instituição Federal do Rio Grande do Norte- www.cefetrn.br JDBC JAVA DATABASE CONNECTIVITY INTRODUÇÃO API JDBC possibilita ao programador de

Leia mais

Especialização em web com interfaces ricas

Especialização em web com interfaces ricas Especialização em web com interfaces ricas Acessando Bancos de Dados com Java - Versão Gráfica (Continuação) Prof. Fabrízzio Alphonsus A. M. N. Soares fabrizzio@inf.ufg.br professor.fabrizzio@gmail.com

Leia mais

Java e Conexão com Banco de Dados

Java e Conexão com Banco de Dados A Plataforma Java Programação Orientada a Objetos em Java Java e Conexão com Banco de Dados Prof. Giuliano Prado de Morais Giglio, M.Sc. Conexão com Banco de Dados JDBC: Java Database Connectivity Acesso

Leia mais

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

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.

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. Universidade do Minho Departamento de Informática Camada de Dados - JDBC Aula 1 António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.pt 2 Camada de Dados A camada

Leia mais

Desenvolvimento para Web em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Lamarck Heinsch Mestrando PPGI/CT/UFSM

Desenvolvimento para Web em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Lamarck Heinsch Mestrando PPGI/CT/UFSM Desenvolvimento para Web em Java Profa Andréa Schwertner Charão DLSC/CT/UFSM Lamarck Heinsch Mestrando PPGI/CT/UFSM Tecnologias Web Java (OO) Fonte: Wikipedia Tecnologias Web em Java Java SE: Applets Java

Leia mais

Persistência Java para Web com MySQL

Persistência Java para Web com MySQL Persistência Java para Web com MySQL 1. Criar o modelo no DBDesigner 2. Criar o esquema e as tabelas no MySQL 3. Criar um projeto Java simples, com o nome Empresa,no NetBeans 4. Adicionar o driver de conexão

Leia mais

Introdução à Tecnologia Java 02/2012. Java Aula 05 12/09/2012. Celso Olivete Júnior. olivete@fct.unesp.br

Introdução à Tecnologia Java 02/2012. Java Aula 05 12/09/2012. Celso Olivete Júnior. olivete@fct.unesp.br Java Aula 05 JDBC 12/09/2012 Celso Olivete Júnior olivete@fct.unesp.br 1 Exercício para aquecimentoutilize o pacote Swing C = (F-32)*5 ------------ 9 Celso Olivete Júnior 2 Softwares utilizados: Java Development

Leia mais

Introdução Conceitos Iniciais Metodologia Web Services Considerações Finais. Introdução. Conceitos Iniciais Metodologia

Introdução Conceitos Iniciais Metodologia Web Services Considerações Finais. Introdução. Conceitos Iniciais Metodologia Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Pós-Graduação em Ciência da Computação WEB SERVICES Objetivo do trabalho; Utilização de ; Alexandra C. P. de Aguiar, Andriele

Leia mais

Estrutura do Projeto - Trabalhando com Banco de Dados

Estrutura do Projeto - Trabalhando com Banco de Dados Estrutura do Projeto - Trabalhando com Banco de Dados Utilizando o Postgresql como Base de Dados - Trabalhando com banco de Dados (Abra o pgadmin III) - Clique duas vezes sobre o PostgreSQL (8.3) e digite

Leia mais

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;

Leia mais

Acesso a Bancos de Dados em Java (JDBC)

Acesso a Bancos de Dados em Java (JDBC) Acesso a Bancos de Dados em Java (JDBC) Jomi Fred Hübner Universidade Regional de Blumenau Departamento de Sistemas e Computação Roteiro Introdução Objetivo da JDBC Vantagens Visão geral do acesso a SGBDs

Leia mais

Atributos e Métodos Estáticos

Atributos e Métodos Estáticos Atributos e Métodos Estáticos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Atributos Estáticos Atributos

Leia mais

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

Curso de Java. Acesso a banco de dados através de JDBC. Todos os direitos reservados Klais Curso de Java Acesso a banco de dados através de JDBC Todos os direitos reservados Klais Java e SGBD s SQL é a linguagem padrão para acesso a banco de dados e se estabeleceu como tal no mercado. SQL no

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

Utilizando Swing com Banco de Dados

Utilizando Swing com Banco de Dados Programando com Java Artigo http://mballem.wordpress.com/ Utilizando Swing com Banco de Dados Autor Marcio Ballem: é formado em Sistemas de Informação e possui certificação Oracle Certified Professional,

Leia mais

Linguagens de Programação

Linguagens de Programação JDBC - Java Database Connectivity Necessidades : ligar aplicações Java e Applets a DBMS Drivers que suportam SQL um driver JDBC/DBMS deve suportar pelo menos o ANSI SQL92 JDBC é constituído por interfaces

Leia mais

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira Tratamento de Erros Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Agenda Introdução Try, catch, finally Unchecked Exceptions Como levantar exceções Boas práticas O problema Calculadora numero1:

Leia mais

9 Exceções. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza

9 Exceções. Desenvolvimento OO com Java. Vítor E. Silva Souza  ~ vitorsouza Desenvolvimento OO com Java 9 Exceções Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito

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

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

Leia mais

Java JDBC - I. Ex. 2: para o SQLServer da Microsoft, o driver JDBC pode ser obtido em http://msdn.microsoft.com/en-us/data/aa937724.

Java JDBC - I. Ex. 2: para o SQLServer da Microsoft, o driver JDBC pode ser obtido em http://msdn.microsoft.com/en-us/data/aa937724. Curso de Análise e Desenvolvimento de Software Disciplina: Linguagens de Programação II Prof. Gilmar Caiado Material de Apoio Java JDBC I 3 o Período 22/05/2009 Java JDBC - I Motivação: Realizar a integração

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

Leia mais

Padrão de projeto de software

Padrão de projeto de software Padrão de projeto de software Paulo Venancio Lopes e Daniel Sguillaro Nome Roupa Suja Se Lava Em Casa. Intenção Dar maior capacidade e flexibilidade ao conceito de entidade (no contexto de persitência

Leia mais

Curso: Desenvolvimento Java

Curso: Desenvolvimento Java Exercícios de Fixação 10 Aplicações com SGBD Exercícios resolvidos Para realizar estes exercícios, iremos utilizar o projeto Aula01. Crie neste projeto um pacote de nome banco. Todos os exercícios deverão

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

Mapeamento Lógico/Relacional com JPA

Mapeamento Lógico/Relacional com JPA Mapeamento Lógico/Relacional com JPA Elaine Quintino da Silva Doutora em Ciência da Computação pelo ICMC-USP/São Carlos Analista de Sistemas UOL PagSeguro Instrutora Globalcode Agenda! Persistência de

Leia mais

JPA Java Persistence API. Prof. Ramon Chiara

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

Leia mais

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

Caelum. Sobre a empresa. Sobre a apostila. Mata o tempo e matarás a tua carreira Bryan Forbes Caelum "Mata o tempo e matarás a tua carreira" Bryan Forbes Sobre a empresa A Caelum atua no mercado desde 2002, desenvolvendo sistemas e prestando consultoria em diversas áreas, sempre à luz da plataforma

Leia mais

Java para Desktop. Programação Orientada à Objetos 2 JSE

Java para Desktop. Programação Orientada à Objetos 2 JSE Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona

Leia mais

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS Na grande maioria dos sistemas, faz-se necessário utilizar informações que estão armazenadas em uma determinada

Leia mais

Desenvolvimento de Sistemas de Informação http://sim.di.uminho.pt/disciplinas/dsi

Desenvolvimento de Sistemas de Informação http://sim.di.uminho.pt/disciplinas/dsi 1/100 Departamento de Informática, Universidade do Minho http://www.di.uminho.pt Desenvolvimento de Sistemas de Informação http://sim.di.uminho.pt/disciplinas/dsi LESI - 4 ō Ano / 2 ō Semestre (5308O7)

Leia mais

Armazendando Senhas Com Funções de Hash

Armazendando Senhas Com Funções de Hash Armazendando Senhas Com Funções de Hash Paulo Ricardo Lisboa de Almeida 1 Função de Hash Mapear uma entrada (string) de tamanho arbitrário para uma saída de tamanho fixo Saída de 128, 256, 512... bits

Leia mais

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são: Apêndice A Classe Vector A classe Vector permite a representação de um vetor de dados de maneira similar à de um array, visto na disciplina Programação Orientada a Objetos I, mas com maior flexibilidade.

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

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos luno: ata: Professor: Leonardo abral da Rocha Soares 1. Torna o atributo visível a todas as classes do pacote onde foi declarado: a) public b) private c) protected d) package

Leia mais

Classe Produto e Calculo de Produto

Classe Produto e Calculo de Produto Classe Produto e Calculo de Produto Criar um projeto -> Criar um pacote chamado entity. Criar uma classe completa de Produto contendo os atributos (código, nome, preço, quantidade, tipo, ativo, desconto),

Leia mais

POO Programação Orientada a Objetos

POO Programação Orientada a Objetos POO Programação Orientada a Objetos Mãos à Obra Jefferson S. Silva IFET - PI Copyright Jefferson S. Silva Slide 1 O sistema Nossa empresa foi contratada por uma pequena gravadora de música que deseja entrar

Leia mais

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

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada Revisão de tpicos anteriores BANCO DE DADOS Linguagem de consulta SQL Roberto Duarte Fontes Brasília - DF roberto@fontes.pro.br Projeto de banco de dados Modelagem Conceitual (independe da implementação)

Leia mais

Programação Orientada a Objetos SANTOS, Rafael (PLT)

Programação Orientada a Objetos SANTOS, Rafael (PLT) Programação Orientada a Objetos SANTOS, Rafael (PLT) Possibilita atribuições em sequência na mesma instrução Retorna o valor atribuído Atribuições compostas: incluem a própria variável: +=, *=, -=, etc

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

Programação Orientada a Objetos em Java

Programação Orientada a Objetos em Java Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Classes e Objetos, Construtores e Desconstrutores, Atributos e

Leia mais

JAVA JDBC Java Database Connectivity

JAVA JDBC Java Database Connectivity JAVA JDBC Java Database Connectivity Permite o acesso a banco de dados Uma das formas de acesso é utilizando o driver JDBC-ODBC que permite a conexão através de um DRIVER ODBC O ODBC (Open Database Connectivity)

Leia mais

Programação de Computadores II TCC /Turma A 1

Programação de Computadores II TCC /Turma A 1 Programação de Computadores II TCC 00.174/Turma A 1 Professor Leandro A. F. Fernandes http://www.ic.uff.br/~laffernandes Conteúdo: Tratamento de exceções Material elaborado pelos profs. Anselmo Montenegro

Leia mais

Desenvolvimento Web com Struts

Desenvolvimento Web com Struts TREINAMENTOS Desenvolvimento Web com Struts Desenvolvimento Web com Struts2 e JPA2 14 de junho de 2015 As apostilas atualizadas estão disponíveis em www.k19.com.br Sumário i Sobre a K19 1 Seguro Treinamento

Leia mais

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

Caelum. Sobre a empresa. Sobre a apostila. Mata o tempo e matas a tua carreira Bryan Forbes Caelum Mata o tempo e matas a tua carreira Bryan Forbes Sobre a empresa A Caelum atua no mercado desde 2002, desenvolvendo sistemas e prestando consultoria em diversas áreas, à luz sempre da plataforma

Leia mais

Classe Aluno e Disciplina, Validação JUnit, gravação no MySql

Classe Aluno e Disciplina, Validação JUnit, gravação no MySql Classe Aluno e Disciplina, Validação JUnit, gravação no MySql Criar um projeto -> Criar um pacote chamado entity. Criar uma classe Aluno contendo os atributos (idaluno, nome, email, listadisciplina, cr,

Leia mais

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

JDBC DRIVER. Objetivo: Possibilitar aplicações não Zim de se conectar a um banco de dados Zim utilizando as normas JDBC. Objetivo: Possibilitar aplicações não Zim de se conectar a um banco de dados Zim utilizando as normas JDBC. Requisitos para usar o driver JDBC Do lado do cliente: O driver JDBC Do lado do servidor: A base

Leia mais