PRDS - Programa de Residência em Desenvolvimento de Software

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

Download "PRDS - Programa de Residência em Desenvolvimento de Software"

Transcrição

1 PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Andrew acosta@inf.puc-rio.br Rodrigo Paes rbp@les.inf.puc-rio.br Carlos Lucena lucena@inf.puc-rio.br

2 Conteúdo Módulo 1: Orientação a Objetos com Java 8 horas Sintaxe básica IDE Eclipse 3.3 Classe, Interface, Herança Polimorfismo, Delegação Classes Genéricas e Coleções em Java 1.5 Persistência com JDBC Módulo 2: Introdução a Engenharia de Software - 04 horas Processos de desenvolvimento de software Principais Disciplinas Módulo 03: Requisitos de Software e UML Básico - 12 horas Requisitos Modelo de Casos de Uso Modelo de Classes Modelo Dinâmico Módulo 04: Desenvolvimento WEB I - 12 horas Servlets, JSP, Desenvolvimento de taglibs Arquitetura 3 camadas MVC básico 2

3 Conteúdo Módulo 05: Reuso de Software - 08 horas Frameworks Padrões de Projeto Módulo 06: Mapeamento O/R e Hibernate - 08 horas Mapeamento de OO para o Modelo Relacional Persistência com Hibernate Módulo 07: Teste de Software - 08 horas Teste unitário Teste de aceitação Teste de desempenho Teste de carga Módulo 08: Desenvolvimento WEB II - 24 horas Struts 2.0 3

4 Conceitos de Orientação a Objetos

5 Conceitos Principais Objeto Conjunto de variáveis e métodos relacionados Normalmente, modelam objetos do mundo real Mensagem Forma de comunicação e interação entre objetos Classe Esquema ou protótipo dos objetos que são criados Herança Mecanismo poderoso e natural para organizar e estruturar o software Interface Contrato entre uma classe e o mundo externo 5

6 Objetos Principais características Estado Representado por atributos Comportamento Representado por métodos Objeto de Software Bicicleta modelada como objeto 6

7 Objetos Métodos Operam estado interno do objeto Mecanismo primário para comunicação entre objetos Objeto pode Expor suas variáveis a outros objetos Esconder métodos de outros objetos Isso é feito na declaração dos atributos e métodos Encapsulamento Princípio fundamental da OO Esconde estado interno dos objetos Interação através de mensagens 7

8 Encapsulamento Benefícios Modularidade Código dos objetos escritos e mantidos independentemente do código de outros objetos Ocultamento de Informações Implementação interna escondida do mundo externo Re-uso de Código Objetos existentes podem ser reusados Fácil Plugabilidade e Debug Objetos problemáticos podem ser substituídos por outros equivalentes 8

9 Mensagens Mensagem Solicitação que um objeto execute um método Troca de mensagens entre objetos Forma de interação e comunicação Parâmetros Informações passadas através da mensagem Três componentes Objeto ao qual a mensagem é endereçada Nome do método a ser executado Parâmetros requeridos pelo método 9

10 Classes Esquema ou Protótipo Define variáveis e métodos de objetos de um mesmo tipo Objeto: instância de uma classe Classe Objetos 10

11 Classes Valor de Variáveis de Instância Fornecidos por cada instância da classe Variáveis e Métodos de Instâncias Acessados através da instância da classe Variáveis e Métodos de Classe Fazem parte da Classe Acessados através da classe ou da instância da classe 11

12 Herança Classes podem herdar estado e comportamento de outras classes Superclasse Ancestral direto de uma classe ou Quaisquer ascendentes dela Bicycle Subclasse Classe que deriva de outra classe Demais classes Herda variáveis e métodos Pode não ter acesso a eles 12

13 Herança Herança Múltipla Classe possui mais de uma superclasse direta Não suportado em Java Subclasses podem Adicionar novos atributos e métodos Sobreescrever métodos Implementação especializada para estes métodos Árvore de Herança ou Hierarquia de Classes Tão profunda quanto necessário Em geral, quanto mais abaixo na hierarquia Mais especializado é o comportamento de uma classe 13

14 Interface Contrato na forma de Coleção de métodos Declarações de constantes Quando uma classe implementa uma interface Compromete-se a fornecer implementação para todos os métodos declarados na interface Classe pode implementar múltiplas interfaces 14

15 Classe X Interface Tipo Conjunto de solicitações às quais ele pode atender O que o objeto é capaz de fazer Interface do objeto Promessa de serviços Classe Define Estado interno de um objeto Implementação de suas operações Como o objeto é implementado Implementação do objeto Cumprimento de uma promessa de serviços 15

16 Classe X Interface Sem compreender tipo e classe Não há como entender Herança de tipo Herança de implementação Herança de classe (de implementação) Define a implementação de um objeto em função da implementação de outro Mecanismo para compartilhamento de código Herança de tipo (de interface) Define quando um objeto pode ser utilizado no lugar do outro Cumpre a mesma promessa que o outro prometeu 16

17 Classe X Interface Herança de Classe Implementação da mesma forma que o outro implementa!!! Herança de Tipo Implementação do que o outro promete!!! Herança de Classe X Herança de Tipo A herança de implementação também implica herança de tipo!!! 17

