Oi pessoal estou com problema em conectar ao banco de dados. Eu baixei o mySQL, mas mesmo assim eu preciso baixar o MySQL Conector/J ? eu dei o comando javap com.mysql.jdbc.Driver no propmt e retorno que não achou com.mysql.jdbc.Driver
O que eu devo fazer?
Jdbc
9 Respostas
Oi pessoal estou com problema em conectar ao banco de dados. Eu baixei o mySQL, mas mesmo assim eu preciso baixar o MySQL Conector/J ? eu dei o comando javap com.mysql.jdbc.Driver no propmt e retorno que não achou com.mysql.jdbc.Driver
O que eu devo fazer?
Sim, você deve baixar o drives em .jar, e depois coloca ele junto as bibliotecas com uma IDE, pois compilar na mão com o Javac é dose nestes casos.
Baixe o driver em:
http://dev.mysql.com/downloads/connector/j/
Exemplo
Cria um objeto Connection:
final String jdbcDriver = "com.mysql.jdbc.Driver";
final String urlJDBC = "jdbc:mysql:127.0.0.1:3306/meusgbd";
final String user = "root";
final String password = "admin";
Class.forName( jdbcDriver );
Connection connection = DriverManager.getConnection( urlJDBC, user, password );
Boa Noite pessoal…
Eu faria deste jeito aqui…
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
public Connection getConnection() {
try {
return DriverManager.getConnection("jdbc:mysql://localhost/fj21", "root", ""); /*fj21 = nome do banco de dados, root = usuário do bando e "" a senha do bando de dados */
} catch(SQLException e) {
throw new RuntimeException(e);
}
}
}
Espero ajudar…abraços.
Andre por que você lança outra exceção dentro do catch?
Desculpe não entendi a pergunta?
Você quis dizer do:
catch(SQLException e) {
throw new RuntimeException(e);
}
SQLException se houver qualquer erro na hora de se conectar ao banco. Por exemplo, erro na senha, banco não existe…etc…
throw new RuntimeException é para capturar o erro em tempo de execução…
Entendeu?
Desculpe não entendi a pergunta?Você quis dizer do:
catch(SQLException e) { throw new RuntimeException(e); }SQLException se houver qualquer erro na hora de se conectar ao banco. Por exemplo, erro na senha, banco não existe…etc…
thrownew RuntimeExceptioné para capturar o erro em tempo de execução…Entendeu?
Olá.
Cuidado com essa prática. SqlException é uma checked exception, que são geralmente usadas quando ocorrem problemas fora da área imediata do programa que estamos executando (problemas na base de dados, arquivo inexistente etc).
Já RuntimeException é uma unchecked exception, que são geralmente usadas quando ocorrem problemas na área imediata do programa que estamos executando (falta de memória, argumento inválido etc).
Se você cria uma RuntimeException, você dá a opção do método que chamou getConnection() a não tratar essa SqlException.
public static void main(String[] args) {
a("Senha Errada"); //Não sou obrigado a tratar a Exception aqui
try {
b("Senha Errada"); //Aqui sou obrigado a tratar
} catch (SQLException e) {
e.printStackTrace();
}
}
private static void a(String senha){
try{
if (!senha.equals("Senha certa")){
throw new SQLException("Senha inválida");
}
}catch(SQLException sqlErro){
throw new RuntimeException(sqlErro);
}
}
private static void b(String senha) throws SQLException{
try{
if (!senha.equals("Senha certa")){
throw new SQLException("Senha inválida");
}
}catch(SQLException sqlErro){
throw sqlErro;
}
}
ok?
…public static void main(String[] args) { a("Senha Errada"); //Não sou obrigado a tratar a Exception aqui try { b("Senha Errada"); //Aqui sou obrigado a tratar } catch (SQLException e) { e.printStackTrace(); } } private static void a(String senha){ try{ if (!senha.equals("Senha certa")){ throw new SQLException("Senha inválida"); } }catch(SQLException sqlErro){ throw new RuntimeException(sqlErro); } } private static void b(String senha) throws SQLException{ try{ if (!senha.equals("Senha certa")){ throw new SQLException("Senha inválida"); } }catch(SQLException sqlErro){ throw sqlErro; } }ok?
No caso não faz nem sentido ter um catch no método b.
Olá pessoal,
então o certo seria no lugar do throws new RuntimeException ter um e.printStackTrace(e);? É mais correto?
veja o post.