Buscar

12 - Banco de Dados I - jdbc


Continue navegando


Prévia do material em texto

Programação Servidor 
Sistemas web
Banco de Dados - I
JDBC
• Java Database Connectivity-JDBC: É uma
Application Programming Interface-API Java
para acesso de Banco de Dados utilizando
SQL.
• Permite independência de Banco de Dados.
• Está localizada no Pacote java.sql – A maior
parte dessa API são interfaces.
JDBC
• Podemos resumir que a JDBC faz quatro coisas:
– Estabelece uma conexão com o banco de Dados;
– Executas consultas;
– Recebe um conjunto de Resultados das Consultas;
– Executa atualizações no banco de dados.
• Outro característica da JDBC é que ocorre o• Outro característica da JDBC é que ocorre o
mapeamento dos tipos de dados existentes no banco
de dados para os tipos do Java.
• Por exemplo, a classe java.sql.Date é fornecida para
mapear um campo do tipo DATA dos bancos de
dados.
JDBC
Aplicação Java
JDBC API
JDBC DriverManager
JDBC Driver JDBC Driver
SGBD(*) SGBD(*)
Fabricante sgbd 1 Fabricante sgbd n
(*) Sistema Gerenciador de Banco de Dados
Uma classe de Conexao em Java
public class ClasseConexao {
private static String URL = 
"jdbc:sqlserver://localhost:1433;databaseName=Northwind";
private static String DRIVER = 
"com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static String USUARIO = "sa";
private static String SENHA = "";
public static Connection abreConexaoSQLServer() throws SQLException{
try {try {
Class.forName(DRIVER);
Connection con = DriverManager.getConnection(URL,USUARIO,SENHA);
return con;
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}
JDBC
• A API JDBC utiliza uma estrutura de endereçamento
semelhante ao esquema das URLs para especificar um
banco de dado.
"jdbc:sqlserver://localhost:1433;databaseName=BDAcad";
• Com o dado da URL, usuário e senha uma conexão é• Com o dado da URL, usuário e senha uma conexão é
estabelecida.
• Uma vez estabelecida a conexão com sucesso, as
solicitações de consultas e outras operações sobre os dados
serão feitas por meio de linguagem SQL, utilizando a
conexão estabelecida pelo driver JDBC.
JDBC
• Todo driver JDBC deve realizar seu registro na máquina
virtual, por meio de métodos específicos da classe
DriverManager.
• A classe Driver deve implementar as interfaces:
Connection, Statement, PreparedStatemente eConnection, Statement, PreparedStatemente e
ResultSet.
• Exemplo de classe Driver:
"com.microsoft.sqlserver.jdbc.SQLServerDriver";
Pacote de localização da classe Classe que implementa 
o driver.
Abrindo uma conexão com o SGBD
• Nosso primeiro passo é registrar o driver JDBC.
private static String DRIVER =
"com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(DRIVER);
• O segundo passo é abrir a conexão com o banco de dados:• O segundo passo é abrir a conexão com o banco de dados:
Connection con = DriverManager.getConnection(URL,USUARIO,SENHA);
Conexão ao Banco de Dados
• O primeiro passo de um processo de conexão JDBC é
carregar o driver de conexão.
• A classe Driver precisa ser carregada na máquina
virtual Java (JVM).
Class.forName(DRIVER);
• Caso classe especificada na variável DRIVER não
exista, uma exceção será lançada - ClassNotFound.
Conexão ao Banco de Dados
• Uma vez que a classe do Driver do banco de dados esteja
carregada, a classe DriverManager pode realizar a conexão.
• A conexão ao banco de dados é feita pelo método
getConnection da classe DriverManager.
Connection con = DriverManager.getConnection(URL,USUARIO,SENHA);
• O método getConnection recebe três parâmetros, a URL do• O método getConnection recebe três parâmetros, a URL do
banco, o usuário e senha.
• As informações da URL de conexão pode variar de um
banco para outro banco.
• Se os dados estiverem corretos um objeto da classe
Connection é retornado.
Acesso ao MySQL
public class FabricaConexao {
private static String DRIVER_M = "com.mysql.jdbc.Driver";
//Classe do driver JDBC
private static String BANCO_M = "BDBanco"; //Nome do Banco criado
private static String HOST_M = "localhost"; //Maquina onde está o banco
private static String STR_CONEXAO_M = "jdbc:mysql://" + HOST_M + ":3306/" + 
BANCO_M; //URL de conexão
private static String USUARIO_M = “admin"; //Usuário do banco dados
private static String SENHA_M = ""; //Senha de conexão
public static Connection abreConexaoMySQL() throws SQLException{
try {
Class.forName(DRIVER_M);
Connection con = 
DriverManager.getConnection(STR_CONEXAO_M,USUARIO_M,SENHA_M);
return con;
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}