Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMarcelo Alencar Monsanto Alterado mais de 9 anos atrás
1
JDBC Java Database Connectivity http://www.javasoft.com/products/jdbc/index.html http://www.javasoft.com/products/jdk/1.2/ docs/guide/jdbc/getstart/introTOC.doc.html
2
O que é JDBC Especificação para uso de base de dados em aplicações e applets JAVA; API para uso de drivers JDBC; API para criação de drivers JDBC; Baseado na X/Open SQL Call Level Interface (CLI) Compatível com ANSI SQL-92.
3
Fabricantes comprometidos com a JDBC Inprise IBM Informix Intersolv Oracle SAS Institute SCO Sybase Symantec Visigenic etc...
4
Arquitetura JDBC –Uma interface independente de SGDB “ambiente de acesso a SGDBs SQL genérico” Interface uniforme para diferentes fontes de dados. –O programador escreve uma interface para banco de dados, podendo acessar várias fontes diferentes sem mudança de código.
5
Arquitetura JDBC
6
Ponte JDBC / ODBC
7
JDBC API Registrando drivers JDBC: –Modo 1: Class.forName(“jdbc.odbc.JdbcOdbcDriver”); Class.forName(“j102.sql.IDSDriver”); Obs: NÃO funciona no IE, devendo ser mudado para: Class.forName(“jdbc.odbc.JdbcOdbcDriver”).newInstance(); Class.forName(“j102.sql.IDSDriver”).newInstance(); –Modo 2: Driver drv = new j102.sql.IDSDriver();
8
JDBC API Declarando uma URL –Sintaxe: jdbc: : –subprotocol:indica o tipo de SGBD desejado »odbc, oracle, etc –subname: especificação adicional dependente do protocolo (Ex: nome do datasource, usuário, senha, porta, etc...) –Sintaxe do subname (recomendada pela Javasoft) –jdbc: ://hostname:port/subsubname –Ex: jdbc:mysql://ppgia.pucpr.br:3333/databasename
9
JDBC API Estabelecendo uma Conexão –Modo 1 Connection con = DriverManager.getConnection(String url, String User, String Pass); Connection con = DriverManager.getConnection(String url); Connection con = DriverManager.getConnection(String url, Properties info); –Modo 2 Connection con = drv.getConnection(String url, String User, String Pass); Connection con = drv.getConnection(String url); Connection con = drv.getConnection(String url, Properties info);
10
JDBC API Executando instruções –Statement Executa uma instrução SQL fixa –PreparedStatement Executa uma instrução SQL com parâmetros –callableStatement Executa uma Stored Procedure
11
JDBC API Obtendo um objeto para execução –Statement: Statement stmt = con.createStatement(); –PreparedStatement PreparedStatement pstmt = con.prepareStatement(“INSERT INTO teste (name,id) VALUES (?, ?)”); –callableStatement callableStatement cstmt = con.prepareCall(“{call test_sp(?,?)}”;
12
Statement public int executeUpdate(String) –Executa um comando SQL que não produz uma tabela de resultados. Retorna o número de linhas afetadas, ou 0 se nenhum resultado for produzido stmt.executeUpdate(“CREATE TABLE test (name CHAR(25), id INT”); stmt.executeUpdate(“INSERT INTO test VALUES (´Brian´,’1)”);
13
Statement public ResultSet executeQuery(String) –executa uma instrução SQL que produz como resultado uma tabela stmt.executeQuery(“SELECT * FROM test”);
14
PreparedStatement public void setString(int,String); –Atribui o valor String ao parâmetro especificado pstmt.setString(1,”John”); public void setInt(int par,int val); –Atribui o valor val ao parâmetro par pstmt.setInt(2,1); public int executeUpdate(); public int executeQuery();
15
Retornando Dados ResultSet –Implementa uma tabela que contém o resultado obtido de uma consulta ResultSetMetaData –Implementa uma tabela que contém os meta- dados de um objeto ResultSet DatabaseMetaData –Implementa uma tabela que contém os meta- dados de uma conexão
16
Forma Geral Connection con = DriverManager.getConnection ( "jdbc:odbc:wombat", "login", "password"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); while (rs.next( )) { int x = rs.getInt("a"); String s = rs.getString("b"); float f = rs.getFloat("c"); }
17
ResultSet - Exemplo abc ------------------------------ 12345Cupertino4.5 83472Redmond3.56 83492Boston0.02 SELECT a, b, c FROM Table1
18
ResultSet - Exemplo (cont.) java.sql.Statement stmt = con.createStatement(); ResultSet r = stmt.executeQuery("SELECT a, b, c FROM Table1"); while (r.next()) { // print the values for the current row. int i = r.getInt("a"); String s = r.getString("b"); float f = r.getFloat("c"); System.out.println("ROW = " + i + " " + s + " " + f); }
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.