18 Quando usar herança? O objeto é um tipo especial de... Transação Dispositivo Reserva Compra Mouse Teclado e não um papel assumido por! Pessoa Tripulante Passageiro Agente 18

19 Quando usar herança? O objeto nunca tem que mudar para outra classe! Dispositivo Um Tripulante de um vôo pode ser Passageiro de outro. Mouse Teclado Pessoa Um Mouse nunca vai se tornar um Teclado Tripulante Passageiro Agente 19

20 Quando usar herança? As subclasses não sobrescrevem métodos da superclasse (apenas adicionam!). Superclasse desenhar() testar() Sobrescreve tudo!? Pra que herdar??? Superclasse desenhar() testar() SubclasseA SubclasseB SubclasseA SubclasseB imprimir() executar() Novas funcionalidades... Compartilha código! desenhar() testar() desenhar() testar() 20

21 Polimorfismo Permite tratar objetos de classes derivadas como objetos das classes ascendentes Habilidade dos objetos de Pertencerem a diferentes tipos Para responder chamadas de métodos com o mesmo nome Cada um com uma implementação específica ao tipo Cliente não sabe o tipo exato do objeto Implementação em tempo de execução (late binding) Objetos precisam apresentar interface compatível com seus clientes 21

22 Relacionamentos Comunicação entre objetos Requer relacionamento entre eles Tipos de relacionamento Herança Associação Agregação Composição Dependência Delegação Seqüência de comunicação entre objetos Para a realização de um serviço 22

23 Relacionamentos entre Classes Herança Relacionamento entre itens gerais (superclasse) e itens mais específicos (subclasses). Associação Objetos de uma classe vinculados a objetos de outra classe Por exemplo: no DAR de uma universidade, existem associações entre Turma e Aluno, Professor e Disciplina Agregação Indica um relacionamento todo-parte Um objeto parte pode fazer parte de vários objetos todo Por exemplo: Pedido e Item, Universidade e Curso 23

24 Relacionamentos entre Classes Composição Variante semanticamente mais forte da agregação Objetos parte só pertencem a um único todo Têm o tempo de vida coincidente com o todo Por exemplo: Notebook e Teclado, Window e Frame Dependência Utilização entre dois itens A alteração do item independente pode afetar o item dependente Por exemplo: Cliente e Fornecedor 24

25 Conceitos de Orientação a Objetos em Java

26 Classes em Java Modelo que define as variáveis e os métodos comuns a todos os objetos de um certo tipo 26

27 Classes em Java Classe anterior contém o código que implementa o ciclo de vida dos objetos instanciados a partir da classe Construtores Inicializam de novos objetos Variáveis Mantém o estado da classe e de seus objetos Métodos Implementam o comportamento da classe e de seus objetos Possibilidade de especificar outras informações Nome de uma possível superclasse Implementação de interfaces Se a classe pode ser herdada 27

28 Classes em Java Elemento public abstract final class NameOfClass extends Super implements Interfaces { ClassBody } Obrigatório X X Função Publicamente acessível Não pode ser instanciada Não pode ter subclasses Nome da classe Superclasse Interfaces implementadas Funcionalidade da classe 28

29 Classes em Java public Classe pode ser usada por qualquer outra classe Sem public : pode ser usada somente por classes no mesmo pacote abstract Especifica classe abstrata Não é possível criar uma instância Exemplo: abstract class Number, class Integer e class Float final Nãopodepossuirsubclasses Exemplo: String extends Super Identifica Super como superclasse implements Interfaces Enumera interfaces implementadas 29

30 Interfaces de Java Coleção nomeada de definições de métodos Sem respectivas implementações Interfaces X Classes Abstratas interface não pode implementar métodos, classe abstrata pode classe pode implementar muitas interfaces, não pode ter mais que uma superclasse interface não é parte da hierarquia de classes classes não-relacionadas podem implementar a mesma interface 30

31 Herança em Java 31

32 Herança em Java classe Object topo da hierarquia de classes Toda classe é descendente Comportamentos compartilhados por todos os objetos executados na JVM variável Object Pode armazenar uma referência para qualquer objeto Classe ou vetor Exemplo Classes herdam o método tostring da classe Object Retorna representação em string para um objeto 32

