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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tecnologias Java JDBC. Marcio Seiji Oyamada msoyamada@gmail.com

Tecnologias Java JDBC. Marcio Seiji Oyamada msoyamada@gmail.com Tecnologias Java JDBC Marcio Seiji Oyamada msoyamada@gmail.com JDBC JDBC: Java Database Connectivity API Java para acessar dados armazenados em um Banco de Dados Conectar a um banco dados Enviar consultas

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

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

DSS 09/10. DSS 09/10 Que métodos é que fazem parte de cada camada? Aplicações Multi-camada JDBC. Aula 3 DSS 09/10 Universidade do Minho Departamento de Informática Aplicações Multi-camada JDBC Aula 3 António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jose.campos@di.uminho.pt 2 Programação

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

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

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 Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO

Programação Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO POO Programação Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO Marcelo Santos Daibert (marcelo@daibert.net) é professor do Curso de Bacharelado

Leia mais

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno. Interfaces Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Interfaces É utilizada para agrupar conceitos em

Leia mais

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS Modificador static e Pacotes Alberto Costa Neto DComp - UFS 1 Roteiro Modificador static Pacotes 2 Modificador static Instanciando a classe Funcionário matricula nome cpf salario salario-min getmatricula()

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

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

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 9 Tratamento de Exceções Assertivas 1 Programa Capítulo 9 Tratamento

Leia mais

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

Criando um aplicação simples com JAVA e MySQL usando NetBeans Parte I Tutorial elaborado pelo professor José Gonçalo dos Santos Contato: jose.goncalo.santos@gmail.com Criando um aplicação simples com JAVA e MySQL usando NetBeans Parte I 1. Introdução Este tutorial não tem

Leia mais

Padrão J2EE Data Access Object (DAO)

Padrão J2EE Data Access Object (DAO) Introdução CRUD DAO Exemplo Padrão J2EE Data Access Object (DAO) Prof. Enzo Seraphim Motivação para usar Componentes precisam acessar e armazenar informações em armazenamento persistente As APIs de armazenamento

Leia mais

Java na WEB Banco de Dados

Java na WEB Banco de Dados 1 Java na WEB Banco de Dados Objetivo: Ao final da aula o aluno será capaz de: Criar aplicações JSP com acesso ao Banco de Dados MySql Configurar o TomCat para acessar o MySql. Não é Objetivo: Ao final

Leia mais

Integrando Java e Banco de Dados (Tutorial) por Jorge Henrique Cabral Fernandes

Integrando Java e Banco de Dados (Tutorial) por Jorge Henrique Cabral Fernandes XV Simpósio Brasileiro de Bancos de Dados 2-6 de Outubro de 2000 João Pessoa - Paraíba, Brasil Integrando Java e Banco de Dados (Tutorial) por Jorge Henrique Cabral Fernandes Departamento de Informática

Leia mais

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

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

Leia mais

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

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para

Leia mais

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 9 Tratamento de Exceções Assertivas Programa Capítulo

Leia mais

Exibir relatórios gerados pelo Jasper Report em Flex

Exibir relatórios gerados pelo Jasper Report em Flex Exibir relatórios gerados pelo Jasper Report em Flex Autor: Roberto Lourenço de Oliveira Júnior Email: robertojr at comp dot ufla dot br Página pessoal: http://alunos.dcc.ufla.br/~robertojr O Jasper Report

Leia mais

Acesso a Banco de Dados usando C# (Usando o MySql ADO.NET Provider)

Acesso a Banco de Dados usando C# (Usando o MySql ADO.NET Provider) Ambiente de Programação Visual Acesso a Banco de Dados usando C# (Usando o MySql ADO.NET Provider) Prof. Mauro Lopes 1-31 14 Objetivos Nesta aula iremos apresentar o ADO.NET. Esta importante parte da tecnologia.net

Leia mais

Código do Sistema Ponto de Vendas

Código do Sistema Ponto de Vendas Código do Sistema Ponto de Vendas O sistema ponto de vendas, tem como finalidade implementar um pequeno sistema em WPF, que sirva de exemplo para a turma da disciplina Ambiente de Programação e Banco de

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

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real: Introdução a Orientação a Objetos com Java Autor: Professor Victor Augusto Zago Menegusso. Orientação a Objetos É um paradigma de programação que define a estrutura de um programa baseado nos conceitos

Leia mais

Caelum - Java para desenvolvimento Web. Índice

Caelum - Java para desenvolvimento Web. Índice Caelum - Java para desenvolvimento Web Índice Capítulo 1: Como aprender Java...1 1.1 - Falando em Java...1 1.2 - O que é realmente importante?...1 1.3 - Sobre os exercícios...2 1.4 - Tirando dúvidas...2

Leia mais

Implementando o Diagrama de Classes

Implementando o Diagrama de Classes Modelagem de Hipermídia Prof. Giangiacomo Ponzo Neto Aula7 Implementando o Diagrama de Classes Podíamos chamar esse tópico de persistência, porque vamos passar pelo assunto. No entanto, como alguém poderia

Leia mais

Aplicativos Web com Orientação a Objetos

Aplicativos Web com Orientação a Objetos Objetivo: Praticar o relacionamento entre classe um para muitos implementando um exemplo de carrinho de compras de produtos. Diagrama de Classes - Model 1. Crie um banco de dados chamado produtos e um

Leia mais

Técnicas de Programação Avançada TCC-00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br

Técnicas de Programação Avançada TCC-00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br Técnicas de Programação Avançada TCC-00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br Conteúdo: Padrão Template Method Documento baseado no material preparado pelo Prof. Luiz André

Leia mais

Conectividade de Banco de Dados Java JDBC

Conectividade de Banco de Dados Java JDBC Conectividade de Banco de Dados Java JDBC João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 3.1 Última Atualização: Abril/2005 1 Objetivos Explicar o que é JDBC Utilizar as classes e interfaces do pacote

Leia mais

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar

Leia mais

Exercícios de Revisão Java Básico

Exercícios de Revisão Java Básico Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1

Leia mais

Atividade JSP com Banco de Dados

Atividade JSP com Banco de Dados Instituto Federal de Santa Catarina - Campus Chapecó Engenharia de Controle e Automação Programação II Professor: Bruno Crestani Calegaro Atividade JSP com Banco de Dados Objetivos Elaborar um projeto

Leia mais