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()); } } }