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.

Exercícios de fixação: Listas

Exercícios de fixação: Listas Exercícios de fixação: Listas Exercício 1 : Inlcuindo o driver ao seu projeto 1. No Eclipse, vamos criar um novo projeto chamado CursoJavaJDBC. 2. Copie o driver do MySQL para o seu projeto. a. localize

Leia mais

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

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP Banco de dados POO Márcio Delamaro 1/37 Objetivo Nesta aula vamos dar uma breve introdução do que é um Banco de dados relacional Como acessar um banco de dados usando Java 2/37 O que é Bancos de dados

Leia mais

Criar um projeto ->. Criar no pacote entity a classe Funcionario com os atributos(idfuncionario, nome, sexo, ativo, salario). Criar construtor vazio, o construtor cheio, o tostring com todos os atributos

Leia mais

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

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 .1 JDBC A linguagem Java possui classes que permitem a com um banco de dados. Essas classes fazem parte do pacote JDBC (Java Database Connectivity), uma API (Application Program Interface) que permite

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

Projeto webservicejax

Projeto webservicejax Projeto webservicejax Estrutura do projeto... package servicesxml; import javax.jws.webmethod; import javax.jws.webservice; //Aponta para o JDK @WebService public class ServerCalculo { //padrão Wsdl (tem

Leia mais

Lista de exercícios I - RESPOSTAS Servlets e banco de dados

Lista de exercícios I - RESPOSTAS Servlets e banco de dados www.posse.ueg.br Home Page: http://www.posse.ueg.br/index.php/conexao-ueg/meuperfil/userprofile/ronaldo Dado o diagrama de classe abaixo: Lista de exercícios I - RESPOSTAS Servlets e banco de dados 1.

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

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

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

Java - Conexão ao Banco de Dados usando JDBC

Java - Conexão ao Banco de Dados usando JDBC Java - Conexão ao Banco de Dados usando JDBC 1. Criar o modelo no DBDesigner, como mostrado a seguir. Salvar o script de criação da tabela. 2. Criar o esquema e as tabelas no MySQL (Pode usar o MySQL Query

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

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

Agenda. Instalação e configuração. Processamento de comandos SQL com JDBC. Driver JDBC Criação da classe de conexão Agenda Instalação e configuração Driver JDBC Criação da classe de conexão Processamento de comandos SQL com JDBC Gerenciamento de conexões Execução simples de consultas Tratamento de exceções Instalação

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

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

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

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

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

Programação Orientada a Objetos II

Programação Orientada a Objetos II Programação Orientada a Objetos II Prof. Walter Gima walter.gima@anhanguera.com 1 Plano de Ensino e Aprendizagem 2 Java Conexão banco de dados 3 Agenda Conexão Banco de Dados Padrão DAO (Data Access Object)

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 JDBC. JDBC - Arquitetura. JDBC Arquitetura Pacote Java.sql. Java Database Connectivity JDBC PostgreSQL

JDBC JDBC. JDBC - Arquitetura. JDBC Arquitetura Pacote Java.sql. Java Database Connectivity JDBC PostgreSQL Ciência da Computação GBC043 Sistemas de Banco de Dados Java Database Connectivity JDBC PostgreSQL JDBC Diferentes SGBD possuem diferentes formas de se comunicar com uma aplicação Aplicação Java Profa.

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

Criando um Projeto... File -> New -> Java Project. Colocar o nome do projeto em Project Name... Marcar JRE -> JavaSE-1.7 e Create separate folders for sources and class files -> Finish 1 No projeto criado,

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

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu: Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz - 2015/05/13 Questão: 1 2 3 4 5 6 Total Pontos: 20 15 15 10 10 30 100 Gráu: 1. Defina os termos listados a seguir: (a) (10 Pontos)

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

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

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

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

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

1) Responda de acordo com os conceitos de orientação a objetos (0,5).

1) Responda de acordo com os conceitos de orientação a objetos (0,5). Avalição II (Teórica) 22/06/2017 Disciplina Linguagem de Programação II Prof. Wagner, dos Santos C. de Jesus Curso Engenharia da Computação Questões Solução da Avaliação 1) Responda de acordo com os conceitos

Leia mais

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual Aula 09 Objetivo Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual Banco de Dados 1. Crie um novo projeto

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

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

Código-Fonte da Prática 02

Código-Fonte da Prática 02 Código-Fonte da Prática 02 Sumário Classe ConexaoDB... 2 Classe PropriedadesBD... 5 Arquivo conexao.properties... 6 Programação Comercial Walderson Shimokawa 1 Classe ConexaoDB package br.edu.univag.util.sql;

Leia mais

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos 1. Para a construção de uma aplicação gráfica se faz necessário conceber a interface de aplicação, identificando-se

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

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

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

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

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

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

Programação Orientada a Objeto

Programação Orientada a Objeto Java Básico Programação Orientada a Objeto Marco Antonio, Arquiteto de Software TJDF Novembro/2005 Classes em java Uma aplicação Java é formada de centenas classes. Não é raro esse número chegar a milhares

Leia mais

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos; Fundação CECIERJ - Vice Presidência de Educação Superior a Distância Curso de Tecnologia em Sistemas de Computação Disciplina: Programação Orientada a Objetos AP2 2 semestre de 2016. Nome Assinatura Observações:

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

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

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes Aula 08 Encapsulamento Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Projeto Orientado a Objetos Princípios: Abstração; Encapsulamento; Modularidade.

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

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

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

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

Programação Estruturada e Orientada a Objetos

