jdbce sql - prof vladimir camelo

85
Linguagem de Programação Orientada a Objetos (LPOO) 01/08/12 [email protected] 1 Interface gráfica em Java e acesso a Banco de dados Interface gráfica em Java e acesso a Banco de dados 01/08/12 [email protected] 1 São Paulo, 2012 São Paulo, 2012 Universidade Paulista (UNIP) Universidade Paulista (UNIP) Introdução a Java Database Conectivity Introdução a Java Database Conectivity (JDBC) (JDBC) Prof. MSc. Vladimir Camelo Prof. MSc. Vladimir Camelo [email protected] [email protected]

Upload: marcio-jose

Post on 08-Nov-2015

12 views

Category:

Documents


1 download

DESCRIPTION

JDBCe SQL - Prof Vladimir Camelo

TRANSCRIPT

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 1

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 1

    So Paulo, 2012So Paulo, 2012

    Universidade Paulista (UNIP)Universidade Paulista (UNIP)

    Introduo a Java Database Conectivity Introduo a Java Database Conectivity (JDBC)(JDBC)

    Prof. MSc. Vladimir CameloProf. MSc. Vladimir [email protected]@gmail.com

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 2

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 2

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 3

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 3

    Os programas Java comunicam-se com BD e manipulam seus dados Os programas Java comunicam-se com BD e manipulam seus dados utilizando a API JDBC (Java DataBase Connection).utilizando a API JDBC (Java DataBase Connection).

    Um driver JDBC permite aos aplicativos Java conectar-se a um BD Um driver JDBC permite aos aplicativos Java conectar-se a um BD em um SGDBMS particular e permite aos programadores manipular em um SGDBMS particular e permite aos programadores manipular esse banco de dados utilizando a API JDBC.esse banco de dados utilizando a API JDBC.

    O JDBC quase sempre utilizado com um BD relacional, mas pode O JDBC quase sempre utilizado com um BD relacional, mas pode ser utilizado com qualquer origem de dados baseada em tabela.ser utilizado com qualquer origem de dados baseada em tabela.

    Introduo a JDBCIntroduo a JDBC

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 4

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 4

    Um Banco de dados uma coleo de dados inter-relacionados, Um Banco de dados uma coleo de dados inter-relacionados, representando informaes sobre um domnio especfico.representando informaes sobre um domnio especfico.

    Basicamente uma tabela composta de vrias linhas divididas Basicamente uma tabela composta de vrias linhas divididas em colunas que so identificadas por campos, e cada linha em colunas que so identificadas por campos, e cada linha representa um registro do banco de dados. representa um registro do banco de dados.

    Um Sistema de Gerenciamento de Bancos de Dados (SGDBMS Um Sistema de Gerenciamento de Bancos de Dados (SGDBMS DataBase Management System) fornece mecanismos para DataBase Management System) fornece mecanismos para armazenar, organizar, recuperar e modificar dados para muitos armazenar, organizar, recuperar e modificar dados para muitos usurios.usurios.

    Introduo a JDBCIntroduo a JDBC

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 5

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 5

    Para manipular informaes em um SGDBMS utilizada uma Para manipular informaes em um SGDBMS utilizada uma linguagem padro para BD conhecida como Structured Query linguagem padro para BD conhecida como Structured Query Language (SQL).Language (SQL).

    A SQL um padro internacional utilizada em BD relacionais para A SQL um padro internacional utilizada em BD relacionais para realizar consultas, isto , solicitar informaes que satisfazem os realizar consultas, isto , solicitar informaes que satisfazem os critrios dados, e manipular estes dados.critrios dados, e manipular estes dados.

    Alguns SGDBRMS populares so MS SQL Server, Oracle, Sybase, Alguns SGDBRMS populares so MS SQL Server, Oracle, Sybase, IBM DB2, Informix, PostgreSQL e MySQL.IBM DB2, Informix, PostgreSQL e MySQL.

    Introduo a JDBCIntroduo a JDBC

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 6

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 6

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 7

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 7

    Linguagem SQLLinguagem SQL

    A origem de SQL e do modelo de BD relacional reporta ao A origem de SQL e do modelo de BD relacional reporta ao Dr. E. F. Dr. E. F. CoddCodd, pesquisador da IBM, primeiro a publicar um artigo sobre a , pesquisador da IBM, primeiro a publicar um artigo sobre a idia de banco de dados relacional em idia de banco de dados relacional em Junho de 1970Junho de 1970..

    A linguagem SQL for originalmente desenvolvida na IBM em um A linguagem SQL for originalmente desenvolvida na IBM em um projeto de SGBDR, como uma linguagem de consulta a BD projeto de SGBDR, como uma linguagem de consulta a BD denominada SEQUEL, sigla para Structured English Query Language denominada SEQUEL, sigla para Structured English Query Language (Linguagem de Consulta Estruturada em Ingls).(Linguagem de Consulta Estruturada em Ingls).

    A linguagem A linguagem SEQUEL2SEQUEL2 foi descrita na edio de foi descrita na edio de Novembro de 1976 Novembro de 1976 do IBM Journal of R&Ddo IBM Journal of R&D..

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 8

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 8

    O nome foi posteriormente mudado para SQL (Structured Query O nome foi posteriormente mudado para SQL (Structured Query Language Linguagem de Consulta Estruturada), por razes legais.Language Linguagem de Consulta Estruturada), por razes legais.

    No final da dcada de 70, duas outras companhias iniciaram No final da dcada de 70, duas outras companhias iniciaram desenvolvimento de produtos similares (Oracle e Ingres).desenvolvimento de produtos similares (Oracle e Ingres).

    A IBM tambm implementou SQL em seus sistemas de BD DB2 e A IBM tambm implementou SQL em seus sistemas de BD DB2 e SQL/DS.SQL/DS.

    Entre os anos 80 e 90, os produtos com SQL se multiplicaram e hoje Entre os anos 80 e 90, os produtos com SQL se multiplicaram e hoje SQL largamente implementada e aceita como o padro de fato da SQL largamente implementada e aceita como o padro de fato da indstria para linguagem de acesso a BD, desde sistemas desktop a indstria para linguagem de acesso a BD, desde sistemas desktop a mainframesmainframes

    Linguagem SQLLinguagem SQL

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 9

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 9

    Em 1986 o Em 1986 o American National Standard Institute ( ANSI )American National Standard Institute ( ANSI ), publicou , publicou um padro SQL.um padro SQL.

    A ltima especificao publica pelo ANSI foi em 1992. Hoje a A ltima especificao publica pelo ANSI foi em 1992. Hoje a linguagem SQL conhecida como SQL ANSI-92.linguagem SQL conhecida como SQL ANSI-92.

    Apartir de ento a SQL estabeleceu-se como linguagem padro de Apartir de ento a SQL estabeleceu-se como linguagem padro de Banco de Dados Relacional.Banco de Dados Relacional.

    Linguagem SQLLinguagem SQL

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 10

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 10

    Banco de dados relacionalBanco de dados relacional

    Um BD relacional uma representao lgica de dados que permite o Um BD relacional uma representao lgica de dados que permite o acesso aos dados sem considerar sua estrutura fsica.acesso aos dados sem considerar sua estrutura fsica.

    Em um BD so armazenados as tabelas com as informaes.Em um BD so armazenados as tabelas com as informaes.

    As tabelas so compostas de linhas (registros) e as linhas so As tabelas so compostas de linhas (registros) e as linhas so compostas de colunas (campos) nas quais os valores so compostas de colunas (campos) nas quais os valores so armazenados.armazenados.

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 11

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 11

    Banco de dados relacionalBanco de dados relacional

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 12

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 12

    Diagrama Entidade RelacionamentoDiagrama Entidade Relacionamento

    ER (entity relationship), tambm conhecido como Entidade-ER (entity relationship), tambm conhecido como Entidade-Relacionamento. Esse diagrama mostra as tabelas no BD e os Relacionamento. Esse diagrama mostra as tabelas no BD e os relacionamentos entre elas.relacionamentos entre elas.

    O primeiro compartimento em cada caixa contm o nome da tabela. O primeiro compartimento em cada caixa contm o nome da tabela. Os nomes em itlico so chaves primrias.Os nomes em itlico so chaves primrias.

    Uma chave primria da tabela identifica unicamente cada linha na Uma chave primria da tabela identifica unicamente cada linha na tabela e deve ser nico na tabela. Isso conhecido como Regra de tabela e deve ser nico na tabela. Isso conhecido como Regra de Integridade de Entidade.Integridade de Entidade.

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 13

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 13

    Diagrama Entidade RelacionamentoDiagrama Entidade Relacionamento

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 14

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 14

    As linhas que conectam as tabelas no diagrama representam os As linhas que conectam as tabelas no diagrama representam os relacionamentos entre as tabelas.relacionamentos entre as tabelas.

    A linha entre as tabelas Editores e Titulos, na extremidade Editores, A linha entre as tabelas Editores e Titulos, na extremidade Editores, h um 1 e, na extremidade Titulos, h um smbolo de infinito (h um 1 e, na extremidade Titulos, h um smbolo de infinito (), ), indicando m relacionamento de um para muitos em que cada editor indicando m relacionamento de um para muitos em que cada editor na tabela Editores pode ter um nmero arbitrrio de livros na tabela na tabela Editores pode ter um nmero arbitrrio de livros na tabela Titulos.Titulos.

    A linha de relacionamento vincula a coluna chave primria na tabela A linha de relacionamento vincula a coluna chave primria na tabela Editores com a coluna chave estrangeira na tabela Titulos. O mesmo Editores com a coluna chave estrangeira na tabela Titulos. O mesmo ocorre nos demais relacionamentos.ocorre nos demais relacionamentos.

    Diagrama Entidade RelacionamentoDiagrama Entidade Relacionamento

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 15

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 15

    Componentes da linguagem SQL e operadoresComponentes da linguagem SQL e operadores

    Linguagem de definio de dados (Data Definition Language - DDL)Linguagem de definio de dados (Data Definition Language - DDL)

    Inclui a sintaxe mais utilizada para definir, alterar e eliminar as Inclui a sintaxe mais utilizada para definir, alterar e eliminar as tabelas do banco de dados.tabelas do banco de dados.

    Criao dos esquemas (estrutura das tabelas, definio de Criao dos esquemas (estrutura das tabelas, definio de vises...), excluso, criao de ndices, modificao nos vises...), excluso, criao de ndices, modificao nos esquemas...esquemas...

    Lista das principais Sentenas:Lista das principais Sentenas:

    CREATE (criar);CREATE (criar);

    ALTER (alterar); eALTER (alterar); e

    DROP (apagar).DROP (apagar).

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 16

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 16

    Linguagem de consulta de dados (Data Query Language - DQL)Linguagem de consulta de dados (Data Query Language - DQL)

    Contm os componentes da linguagem e conceitos para a Contm os componentes da linguagem e conceitos para a consulta e recuperao da informao armazenados em tabelas.consulta e recuperao da informao armazenados em tabelas.

    Sentena:Sentena:

    SELECT (listar linhas)SELECT (listar linhas)

    Componentes da linguagem SQL e operadoresComponentes da linguagem SQL e operadores

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 17

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 17

    Linguagem de Manuteno de dados (Data Manipulation Language - Linguagem de Manuteno de dados (Data Manipulation Language - DML)DML)

    Contm os componentes da linguagem e conceitos para a Contm os componentes da linguagem e conceitos para a manipulao da informao armazenados em tabelas.manipulao da informao armazenados em tabelas.

    Insero, excluso e alterao;Insero, excluso e alterao;

    Incorporao em linguagens imperativas (ex.: pascal, ...)Incorporao em linguagens imperativas (ex.: pascal, ...)

    Lista das principais Sentenas:Lista das principais Sentenas:

    INSERT (inserir dados),INSERT (inserir dados),

    DELETE (apagar dados); eDELETE (apagar dados); e

    UPDATE (atualizar dados).UPDATE (atualizar dados).

    Componentes da linguagem SQL e operadoresComponentes da linguagem SQL e operadores

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 18

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 18

    OperadoresOperadores

    Operadores lgicos: AND, OROperadores lgicos: AND, OR

    Operadores de negao:NOTOperadores de negao:NOT

    Operadores aritmticos: *, /, -, +Operadores aritmticos: *, /, -, +

    Operadores de comparao:Operadores de comparao:

    = (igualdade),= (igualdade),

    != (diferena),!= (diferena),

    ==>=

    titles must be in boldface, 12pt, flush left.titles must be in boldface, 12pt, flush left.

    Componentes da linguagem SQL e operadoresComponentes da linguagem SQL e operadores

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 19

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 19

    Linguagem SQLLinguagem SQL

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 20

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 20

    So Paulo, 2012So Paulo, 2012

    Universidade Paulista (UNIP)Universidade Paulista (UNIP)

    Java com acesso a banco de dados MySqlJava com acesso a banco de dados MySql

    Prof. MSc. Vladimir CameloProf. MSc. Vladimir [email protected]@gmail.com

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 21

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 21

    Introduo

    Para acessar o banco de dados MySql, selecione o aplicativo MySql Para acessar o banco de dados MySql, selecione o aplicativo MySql Administrator. Informe Server Host (Nome do servidor onde o banco Administrator. Informe Server Host (Nome do servidor onde o banco de dados est instalado), porta de acesso ao banco de dados, de dados est instalado), porta de acesso ao banco de dados, username (nome de usurio) e password (senha).username (nome de usurio) e password (senha).

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 22

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 22

    Informaes iniciais sobre o MySql.

    Introduo

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 23

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 23

    Utilizao do MySQL

    Para criar uma tabela no Para criar uma tabela no MySqlMySql acesse no menu de gerenciamento o acesse no menu de gerenciamento o item item catalogscatalogs..

    Ao selecionar Ao selecionar catologscatologs ser apresentada uma lista com as tabelas ser apresentada uma lista com as tabelas existentes no banco de dados.existentes no banco de dados.

    Na parte inferior da tela escolha o item Na parte inferior da tela escolha o item create tablecreate table, como mostra a , como mostra a imagem a seguir.imagem a seguir.

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 24

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 24

    Criando um banco de dados

    Aula_Teste

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 25

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 25

    Criando um banco de dados

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 26

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 26

    Criando uma tabela

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 27

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 27

    Criando uma tabela

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 28

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 28

    Criando uma tabela

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 29

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 29

    Criando uma tabela

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 30

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 30

    Comandos SQL padro

    Para criar comandos SQL pode ser utilizado o MySql Command Line Client disponvel no menu Tools do MySql Administrator.

    O primeiro passo selecionar a base de dados a ser utilizada colocando o comando use nome_bd_utilizado.

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 31

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 31

    Para inserir dados na base de dados utilize o comando INSERT do SQL padro. Vamos utilizar o seguinte comando.

    Insert into cliente (nome, endereco, rg) values (vladimir, av. teste,11.111.111-1)

    Comandos SQL padro

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 32

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 32

    Para visualizar os dados inseridos utilize o comando SELECT do SQL padro. Vamos utilizar o seguinte comando.

    Select * from cliente

    Comandos SQL padro

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 33

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 33

    Para alterar os dados inseridos utilize o comando UPDATE do SQL padro. Vamos utilizar o seguinte comando.

    Update cliente set nome = vladimir camelo where idCliente = 1

    Comandos SQL padro

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 34

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 34

    Para visualizar os dados alterados insira novamente o comando SELECT utilizado anteriormente.

    Perceba que o nome do cliente foi alterado.

    Comandos SQL padro

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 35

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 35

    possvel observar que no foi informado o idCliente durante a possvel observar que no foi informado o idCliente durante a insero dos dados do cliente.insero dos dados do cliente.

    Isto por que durante a criao dos campos na tabela cliente, o Isto por que durante a criao dos campos na tabela cliente, o idCliente foi criado como a propriedade idCliente foi criado como a propriedade auto incrementauto increment..

    Desta forma no preciso inserir o cdigo do cliente, sendo Desta forma no preciso inserir o cdigo do cliente, sendo responsabilidade do banco de dados a insero do cdigo sempre responsabilidade do banco de dados a insero do cdigo sempre incrementando mais um ao ltimo cdigo.incrementando mais um ao ltimo cdigo.

    Comandos SQL padro

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 36

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 36

    Vamos excluir um dos dados armazenados utilizando o comando SQL padro DELETE.

    Ser excludo o cliente com o cdigo 3.

    Comandos SQL padro

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 37

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 37

    Perceba que o cliente de cdigo 3 foi excludo da tabela cliente.

    Comandos SQL padro

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 38

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 38

    Perceba que para alterar e excluir um usurio da tabela preciso Perceba que para alterar e excluir um usurio da tabela preciso informar o idCliente deste cliente caso contrrio todos os dados informar o idCliente deste cliente caso contrrio todos os dados armazenados sero alterados ou excludos.armazenados sero alterados ou excludos.

    Comandos SQL padro

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 39

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 39

    Comandos SQL utilizando Query Browser

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 40

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 40

    A nica diferena entre o MySql Command Line Client e o Query Browser que este ltimo apresenta uma interface grfica amigvel ao usurio.

    Comandos SQL utilizando Query Browser

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 41

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 41

    Exerccio

    Crie um banco de dados para paciente.Crie um banco de dados para paciente.

    Insira dados nesta tabela. (Utilize o comando Insira dados nesta tabela. (Utilize o comando insertinsert))

    Selecione estes dados e apresente utilizando o Selecione estes dados e apresente utilizando o MySql Commando MySql Commando Line ClientLine Client e tambm o e tambm o Query BrowserQuery Browser. (utilize o comando . (utilize o comando selectselect))

    Exclua um dos pacientes inseridos. (utilize o comando Exclua um dos pacientes inseridos. (utilize o comando deletedelete))

    Altere os dados de algum paciente. (utilize o comando Altere os dados de algum paciente. (utilize o comando updateupdate))

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 42

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 42

    Para acessar os dados armazenados em uma banco de dados Para acessar os dados armazenados em uma banco de dados MySql devem ser realizados os seguintes passos:MySql devem ser realizados os seguintes passos:

    1.1. Baixe o arquivo Baixe o arquivo mysql-connector-java-5.0.8.tar.gz.mysql-connector-java-5.0.8.tar.gz.

    2.2. Descompacte o arquivo e coloque o arquivo Descompacte o arquivo e coloque o arquivo mysql-connector-mysql-connector-java-5.0.8-bin.jarjava-5.0.8-bin.jar no diretrio no diretrio C:\Arquivos de C:\Arquivos de programas\Java\jdk1.5.0_14\jre\lib\extprogramas\Java\jdk1.5.0_14\jre\lib\ext e renomeie para e renomeie para mysql.jar.mysql.jar.

    3.3. Crie no CLASSPATH um alias para esse arquivo como mostra Crie no CLASSPATH um alias para esse arquivo como mostra o exemplo a seguir.o exemplo a seguir.

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 43

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 43

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 44

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 44

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 45

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 45

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 46

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 46

    So Paulo, 2012So Paulo, 2012

    Universidade Paulista (UNIP)Universidade Paulista (UNIP)

    Exemplo de aplicaes com Exemplo de aplicaes com acesso a banco de dadosacesso a banco de dados

    Prof. MSc. Vladimir CameloProf. MSc. Vladimir [email protected]@gmail.com

    44

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 47

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 47

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 48

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 48

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 49

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 49

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 50

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 50

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 51

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 51

    import javax.swing.*;import javax.swing.border.EtchedBorder;import java.sql.*;import java.awt.*;import java.awt.event.*;import br.com.uniban.conexao.ConexaoBD;

    public class FrameJCombo extends JFrame implements ItemListener, WindowListener {

    private Connection con = null;private Statement st = null;private int inicio = 0;ConexaoBD conexao = new ConexaoBD();

    JPanel painel = new JPanel();JLabel lblEstado = new JLabel("Estado:");JComboBox combobox = new JComboBox();

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 52

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 52

    public FrameJCombo() { super ("JComboBox e Banco de dados"); con = conexao.Conectar(); Container formulario = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT);

    formulario.setLayout(layout);

    addWindowListener(this);painel.setSize(210, 42);painel.setBorder(new EtchedBorder());painel.setBackground(new Color(219, 219, 219));

    lblEstado.setFont(new Font("Arial", 2, 16));painel.add(lblEstado);combobox.addItemListener(this);combobox.setBackground(new Color(239, 247, 255));painel.add(combobox);

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 53

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 53

    try {this.st = con.createStatement();ResultSet rs = st.executeQuery("SELECT * FROM estado ORDER BY uf");combobox.addItem("");while(rs.next()){

    combobox.addItem(rs.getString("uf"));}combobox.setSelectedItem(0);combobox.setSelectedIndex(0);

    } catch(SQLException ex) {JOptionPane.showMessageDialog(null, "Problema na conexo");

    }formulario.add(painel);setSize(150, 80);show();

    }

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 54

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 54

    public void itemStateChanged(ItemEvent e) {if (inicio == 1){

    if(e.getStateChange() == ItemEvent.SELECTED){JOptionPane.showMessageDialog (null,combobox.getSelectedItem());}

    }else {inicio = 1;

    } }public void windowActivated(WindowEvent arg0) { }public void windowClosed(WindowEvent e) { }public void windowClosing(WindowEvent arg0) { System.exit(0); }public void windowDeactivated(WindowEvent arg0) { }public void windowDeiconified(WindowEvent arg0) { }public void windowIconified(WindowEvent arg0) { }public void windowOpened(WindowEvent arg0) { }

    public static void main(String[] args) {new FrameJCombo();

    } }

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 55

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 55

    package br.com.uniban.conexao;import java.sql.*;public class ConexaoBD {

    private String url = null, login = null, senha = null;private Connection con = null;

    public Connection Conectar() {try {

    Class.forName("com.mysql.jdbc.Driver");this.url = "jdbc:mysql://localhost:3306/aula_teste";this.login = "root";this.senha = "498386";this.con = DriverManager.getConnection(url,login,senha);

    } catch(ClassNotFoundException ex){System.out.println("Driver JDBC no encontrado!");

    } catch(SQLException ex){System.out.println("Problemas na conexao com a fonte de dados");

    }return this.con;

    }}

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 56

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 56

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 57

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 57

    import java.awt.event.*;import br.com.uniban.conexao.ConexaoBD;import javax.swing.*;import java.util.*;import java.sql.*;

    public class Tabela extends JFrame implements WindowListener{private Connection con = null;private Statement st = null;ConexaoBD conexao = new ConexaoBD();

    private Vector linas = new Vector();private Vector colunaslinas= new Vector();

    private JTable tabela;

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 58

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 58

    public Tabela() {

    try {con = conexao.Conectar();this.st = con.createStatement();ResultSet rs = st.executeQuery ("SELECT * FROM cliente");rs.next();ResultSetMetaData rsmd = rs.getMetaData();for (int i=1; i

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 59

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 59

    tabela = new JTable(linas,colunaslinas);JScrollPane scroller = new JScrollPane (tabela);getContentPane().add(scroller);addWindowListener(this);setLocationRelativeTo(null);

    setSize (380,170); show(); }

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 60

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 60

    private Vector proximalin (ResultSet rs, ResultSetMetaData rsmd){Vector linhaAtual = new Vector();try { for (int i=1; i

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 61

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 61

    public void windowActivated(WindowEvent arg0) {}public void windowClosed(WindowEvent e) {}public void windowClosing(WindowEvent arg0) { System.exit(0); }public void windowDeactivated(WindowEvent arg0) {}public void windowDeiconified(WindowEvent arg0) {}public void windowIconified(WindowEvent arg0) {}public void windowOpened(WindowEvent arg0) {}

    public static void main(String[] args) { new Tabela(); }}

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 62

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 62

    Acessando os dados com aplicao em Java

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 63

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 63

    So Paulo, 2012So Paulo, 2012

    Universidade Paulista (UNIP)Universidade Paulista (UNIP)

    Interfaces do Pacote java.sql para Interfaces do Pacote java.sql para acesso ao banco de dadosacesso ao banco de dados

    Prof. MSc. Vladimir CameloProf. MSc. Vladimir [email protected]@gmail.com

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 64

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 64

    Pacote java.sql

    Fornece a API para acesso e processamento de dados;Fornece a API para acesso e processamento de dados;

    Principais classes e interfaces so:Principais classes e interfaces so:

    DriverManager:DriverManager: responsvel por criar uma conexo com o BD; responsvel por criar uma conexo com o BD;

    Connection:Connection: classe responsvel por manter uma conexo aberta classe responsvel por manter uma conexo aberta com o BD;com o BD;

    Statement: Statement: gerencia e executa instrues SQL;gerencia e executa instrues SQL;

    PreparedStatement: PreparedStatement: gerencia e executa instrues SQL, gerencia e executa instrues SQL, permitindo tambm a passagem de parmetros em uma permitindo tambm a passagem de parmetros em uma instruo;instruo;

    ResultSet: ResultSet: responsvel por receber os dados obtidos em uma responsvel por receber os dados obtidos em uma pesquisa ao banco.pesquisa ao banco.

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 65

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 65

    Conexo com o banco de dados

    Para abrir uma conexo com um banco de dados preciso realizar Para abrir uma conexo com um banco de dados preciso realizar duas tarefas distintas:duas tarefas distintas:

    verificar a existncia do driver de conexo e solicitar a abertura da verificar a existncia do driver de conexo e solicitar a abertura da conexo.conexo.

    A verificao da existncia do driver pode ser feita utilizando-se a A verificao da existncia do driver pode ser feita utilizando-se a seguinte instruo:seguinte instruo:

    try {try {Class.Class.forNameforName("com.mysql.jdbc.Driver");("com.mysql.jdbc.Driver");

    }}catch (ClassNotFoundException e) {catch (ClassNotFoundException e) {}}

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 66

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 66

    Connection

    representa a conexo com o banco de dados;representa a conexo com o banco de dados;

    proporcionar informaes sobre as tabelas do BD por meio de proporcionar informaes sobre as tabelas do BD por meio de transaes;transaes;

    Os mtodos desta interface freqentemente utilizados so:Os mtodos desta interface freqentemente utilizados so:

    commit()commit():: executa todas as alteraes feitas com o banco de executa todas as alteraes feitas com o banco de dados pela atual transao.dados pela atual transao.

    rollback()rollback():: desfaz qualquer alterao feita com o banco de dados desfaz qualquer alterao feita com o banco de dados pela atual transao.pela atual transao.

    close()close():: libera o recurso que estava sendo utilizado pelo objeto. libera o recurso que estava sendo utilizado pelo objeto.

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 67

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 67

    Conexo com o banco de dados

    A String "com.mysql.jdbc.Driver" representa o nome de classe do A String "com.mysql.jdbc.Driver" representa o nome de classe do driver MySQL JDBC a ser utilizada.driver MySQL JDBC a ser utilizada.

    Para carreg-la, basta invocar o mtodo esttico forName() da Para carreg-la, basta invocar o mtodo esttico forName() da classe java.lang.Class.classe java.lang.Class.

    A prxima tarefa solicitar a abertura da conexo utilizando a classe A prxima tarefa solicitar a abertura da conexo utilizando a classe java.sql.DriverManager e da interface java.sql.Connection.java.sql.DriverManager e da interface java.sql.Connection.

    A DriverManager representa o servio bsico de gerenciamento de A DriverManager representa o servio bsico de gerenciamento de um conjunto de drivers JDBC.um conjunto de drivers JDBC.

    Ela contm um mtodo esttico, chamado getConnection(), Ela contm um mtodo esttico, chamado getConnection(), responsvel por estabelecer uma conexo com um banco de dados.responsvel por estabelecer uma conexo com um banco de dados.

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 68

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 68

    Try {Try {class.forName (com.mysql.jdbc.Driver);class.forName (com.mysql.jdbc.Driver);

    Connection con;Connection con;

    String url = "jdbc:mysql://localhost:porta/banco";String url = "jdbc:mysql://localhost:porta/banco";String login = "usuario" ;String login = "usuario" ;String senha = "senha";String senha = "senha";con = DriverManager.getConnection(url,usurio,senha);con = DriverManager.getConnection(url,usurio,senha);

    }}catch (SQLException sqle) {catch (SQLException sqle) {}}

    Conexo com o banco de dados

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 69

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 69

    Depois de ser utilizada, a conexo deve ser finalizada.Depois de ser utilizada, a conexo deve ser finalizada.

    Para terminar uma conexo representada por uma instncia de Para terminar uma conexo representada por uma instncia de classe Connection, basta invocar seu mtodo close().classe Connection, basta invocar seu mtodo close().

    try {try {con.close();con.close();

    }}catch (SQLException sqle) {catch (SQLException sqle) {}}

    Conexo com o banco de dados

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 70

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 70

    Atualizar ou visualizar informaes no banco de dados

    Para enviar uma instruo SQL ao banco de dados (BD), a Para enviar uma instruo SQL ao banco de dados (BD), a aplicao Java precisa criar uma instncia da interface Statement.aplicao Java precisa criar uma instncia da interface Statement.

    A funo desta interface enviar instrues SQL ao banco e captar A funo desta interface enviar instrues SQL ao banco e captar o retorno produzido.o retorno produzido.

    Para instanciar a interface Statement, preciso ter uma conexo Para instanciar a interface Statement, preciso ter uma conexo aberta com o BD.aberta com o BD.

    Uma instncia da interface Connection criada utilizando-se o Uma instncia da interface Connection criada utilizando-se o mtodo esttico getConnection() da classe DriverManagermtodo esttico getConnection() da classe DriverManager

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 71

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 71

    Uma instncia da interface Statement criada utilizando-se o Uma instncia da interface Statement criada utilizando-se o mtodo esttico createStatement() da interface Connection.mtodo esttico createStatement() da interface Connection.

    Toda instncia da interface Statement vinculada, no momento de Toda instncia da interface Statement vinculada, no momento de sua criao, a uma conexo ativa e, portanto, as instrues SQL a sua criao, a uma conexo ativa e, portanto, as instrues SQL a serem enviadas por ela j tm um BD especfico como destino.serem enviadas por ela j tm um BD especfico como destino.

    Atualizar ou visualizar informaes no banco de dados

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 72

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 72

    Para executar uma instruo SQL no banco de dados deve ser Para executar uma instruo SQL no banco de dados deve ser utilizado os mtodos:utilizado os mtodos:

    executeQuery: para executar somente a instruo SELECT. executeQuery: para executar somente a instruo SELECT.

    executeUpdate: para executar as instrues DELETE, INSERT e executeUpdate: para executar as instrues DELETE, INSERT e UPDATE.UPDATE.

    Atualizar ou visualizar informaes no banco de dados

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 73

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 73

    A interface ResultSet representa uma estrutura de dados A interface ResultSet representa uma estrutura de dados bidimensional (matriz) resultante de uma consulta a um banco.bidimensional (matriz) resultante de uma consulta a um banco.

    Uma instncia dessa interface mantm um cursor apontando para Uma instncia dessa interface mantm um cursor apontando para uma linha dessa estrutura de dados, que inicialmente est uma linha dessa estrutura de dados, que inicialmente est posicionada antes do primeiro registro.posicionada antes do primeiro registro.

    O mtodo next() move o cursor para a prxima linha retornando um O mtodo next() move o cursor para a prxima linha retornando um valor booleano (false) quando invocado e j se encontra na ltima valor booleano (false) quando invocado e j se encontra na ltima linha.linha.

    Em conjunto com o lao while possibilita a varredura dos dados Em conjunto com o lao while possibilita a varredura dos dados contidos nessa estrutura. O mtodo get() permite contidos nessa estrutura. O mtodo get() permite recuperar o valor do campo para o registro atual.recuperar o valor do campo para o registro atual.

    Atualizar ou visualizar informaes no banco de dados

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 74

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 74

    while(rs.next())while(rs.next())

    System.out.println(rs.getString(nome));System.out.println(rs.getString(nome)); Na primeira verso da JDBC no havia suporte iterao inversa Na primeira verso da JDBC no havia suporte iterao inversa

    para uma instncia da interface ResultSet.para uma instncia da interface ResultSet.

    Para criar um conjunto de resultados rolvel (navegar para frente e Para criar um conjunto de resultados rolvel (navegar para frente e para trs), os dados tinham que ser transferidos para outra estrutura para trs), os dados tinham que ser transferidos para outra estrutura de dados.de dados.

    A JDBC2 inclui suporte aos resultados rolveis em um conjunto de A JDBC2 inclui suporte aos resultados rolveis em um conjunto de resultados e at saltos para quaisquer posies do conjunto.resultados e at saltos para quaisquer posies do conjunto.

    Atualizar ou visualizar informaes no banco de dados

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 75

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 75

    PreparedStatement

    A API JDBC fornece uma maneira de executar comandos SQL A API JDBC fornece uma maneira de executar comandos SQL parametrizados.parametrizados.

    A Interface PreparedStatement, subclasse de Statement.A Interface PreparedStatement, subclasse de Statement.

    Vantagens de PreparedStatementVantagens de PreparedStatement

    cdigo mais legvel;cdigo mais legvel;

    melhor performance pois os comandos so pr-compilados e melhor performance pois os comandos so pr-compilados e otimizados;otimizados;

    ganhos de segurana minimizando ataques de injeo de SQL.ganhos de segurana minimizando ataques de injeo de SQL.

    Com PreparedStatement, a string contendo o comando SQL deve Com PreparedStatement, a string contendo o comando SQL deve ser fornecida no momento da criao do comando e no no ser fornecida no momento da criao do comando e no no momento de execuo do comando.momento de execuo do comando.

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 76

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 76

    A interface PreparedStatement possui todos os recursos da interface A interface PreparedStatement possui todos os recursos da interface Statement;Statement;

    acrescentando a utilizao de parmetros em uma instruo SQL;acrescentando a utilizao de parmetros em uma instruo SQL;

    mtodos da interface PreparedStatement so:mtodos da interface PreparedStatement so:

    executeQuery():executeQuery(): consolida a instruo SQL informada; consolida a instruo SQL informada;

    setDate()setDate():: mtodo utilizado para atribuir um valor do tipo Data; mtodo utilizado para atribuir um valor do tipo Data;

    setInt()setInt():: utilizado para atribuir valores do tipo inteiro; utilizado para atribuir valores do tipo inteiro;

    setString()setString():: mtodo utilizado para atribuir valores do tipo Alfa mtodo utilizado para atribuir valores do tipo Alfa Numricos. Numricos.

    PreparedStatement

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 77

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 77

    Os parmetros de um PreparedStatement so indicados por sinais Os parmetros de um PreparedStatement so indicados por sinais de interrogaco dentro da string que contm o comando SQL.de interrogaco dentro da string que contm o comando SQL.

    A interface PreparedStatement fornece uma srie de mtodos do A interface PreparedStatement fornece uma srie de mtodos do tipo setInt, setDate, etc. que permitem passar os valores dos tipo setInt, setDate, etc. que permitem passar os valores dos parmetros antes da execucoparmetros antes da execuco

    Os parmetros so identificados pela sua posio dentro da string Os parmetros so identificados pela sua posio dentro da string SQL, iniciando por 1SQL, iniciando por 1

    Devido s vantagens de se ter o cdigo mais simples e seguro, a Devido s vantagens de se ter o cdigo mais simples e seguro, a maioria dos desenvolvedores prefere usar PreparedStatement, maioria dos desenvolvedores prefere usar PreparedStatement, mesmo para comandos SQL que sero executados uma nica vez e mesmo para comandos SQL que sero executados uma nica vez e onde portanto no haveria ganho de performance.onde portanto no haveria ganho de performance.

    PreparedStatement

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 78

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 78

    Connection con = null;Connection con = null;PreparedStatement st = con.prepareStatement(PreparedStatement st = con.prepareStatement(

    "Select * FROM pessoa where nome = ?");"Select * FROM pessoa where nome = ?");st.setString(1, Vladimir Camelo");st.setString(1, Vladimir Camelo");resultado = st.executeQuery( );resultado = st.executeQuery( );

    PreparedStatement

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 79

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 79

    Classe DatabaseMetaData

    A classe DatabaseMetaData recuperada por meio do objeto A classe DatabaseMetaData recuperada por meio do objeto Connection e possibilita recuperar metadados sobre:Connection e possibilita recuperar metadados sobre:

    BD em uso,BD em uso,

    objetos do banco de dados,objetos do banco de dados,

    informaes sobre o Driver JDBC,informaes sobre o Driver JDBC,

    privilgios de acesso,privilgios de acesso,

    etc.etc.

    Existem mais de 150 mtodos disponveis para esta classe.Existem mais de 150 mtodos disponveis para esta classe.

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 80

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 80

    importjava.sql.*; importjava.sql.*; publicclassExemplo1{ publicclassExemplo1{ publicstaticvoidmain(String[]args)throwsSQLException{ publicstaticvoidmain(String[]args)throwsSQLException{ class.forName(com.mysql.jdbc.Driver); class.forName(com.mysql.jdbc.Driver); Connectionconn=DriverManager.getConnection(Connectionconn=DriverManager.getConnection(

    "jdbc:mysql:\\localhost:3306\aula_teste",root",123456"); "jdbc:mysql:\\localhost:3306\aula_teste",root",123456"); DatabaseMetaDatadbmd=conn.getMetaData(); DatabaseMetaDatadbmd=conn.getMetaData(); System.out.println(System.out.println(

    "VersaodoDriverJDBC="+dbmd.getDriverVersion()); "VersaodoDriverJDBC="+dbmd.getDriverVersion()); System.out.println(System.out.println(

    "VersaodoBD="+dbmd.getDatabaseProductVersion()); "VersaodoBD="+dbmd.getDatabaseProductVersion()); System.out.println(System.out.println(

    "SuportaSelectforUpdate?="+dbmd.supportsSelectForUpdate()); "SuportaSelectforUpdate?="+dbmd.supportsSelectForUpdate()); System.out.println(System.out.println(

    "SuportaTransacoes?="+dbmd.supportsTransactions()); "SuportaTransacoes?="+dbmd.supportsTransactions()); ResultSetr2=dbmd.getSchemas(); ResultSetr2=dbmd.getSchemas(); while(r2.next()){ while(r2.next()){ System.out.println("SCHEMADOBD="+r2.getString(1)); System.out.println("SCHEMADOBD="+r2.getString(1)); } } }} } }

    Classe DatabaseMetaData

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 81

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 81

    Classe ResultSetMetaData

    A classe ResultSetMetaDado possibilita recuperar mais informaes A classe ResultSetMetaDado possibilita recuperar mais informaes sobre os metadados do BD.sobre os metadados do BD.

    Por meio de uma instncia de um objeto dessa classe possvel Por meio de uma instncia de um objeto dessa classe possvel recuperar dinamicamente a quantidade de colunas de uma tabela.recuperar dinamicamente a quantidade de colunas de uma tabela.

    possvel recuperar tambm o nome de colunas, seu tipo, tamanho, possvel recuperar tambm o nome de colunas, seu tipo, tamanho, entre outras informaes.entre outras informaes.

    No exemplo a seguir a classe ResultSetMetaData utilizada para No exemplo a seguir a classe ResultSetMetaData utilizada para descobrir dinamicamente o total de colunas de uma tabela, o nome descobrir dinamicamente o total de colunas de uma tabela, o nome de suas colunas e o tipo das mesmas.de suas colunas e o tipo das mesmas.

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 82

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 82

    ... ... Statementstmt=conn.createStatement(); Statementstmt=conn.createStatement(); ResultSetrset=stmt.executeQuery("SELECT*fromEMP"); ResultSetrset=stmt.executeQuery("SELECT*fromEMP"); ResultSetMetaDatarsmd=rset.getMetaData(); ResultSetMetaDatarsmd=rset.getMetaData(); intnumColumns=rsmd.getColumnCount(); intnumColumns=rsmd.getColumnCount(); System.out.println("TotaldeColunas="+numColumns); System.out.println("TotaldeColunas="+numColumns); //looppararecuperarosmetadadosdecadacoluna //looppararecuperarosmetadadosdecadacoluna for(inti=0;i

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 83

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 83

    Classe ParameterMetaData

    Por meio da classe ParameterMetaData possvel recuperar Por meio da classe ParameterMetaData possvel recuperar metadados sobre os "parmetros" de clusulas SQL que so usadas metadados sobre os "parmetros" de clusulas SQL que so usadas com a classe PreparedStatement.com a classe PreparedStatement.

    Assim possvel descobrir dinamicamente a quantidade de Assim possvel descobrir dinamicamente a quantidade de parmetros utilizados e suas caractersticas.parmetros utilizados e suas caractersticas.

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 84

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 84

    PreparedStatementpstmt=conn.prepareStatement(PreparedStatementpstmt=conn.prepareStatement("SELECT*FROMEMPWHEREEMPNO=?ANDDEPTNO=?"); "SELECT*FROMEMPWHEREEMPNO=?ANDDEPTNO=?");

    ParameterMetaDatapmd=pstmt.getParameterMetaData(); ParameterMetaDatapmd=pstmt.getParameterMetaData(); //recuperaototaldeparametros //recuperaototaldeparametros inttotalParam=pmd.getParameterCount(); inttotalParam=pmd.getParameterCount(); //recuperainformacoessobrecadaparametro //recuperainformacoessobrecadaparametro for(inti=0;i

  • Linguagem de Programao Orientada a Objetos (LPOO)

    01/08/12 [email protected] 85

    Interface grfica em Java e acesso a Banco de dadosInterface grfica em Java e acesso a Banco de dados

    01/08/12 [email protected] 85

    So Paulo, 2012So Paulo, 2012

    Universidade Paulista (UNIP)Universidade Paulista (UNIP)

    Introduo a Java Database Conectivity Introduo a Java Database Conectivity (JDBC)(JDBC)

    Prof. MSc. Vladimir CameloProf. MSc. Vladimir [email protected]@gmail.com

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Slide 52Slide 53Slide 54Slide 55Slide 56Slide 57Slide 58Slide 59Slide 60Slide 61Slide 62Slide 63Slide 64Slide 65Slide 66Slide 67Slide 68Slide 69Slide 70Slide 71Slide 72Slide 73Slide 74Slide 75Slide 76Slide 77Slide 78Slide 79Slide 80Slide 81Slide 82Slide 83Slide 84Slide 85