33 Polimorfismo em Java Presente em todas chamadas de métodos Objeto a referencia objeto b Realiza chamada b.m() Pode ser executado de várias formas Depende do tipo de b class A { void façaalgo() { //O objeto "a" cria o objeto "b" Gritador b; if(...) { b = new Humano(); } else { b = new Macaco(); } b.grita(); // chamada polimórfica } } 33

34 Polimorfismo em Java class A { void façaalgo() { // O objeto "a" recebe o objeto "b" de um objeto "c. // "c" é um objeto qualquer para o qual se tem referência. Gritador b = c.medêumgritador(); b.grita(); // chamada polimórfica } } class A { //O objeto "a" recebe o objeto "b" numa chamada de método. void façaalgo(gritador b) { b.grita(); // chamada polimórfica } } 34

35 Polimorfismo em Java Polimorfismo existe em chamadas a métodos definidos em interfaces e superclasses interface Gritador { } void grita(); class Humano implements Gritador { } public void grita() { } System.out.println("AAHHAAHHAAHHA"); // Me Tarzan! class Macaco implements Gritador { } public void grita() { } System.out.println("IIHIIHHIIHHII"); // Me Cheetah! 35

36 Polimorfismo em Java A herança de implementação Também permite fazer polimorfismo Permite criar classes que implementem o mesmo tipo class UmGritador { public void grita() { System.out.println("Buuuuu"); } } class Humano extends UmGritador { public void grita() { System.out.println("AAHHAAHHAAHHAA"); } } Subclasse Humano Faz override (redefine) alguns métodos Decidiu gritar de forma diferente! 36

37 Polimorfismo em Java Melhor: Herança de tipo ou Herança de implementação? Herança de tipo para fazer polimorfismo (Preferível) Herança de implementação para fatorar código comum entre várias classes Em outras palavras: defina comportamentos ("ser um gritador") com tipos abstratos (interfaces) e use-os no polimorfismo defina implementações ( como gritar ) com classes e use superclasses para fatorar implementações comuns 37

38 Relacionamentos entre Classes em Java Herança implements (herança de tipo) extends (herança de implementação) Associação Declaração de atributos. Se atributo é coleção: agregação ou composição de objeto class Disciplina{ Professor professor;... } Associação Simples class Professor{ Collection disciplinas;... } Agregação 38

39 Relacionamentos entre Classes em Java Dependência Classe utiliza outra somente como parâmetro de entrada na assinatura de ao menos uma de suas operações Classe utiliza outra somente como variável local de ao menos um de seus métodos class Universidade{ Collection departamentos;... } Agregação class Universidade{... getdisciplinas(departamento d)... } Dependência 39

40 Aplicação ClickMeApp ClickMeApp: Componente GUI chamado ClickMe Círculo aparece quando clicamos com o mouse dentro da área do componente ClickMe Classe ClickMeApp, ClickMe e Spot são compiladas Outras classes fornecidas por Java são utilizadas 40

41 ClickMeApp: Classe Spot 41

42 ClickMeApp: Classe ClickMe 42

43 ClickMeApp: Classe ClickMe 43

44 ClickMeApp: Classe ClickMe 44

45 ClickMeApp: Classe ClickMeApp 45

46 ClickMeApp: Classe ClickMeApp 46

47 API Orientada a Objetos de Java Hierarquia de Collections

48 Introdução Coleção Objeto que agrupa múltiplos elementos em uma única unidade Armazena, recupera e manipula dados agregados Representa itens de dados que formam um grupo natural Como uma caixa de s ou uma lista telefônica Implementações de coleção em versões Java pré-1.2 Incluíam Vector, Hashtable e Array Não existia ainda um framework de coleções 48

49 Framework de Coleções Arquitetura unificada para representar e manipular coleções Interfaces Tipos abstratos de dados que representam coleções Coleções são manipuladas independentemente da representação Implementações Implementações concretas das interfaces de coleção Estruturas de dados reusáveis Algoritmos Métodos que realizam computações úteis Exemplo: busca e ordenação sobre objetos que implementam as interfaces de coleção Ditos polimórficos mesmo método pode ser usado em diferentes implementações da interface de coleção apropriada Funções reusáveis 49

50 Interfaces Hierarquia de diferentes tipos de coleções Permitem a manipulação de dados independentemente da representação Set é um tipo especial de Collection SortedSet éum tipode Set Hierarquia consiste de duas árvores diferentes Map não é um Collection verdadeiro 50

51 Interfaces Interfaces de coleção são genéricas public interface Collection<E>... <E> significa que a interface é genérica Declaração de instância de Collection Especificar o tipo de objeto contido na coleção List<String> list = new ArrayList<String>(); Permite verificação em tempo de compilação Tipo de objeto a ser armazenado na coleção está correto 51

52 Interfaces Collection Set List Raiz da hierarquia de coleções Usada quando uma generalidade máxima é necessária Java não provê implementações diretas desta interface Coleção que não pode conter elementos duplicados Modela a abstração matemática de conjuntos Exemplo: processos executando em uma máquina Chamada de seqüência, é uma coleção ordenada Pode conter elementos duplicados. O usuário de List pode controlar a posição em que um elemento é inserido e acessa elementos através de um índice Noção de vetores 52

53 Interfaces Queue Coleção de elementos com prioridades associadas Provê operações de inserção, extração e inspeção Tipicamente ordena elementos no esquema FIFO Entre as exceções, estão as filas de prioridade Map Objeto que mapeia chaves e valores Não pode conter chaves duplicadas Corresponde ao uso de Hashtables SortedSet Set com elementos em ordem ascendente SortedMap Map com chaves em ordem ascendente 53

54 Interface Collection: Operações public interface Collection<E> extends Iterable<E> { //Basic operations int size(); boolean isempty(); boolean contains(object element); boolean add(e element); //optional boolean remove(object element); //optional Iterator iterator(); //Bulk operations boolean containsall(collection<?> c); boolean addall(collection<? extends E> c); //optional boolean removeall(collection<?> c); //optional boolean retainall(collection<?> c); //optional void clear(); //optional //Array operations Object[] toarray(); <T> T[] toarray(t[] a); } 54

55 Interface Collection: Iterador Iterador Permite percorrer uma coleção e remover elementos seletivamente. public interface Iterator<E> { } boolean hasnext(); E next(); void remove(); //optional hasnext() retorna true se a iteração possui mais elementos next() retorna o próximo elemento na iteração. remove() remove o último elemento retornado pelo next() pode ser chamado somente uma vez por next() levanta exceção caso a regra seja violada 55

56 Interface Collection: Iterador Como usar um Iterator para filtrar uma coleção Remove elementos específicos. static void filter(collection c) { for (Iterator i = c.iterator(); i.hasnext(); ) if (!cond(i.next())) i.remove(); } Código acima é polimórfico funciona para qualquer Collection sem levar em conta a implementação! 56

57 Interface Collection e Arrays Métodos toarray são providos como uma ponte entre coleçõese APIs antigasbaseadasemarrays Forma mais simples cria um novo array de Object Forma complexa permite que o chamador especifique o tipo Suponha que c é um Collection; então o uso mais simples: Object[] a = c.toarray() Sabe-se que c contém strings; então a forma complexa: String[] a = c.toarray(new String[0]) 57

58 Interface Set: Implementações Implementa a abstração matemática de conjuntos Contém somente métodos herdados de Collection Adiciona a restrição de que duplicações não são possíveis Três implementações de Set: HashSet elementos em uma tabela hash melhor performance nenhuma garantia quanto à ordem de iteração TreeSet elementos em uma árvore vermelho-preto substancialmente mais lento que HashSet ordena elementos baseados em seus valores. LinkedHashSet elementos em uma tabela hash associada a uma lista encadeada apenas um pouco mais lento que HashSet ordena elementos por ordem de inserção 58

59 Interface Set: Operações public interface Set<E> extends Collection<E> { //Basic operations int size(); boolean isempty(); boolean contains(object element); boolean add(e element); //optional boolean remove(object element); //optional Iterator iterator(); //Bulk operations boolean containsall(collection<?> c); boolean addall(collection<? extends E> c); //optional boolean removeall(collection<?> c); //optional boolean retainall(collection<?> c); //optional void clear(); //optional //Array operations Object[] toarray(); <T> T[] toarray(t[] a); } 59

60 Interface Set: Operacões Adaptação de métodos Collection para Set ( s é um Set): s.size(): retorna a cardinalidade de s ; s.isempty(): retorna um booleano indicando se s é {}; s.add(e): adiciona elemento especificado a s se este não está presente e retorna booleano indicando se houve adição; s.remove (Object): remove elemento especificado de s e retorna booleano indicando se houve remoção; s.iterator(): retorna um Iterator de s; s1.containsall(s2): retorna true se s2 é subconjunto de s1; s1.addall(s2): transforma s1 na união de s1 e s2; s1.retainall(s2): transforma s1 na interseção de s1 e s2; s1.removeall(s2): transforma s1 na diferença entre s1 e s2; s.toarray(): o mesmo que para Collection. 60

61 Interface Set: Exemplo import java.util.*; public class FindDups { public static void main(string args[]) { Set<String> s = new HashSet<String>(); for (String a : args) if (!s.add(a)) System.out.println("Duplicate: " + a); System.out.println(s.size()+" distinct words: "+s); } } Toma palavras em args[] e imprime uma mensagem que indica se há duplicação de palavras o número de palavras distintas lista das plavras duplicadas eliminadas 61

62 Interface Set: Exemplo Código sempre Refere-se ao Collection por Set (interface) Em vez de HashSet (implementação) Prática é fortemente recomendada Torna possível flexibilizar a mudança de tipo de implementação apenas pela mudança do construtor Se variáveis referentes a uma coleção ou a parâmetros usados são declarados a partir de tipos de implementação Todas elas deverão também ser modificadas Isto vale para o uso de interfaces e implementações em geral! 62

63 Interface Set: Exemplo Saída do programa java FindDups i came i saw i left : Duplicate: i Duplicate: i 4 distinct words: [i, left, saw, came] HashSet não dá garantias quanto à ordem dos elementos no Set Para obter as palavras em ordem alfabética, basta modificar HashSet para TreeSet Nova saída para java FindDups i came i saw i left Duplicate word: i Duplicate word: i 4 distinct words: [came, i, left, saw] 63

64 Interface Set: Exemplo import java.util.*; public class FindDups2 { public static void main(string args[]) { Set<String> uniques = new HashSet<String>(); Set<String> dups = new HashSet<String>(); for (String a : args) if (!uniques.add(a)) dups.add(a); uniques.removeall(dups); System.out.println("Unique words: " + uniques); System.out.println("Duplicate words: " + dups); } } Nova saída para java FindDups2 i came i saw i left : Unique words: [left, saw, came] Duplicate words: [i] 64

65 Interface List: Implementações List Collection ordenado Pode conter duplicações List inclui as seguintes operações (além das de Collection) acesso posicional manipulação de elementos baseada na posição numérica destes na lista busca procura por um objeto especificado na lista e retorna sua posição numérica Iteração extende a semântica de Iterator, a fim de tirar vantagem da natureza seqüencial da lista de intervalo operações em intervalos arbitrários da lista Implementações para List ArrayList (possui a melhor performance) LinkedList 65

66 Interface List: Operações public interface List<E> extends Collection<E> { //Positional access E get(int index); E set(int index, E element); //optional boolean add(e element); //optional void add(int index, E element); //optional E remove(int index); //optional abstract boolean addall(int index, Collection<? extends E> c); //optional //Search int indexof(object o); int lastindexof(object o); //Iteration ListIterator<E> listiterator(); ListIterator<E> listiterator(int index); //Range-view List<E> sublist(int from, int to); } 66

67 Interface List: Operações Operações herdadas de Collection têm a mesma semântica Apenas remove() sempre remove a primeira ocorrência na lista do elemento especificado Operações add e addall sempre adicionam os novos elementos no final da lista. Operações posicionais get, set, add e remove têm a mesma semântica de operações em vetores. set e remove retornam valor antigo sobrescrito ou removido addall insere elementos começando na posição especificada Operações de busca indexof e lastindexof têm a mesma semântica de operações em vetores 67

68 Interface List: Operações Operações de iteração List provê um iterator sofisticado que permite percorrer a lista em ambas direções modificar a lista durante a iteração obter posição do iterador public interface ListIterator<E> extends Iterator<E> { boolean hasnext(); E next(); boolean hasprevious(); E previous(); int nextindex(); int previousindex(); void remove(); //optional void set(e o); //optional void add(e o); //optional } 68

69 Interface List: Operações Operações de intervalo sublist(int fromindex, int toindex) retorna uma visão de List que corresponde ao intervalo que vai de fromindex, inclusive, para a toindex, exclusive. 69

70 Exercícios Implementar um programa utilizando coleções Dar preferência ao uso das coleções List e Map Torne possível a reusabilidade, desenvolvendo o programa de forma que a mudança de implementação de uma coleção possa ser realizada rapidamente 70

71 Persistência JDBC

72 Introdução JDBC (Java Database Connectivity) Biblioteca de classes Java Faz conexão com bancos de dados (BDs) relacionais desenvolvidos por Microsoft, Sybase, Oracle, Informix, etc. Driver Ponte para um banco de dado relacional fornecido por uma empresa Driver JDBC ponte entre o JDBC e um banco de dado relacional fornecido por uma empresa Gerenciador de Drivers controla os drivers exigidos para o acesso aos registros de BDs, o que permite a independência de JDBC dos formatos BDs 72

73 Introdução Driver JDBC como ponte para a fonte de dados Possível recuperar e armazenar dados diretamente da linguagem Java Biblioteca JDBC também é um driver especial Liga a outro padrão de conectividade de BDs chamado ODBC ODBC (Open Data Base Connectivity) Biblioteca da Microsoft para o acesso a BDs SQL Gerenciado pelo ODBC Data Source Administrator Ponte JDBC-ODBC Conversão de chamadas JDBC para chamadas ODBC 73

74 Introdução 74

75 Introdução Start -> Settings -> Control Panel -> ODBC Data Sources 75

76 Visão Geral Uso JDBC (com ou sem ODBC) Não há necessidade de adaptação a formatos específicos de BDs existem drivers que fazem o acesso direto aos BDs a linguagem SQL (padrão!) é utilizada no código JDBC inclui classes para cada uma das tarefas que costumam ser associadas à utilização de BDs estabelecimento de uma conexão com um banco de dados criação de uma consulta usando SQL execução da consulta SQL no banco de dados exibição dos registros resultantes Classes que usam JDBC Seguem o conhecido modelo de programação com instruções SQL 76

77 Visão Geral Configuração de dados Duas alternativas ponte JDBC-ODBC driver JDBC Uso da ponte JDBC-ODBC driver JDBC-ODBC incluído com a linguagem Java 2: sun.jdbc.odbc.jdbcodbcdriver; driver ODBC; fonte de dados ODBC associada ao driver anterior usando o software ODBC Data Source Administrator Uso de driver JDBC obter e instalar o driver (não está incluído em Java!) associar uma fonte de dados ao driver JDBC 77

78 Usando JDBC-OBDC: Fontes de Dados Todas as fontes de dados ODBC devem receber um nome descritivo curto Este nome é usado em Java para estabelecer uma conexão com o banco de dados a que a fonte se refere 78

79 Usando JDBC-OBDC: Fontes de Dados 79

80 Usando JDBC-OBDC: Fontes de Dados 80

81 Usando JDBC-OBDC: Fontes de Dados 81

82 Usando JDBC-OBDC: Fontes de Dados 82

83 Usando JDBC-OBDC: Fontes de Dados 83

84 Usando JDBC-OBDC: Exemplo 84

85 Usando JDBC-OBDC: Exemplo Entrada do programa: Poland Saída do programa: 85

86 Usando um Driver JDBC: Fontes de Dados Alguns drivers JDBC estão disponíveis para avaliação O JDataConnectServer da NetDirect está disponível para download de teste a partir do endereço JDataConnectServer usa o ODBC Data Source Administrator para criar uma nova fonte de dados associada a um banco de dados 86

87 Usando um Driver JDBC: Exemplo 87

88 Usando um Driver JDBC: Exemplo Antes que o programa seja executado com êxito, JDataConnectServer precisa ser iniciado A referência a localhost:1150 significa localhost nome da máquina que atua como servidor (a máquina local, neste caso) 1150 número de porta padrão em que o servidor JDataConnect é executado JDataConnectServer pode ser usado em servidores remotos na Internet localhost poderia ser substituído por um endereço na Internet 88

89 JDBC: Carregando Drivers Se a ponte JDBC-ODBC é usada Seguinte linha de código carrega o driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Driver JDBC Documentação indica o nome a ser usado Se o nome do driver é jdbc.driverxyz, então a seguinte linha carrega o driver: Class.forName("jdbc.DriverXYZ"); Não é necessário criar uma instância do driver Chamada Class.forName faz isso automaticamente Após o carregamento Driver está disponível para efetuar conexões com um BD 89

90 JDBC: Estabelecendo a conexão Forma geral para o estabelecimento de uma conexão Connection con = DriverManager.getConnection(url, "mylogin", "mypassword"); Se a ponte JDBC-ODBC é usada url começa por jdbc:odbc: Resto da url é o nome da fonte de dados fonte ODBC chamada Fred : jdbc:odbc:fred. "mylogin: nome usado para logar no BD mypassword : senha Se nome e a senha são Fernanda e J8 String url = "jdbc:odbc:fred"; Connection con = DriverManager.getConnection(url, "Fernanda", "J8"); 90

91 JDBC: Estabelecendo a conexão Se um driver JDBC é usado Documentação indica qual subprotocolo usar O que colocar após jdbc: na url Se acme é o subprotocolo, a url será jdbc:acme:. Documentação fornece outras diretivas se necessário Última parte da url identifica a fonte de dados Retorno do método DriverManager.getConnection Conexão aberta para a criação de comandos JDBC Comandos contêm instruções SQL a serem efetuadas sobre um BD 91

92 JDBC: Criando comandos Objeto Statement Pode enviar um comando SQL ao gerenciador de BD Para criar um objeto Statement, é necessária uma instância de uma conexão ativa Na linha a seguir, um objeto Connection chamado con é usado para criar um comando Statement stmt : Statement stmt = con.createstatement(); Após a criação de um objeto Statement Deve ser executado sobre ele o comando SQL apropriado Para um comando SELECT, o método de Statement usado é executequery Para comandos que criam ou modificam tabelas, o método a usar é executeupdate createtablecoffees = "CREATE TABLE COFFEES " + "(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, " + "SALES INTEGER, TOTAL INTEGER) ; stmt.executeupdate(createtablecoffees); 92

93 JDBC: Recuperando valores JDBC Retorna o resultado de um comando em um objeto ResultSet Linha a seguir Declara o objeto ResultSet rs e assinala o resultado do comando stmt a rs ResultSet rs = stmt.executequery( "SELECT COF_NAME, PRICE FROM COFFEES"); O objeto ResultSet rs contém linhas de cafés e preços Método next move o cursor no objeto para a próxima linha Sucessivas invocações de next movem o cursor uma linha por vez do início ao fim de rs 93

94 JDBC: Recuperando valores O método getxxx recupera o valor de cada coluna. Primeira coluna em cada linha de rs é COF_NAME (armazena um valor de tipo SQL VARCHAR) Método para recuperação de um VARCHAR é getstring Segundacolunaarmazenaum valor de tiposql FLOAT Método para recuperação de valores FLOAT é getfloat. Linha de código que acessa os valores armazenados na linha corrente de rs e imprime cada linha com o nome seguido por três espaços e o preço String query = "SELECT COF_NAME, PRICE FROM COFFEES"; ResultSet rs = stmt.executequery(query); while (rs.next()) { String s = rs.getstring("cof_name"); float n = rs.getfloat("price"); System.out.println(s + " " + n); } 94

95 JDBC: Resumo 95

96 Exercícios Implemente um programa que usa a biblioteca JDBC para: estabelecer uma conexão com uma fonte de dados; criar tabelas em um banco de dados associado à fonte; inserir dados nos campos das tabelas criadas; executar consultas no banco de dados usando SQL; exibir os registros recuperados através de consulta. Para fazer o exercício, use o tutorial da Sun sobre JDBC. 96

97 Referências [1] Tutorial da Sun Microsystems. 97

API e Coleções Java. Sérgio Luiz Ruivace Cerqueira

API e Coleções Java. Sérgio Luiz Ruivace Cerqueira API e Coleções Java Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java API Introdução API Endereço http://download.oracle.com/javase/6/docs/api/ API - Descrição API - Resumo API - Detalhes Coleções

Leia mais

PRDS - Programa de Residência em Desenvolvimento de Software

PRDS - Programa de Residência em Desenvolvimento de Software PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena lucena@inf.puc-rio.br Rodrigo Paes rbp@les.inf.puc-rio.br Gustavo Carvalho

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

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

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com Coleções List Set Map Classes e interfaces do pacote java.util que representam listas, conjuntos e mapas. Solução flexível para armazenar objetos. Quantidade

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

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

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Coleções Avançadas Programação Orientada a Objetos Java Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Objetivos Aprender como o conceito de coleção pode ser expresso de forma genérica Examinar

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

Programação com Acesso a Banco de Dados

Programação com Acesso a Banco de Dados Campus Ipanguaçu Curso: Técnico em Informática Programação com Acesso a Banco de Dados AULA 17 ACESSO A BANCO DE DADOS COM JDBC PROF.: CLAYTON M. COSTA 2 011.2 Introdução Aplicação + Banco de Dados: Funcionalidade

Leia mais

Programação Orientada a Objetos. Encapsulamento

Programação Orientada a Objetos. Encapsulamento Programação Orientada a Objetos Encapsulamento de Dados Ocultação de dados Garante a transparência de utilização dos componentes do software, facilitando: Entendimento Reuso Manutenção Minimiza as interdependências

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

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: Coleções Material elaborado com contribuição do Professor Luiz André Coleções Uma

Leia mais

Coleções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade

Coleções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade Page 1 podem ser comparadas com arrays, visto que também apresentam a capacidade de armazenar referências para vários objetos. Entretanto, as coleções apresentam uma gama de funcionalidades bem maior do

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

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Classes abstratas São classes que não podem ser instanciadas, porque representam

Leia mais

Banco de Dados. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Banco de Dados. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Banco de Dados Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Roteiro Mapeamento de objetos para modelo relacional Estratégias de persistência Persistência JDBC Mapeando Objetos para o Modelo Relacional

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

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

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Introdução GUI Classes abstratas São classes que não podem ser instanciadas,

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

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding Introdução à Programação Interface, Polimorfismo e Dynamic Binding Interface Programador Java PLENO Possuir sólida experiência em programação Desenvolvimento na linguagem JAVA Webservice, Struts ou JSF(desejável)

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

Java Util Collections - Interfaces Interfaces definidas

Java Util Collections - Interfaces Interfaces definidas Java Util Collections - Interfaces Interfaces definidas 245 Collection Raiz da hierarquia Grupo mais genérico de elementos Não garante nas implementações Duplicatas Ordenação Não possui nenhuma implementação

Leia mais

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel.

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel. 5COP088 Laboratório de Programação Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Métodos hashcode(), equals() e tostring(); 2) Conjuntos; 3) Genéricos; 4) Resumo. 2 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

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais

Leia mais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

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

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

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 14 Herança a e Polimorfismo Objetivos do Capítulo Apresentar os conceitos de herança e de polimorfismo. Explorar os diversos recursos disponíveis no Java para a aplicação da herança e do polimorfismo

Leia mais

JDBC Java Database Connectivity

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

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

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

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

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

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Coleções em Java. Prof. Gustavo Willam Pereira ENG10082 Programação II. Créditos: Prof. Clayton Vieira Fraga Filho

Coleções em Java. Prof. Gustavo Willam Pereira ENG10082 Programação II. Créditos: Prof. Clayton Vieira Fraga Filho Coleções em Java Prof. Gustavo Willam Pereira ENG10082 Programação II Créditos: Prof. Clayton Vieira Fraga Filho Introdução O que é uma coleção? Um objeto que agrupa múltiplos elementos em uma única unidade

Leia mais

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

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs? BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Um Banco

Leia mais

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes Programação Orientada a Objetos e Java - Introdução Carlos Lopes POO e Java Objetivo: proporcionar uma visão dos conceitos de POO e do seu uso na estruturação dos programas em Java. Classes e objetos em

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

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

JAVA JDBC COMO FUNCIONA. Programação Orientada a Objetos Flávio de Oliveira Silva 315. Programação Orientada a Objetos Flávio de Oliveira Silva 316 JAVA JDBC 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 OBDC O ODBC (Open Database

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Programação Orientada a Objetos em java. Polimorfismo

Programação Orientada a Objetos em java. Polimorfismo Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 01 Orientação a Objetos Edirlei Soares de Lima Paradigmas de Programação Um paradigma de programação consiste na filosofia adotada na

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

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

UML Aspectos de projetos em Diagramas de classes

UML Aspectos de projetos em Diagramas de classes UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada

Leia mais

Tópicos em Engenharia de Computação

Tópicos em Engenharia de Computação Tópicos em Engenharia de Computação Introdução / Revisão UML e POO (JAVA) Prof. Ivan Prof. Zagari UML Linguagem Unificada. Não é metodologia, processo ou método. Versão atual 2.0 3 categorias de Diagramas

Leia mais

Sumário. Uma visão mais clara da UML

Sumário. Uma visão mais clara da UML Instituto Federal de Santa Catarina Câmpus Chapecó Ensino Médio Integrado em Informática Módulo V Unidade Curricular: Engenharia de Software Professora: Lara P. Z. B. Oberderfer Uma visão mais clara da

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

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

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

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

Orientação a Objetos com Java

Orientação a Objetos com Java Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Apresentação 3: Orientação Objetos: Conceitos Básicos Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;

Leia mais

Acesso a Bancos de Dados (JDBC) Autor: Cleyton Maciel (clayton.maciel@ifrn.edu.br) Adaptação: Pedro Baesse (pedro.baesse@ifrn.edu.

Acesso a Bancos de Dados (JDBC) Autor: Cleyton Maciel (clayton.maciel@ifrn.edu.br) Adaptação: Pedro Baesse (pedro.baesse@ifrn.edu. Acesso a Bancos de Dados (JDBC) Autor: Cleyton Maciel (clayton.maciel@ifrn.edu.br) Adaptação: Pedro Baesse (pedro.baesse@ifrn.edu.br) JDBC Conceito Tipos Transações Tipos SQL e JAVA Conexão JDBC Implementação

Leia mais

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

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

Leia mais

Polimorfismo. Prof. Leonardo Barreto Campos 1

Polimorfismo. Prof. Leonardo Barreto Campos 1 Polimorfismo Prof. Leonardo Barreto Campos 1 Sumário Introdução; Polimorfismo; Polimorfismo Java; Métodos Abstratos Java Classes Abstratas Java Exercício - Java Polimorfismo C++ Classe Abstrata C++; Funções

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

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

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

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

Leia mais

Padrão Básico de Projeto: Herança versus Composição

Padrão Básico de Projeto: Herança versus Composição Padrão Básico de Projeto: Herança versus Composição Composição e Herança Composição e herança são dois mecanismos para reutilizar funcionalidade Alguns anos atrás (e na cabeça de alguns programadores ainda!),

Leia mais

Profº. Enrique Pimentel Leite de Oliveira

Profº. Enrique Pimentel Leite de Oliveira Profº. Enrique Pimentel Leite de Oliveira O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam

Leia mais

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. 1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido

Leia mais

Guia de Fatores de Qualidade de OO e Java

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

Leia mais

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1. Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever

Leia mais

Banco de Dados. Prof. Leonardo Barreto Campos 1

Banco de Dados. Prof. Leonardo Barreto Campos 1 Banco de Dados Prof. Leonardo Barreto Campos 1 Sumário Introdução; Banco de Dados Relacionais; SQL; MySQL; Manipulando Banco de Dados com o JDBC; Bibliografia; Prof. Leonardo Barreto Campos 2/25 Introdução

Leia mais

Curso de Java Módulo III JDBC Fábio Mengue fabio@unicamp.br Centro de Computação - Unicamp

Curso de Java Módulo III JDBC Fábio Mengue fabio@unicamp.br Centro de Computação - Unicamp Curso de Java Módulo III JDBC Fábio Mengue fabio@unicamp.br Centro de Computação - Unicamp Conceitos A tecnologia JDBC foi criada para facilitar o acesso de programas Java a qualquer banco de dados relacional.

Leia mais

Programação Orientada a Objetos em Java. Herança

Programação Orientada a Objetos em Java. Herança Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Herança Professor: César Melo Slides baseados em materiais preparados

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

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2 Desenvolvimento Web III Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2 Prof. Mauro Lopes 1-31 21 Objetivos Nesta aula iremos trabalhar a manipulação de banco de dados através

Leia mais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados. BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Hoje é

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

(UFF) JDBC (I) TEPIS II

(UFF) JDBC (I) TEPIS II Aula 20: JDBC (I) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) JDBC (I) TEPIS II 1 / 33 JDBC: Introdução Especificação que provê acesso

Leia mais

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA Introdução ao Visual Studio VB.Net Programação Estruturada 1 Nesse momento inicial não iremos programar em VB.Net, usando o Visual Studio, mas conhecer alguns comandos e variáveis usadas em uma linguagem

Leia mais

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena Trabalho Experimental Sistema de Gestão Hoteleira 1. Objetivo Este trabalho tem o objetivo de consolidar o conhecimento sobre UML e

Leia mais

UML: Diagrama de Casos de Uso, Diagrama de Classes

UML: Diagrama de Casos de Uso, Diagrama de Classes UML: Diagrama de Casos de Uso, Diagrama de Classes Diagrama de Casos de Uso O modelo de casos de uso visa responder a pergunta: Que usos (funcionalidades) o sistema terá? ou Para que aplicações o sistema

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Acessando bancos de dados com o JDBC

Acessando bancos de dados com o JDBC Acessando bancos de dados com o JDBC Notas de Aula: Java Como Programar, 8/E Prof. Geraldo Braz Junior Introdução Um banco de dados é uma coleção organizada de dados. Um sistema de gerenciamento de bancos

Leia mais

Introdução Banco de Dados

Introdução Banco de Dados Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Padrão Básico de Projeto: Interfaces e Polimorfismo

Padrão Básico de Projeto: Interfaces e Polimorfismo Padrão Básico de Projeto: Interfaces e Polimorfismo Herança de implementação versus herança de interface Há uma diferença grande entre uma classe e seu tipo A classe define ambos um tipo e uma implementação

Leia mais

UML: Diagrama de Classes

UML: Diagrama de Classes UML: Diagrama de Classes UML Diagrama de Classes Introdução Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula Introdução - Diagrama de Classes Mostra um conjunto de classes

Leia mais

Unidade IV: Ponteiros, Referências e Arrays

Unidade IV: Ponteiros, Referências e Arrays Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática

Leia mais

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define

Leia mais

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código } Este documento tem o objetivo de demonstrar os comandos e sintaxes básicas da linguagem Java. 1. Alguns passos para criar programas em Java As primeiras coisas que devem ser abordadas para começar a desenvolver

Leia mais

Introdução ao PHP. Prof. Késsia Marchi

Introdução ao PHP. Prof. Késsia Marchi Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext

Leia mais