Programação Estruturada e Orientada a Objetos INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br

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

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Classes e Objetos. Prof. Fernando V. Paulovich  9 de agosto de 2010 Classes e Objetos SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

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

PADRÕES DE PROJETO DE SOFTWARE

PADRÕES DE PROJETO DE SOFTWARE Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação PADRÕES DE PROJETO DE SOFTWARE SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

JDBC com Banco de Dados Standalone

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

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

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

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

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador) Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado

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

Encapsulamento. Alberto Costa Neto DComp - UFS

Encapsulamento. Alberto Costa Neto DComp - UFS Encapsulamento Alberto Costa Neto DComp - UFS 1 Motivação O que aprendemos até agora? O que diferencia a POO da Programação Imperativa? Estas informações são suficientes para construir um projeto OO eficiente?

Leia mais

Encapsulamento. Separa a interface de um objeto dos detalhes de seu funcionamento interno. Caixa preta 2/27

Encapsulamento. Separa a interface de um objeto dos detalhes de seu funcionamento interno. Caixa preta 2/27 Encapsulamento Encapsulamento entrada Caixa preta saída 2/27 Separa a interface de um objeto dos detalhes de seu funcionamento interno Encapsulamento Esconder os detalhes de implementação de um componente

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

1 Introdução e Conceitos básicos

1 Introdução e Conceitos básicos 1 Introdução e Conceitos básicos Aula 02 Sumário Capítulo 1 Introdução e Conceitos básicos 1.1 Modelos 1.2 Tipos primitivos de dados 1.3 Tipo Abstrato de dados 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2

Leia mais

O JUnit permite a realização de testes de unidades, conhecidos como "caixa branca", facilitando assim a correção de métodos e objetos.

O JUnit permite a realização de testes de unidades, conhecidos como caixa branca, facilitando assim a correção de métodos e objetos. JUnit O JUnit é um framework open-source, criado por Erich Gamma e Kent Beck, com suporte à criação de testes automatizados na linguagem de programação Java. Esse framework facilita a criação de código

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

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

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos

Leia mais

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO Nº 006/2016 CONTRATO DE GESTÃO IGAM Nº 002/IGAM/2012 09/2017 1 PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO

Leia mais

Faça Fácil Proficy Historian e SQL Linked Server

Faça Fácil Proficy Historian e SQL Linked Server Faça Fácil Proficy Historian e SQL Linked Informações de produção consolidadas através de indicadores e armazenadas em historiadores de processo, como o Proficy Historian, muitas vezes devem ser integradas

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

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

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

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

Bancos de dados e JDBC

Bancos de dados e JDBC APOSTILA JAVA PARA DESENVOLVIMENTO WEB Curso Java para Desenvolvimento Web Apostila Capítulo 2 - Bancos de dados e JDBC C 2 Bancos de dados e JDBC "O medo é o pai da moralidade" -- Friedrich Wilhelm Nietzsche

Leia mais

PROFICY HISTORIAN E SQL LINKED SERVER

PROFICY HISTORIAN E SQL LINKED SERVER PROFICY HISTORIAN E SQL LINKED SERVER Informações de produção consolidadas através de indicadores e armazenadas em historiadores de processo, como o Proficy Historian, muitas vezes devem ser integradas

Leia mais

Faça Fácil. Proficy Historian e SQL Linked Server

Faça Fácil. Proficy Historian e SQL Linked Server Faça Fácil Proficy Historian e SQL Linked Server Informações de produção consolidadas através de indicadores e armazenadas em historiadores de processo, como o Proficy Historian, muitas vezes devem ser

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

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

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

Hierarquia de classes. Veja as diversas classes do pacote

Hierarquia de classes. Veja as diversas classes do pacote Entrada e Saída Introdução Input e Output fazem parte do pacote java.io Esse pacote tem uma quantidade grande de classes que dão suporte a operações de entrada e saída As classes básicas são InputStream

Leia mais

Gravação de objetos em arquivos

Gravação de objetos em arquivos Gravação de objetos em arquivos Programação Orientada a Objetos Prof. Tulio Alberton Ribeiro Instituto Federal de Santa Catarina IFSC campus São José tulio.alberton@ifsc.edu.br 17 de setembro de 2014 1

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

Desenvolvimento Web com Java. Sérgio Lopes Caelum -

Desenvolvimento Web com Java. Sérgio Lopes Caelum - Desenvolvimento Web com Java Sérgio Lopes Caelum - http://www.caelum.com.br sergio.lopes@caelum.com.br Sérgio Lopes Desenvolvedor Java desde 2002 Instrutor de Java pela Caelum Trabalho com Web e Celulares

Leia mais

Orientação a Objetos AULA 09

Orientação a Objetos AULA 09 Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este

Leia mais

Como criar um banco de dados usando o mysql

Como criar um banco de dados usando o mysql Como criar um banco de dados usando o mysql 1º Passo: Tenha instalado em seu computador o software XAMPP. Clique aqui para fazer o download. 2º Passo: O XAMPP faz a instalação normal, apenas clicando next,

Leia mais

Prof. A. G. Silva. 13 de novembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de / 1

Prof. A. G. Silva. 13 de novembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de / 1 INE5603 Introdução à POO Prof. A. G. Silva 13 de novembro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de 2017 1 / 1 Introdução à manipulação de arquivos Prof. A. G. Silva INE5603

Leia mais

Módulo III Arquitetura em Camadas

Módulo III Arquitetura em Camadas Módulo III Arquitetura em Camadas Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Módulo III Camadas de Software April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Leia mais