Fera, qual IDE você está usando? (se estiver usando alguma, é claro; e se não tiver, aconselho a usar o NetBeans 5.5 ou 6.1)
Então, você precisará acresentar à biblioteca o conector do SGBD que escolheu, no caso, o MySQL (que se chama connector/j), um conector JDBC responsável por controlar as conexões da sua aplicação à base de dados... E então deverá criar, preferencialmente, uma classe separada para realizar a conexão e fechar, quando for realizar alguma transação ou consulta ao banco...
Aí está um exemplo de classe para conexão com o MySQL que eu fiz, bem simples, mas faz o principal (conectar e desconectar)...
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class Conexao {
public Connection con;
public void conectar() {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/nome_do_banco","root","");
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Falha na conexão!");
}
}
public void desconectar() {
try {
if (con != null) con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
}
E então, na classe onde for executar o acesso instancie a classe Conexão em seu construtor ou sempre que quiser abrir conexão, e chame o método conectar() e desconectar(), segundo a classe acima, assim:
Conexao conexao = new Conexao();
conexao.conectar();
(...)
conexao.desconectar();
Um exemplo de persistência de um registro no banco de dados, instanciando a classe Conexao...
private void incluirRegistro() {
try {
// abre conexão...
conexao.conectar();
// prepara a inserção
pstmt = conexao.con.prepareStatement("Insert into Tabela (Campo1, Campo2) Values (?, ?)");
pstmt.setString(1, jEdit1.getText()); // você pode fazer também com setObject() sem se preocupar com o tipo...
pstmt.setString(2, jEdit1.getText());
// executa a inserção...
pstmt.executeUpdate();
pstmt.close();
JOptionPane.showMessageDialog(this, "Registro incluído com sucesso!");
}
catch (SQLException e) { // tratamento de exceção...
e.printStackTrace();
JOptionPane.showMessageDialog(this, "Falha na inclusão do registro!\n\nMensagem de erro:\n"+e.getMessage());
}
finally {
// fechando a conexão dentro do finally você garante que ela será fechada mesmo em caso de erros...
conexao.desconectar();
}
}
Há quem prefira usar Statement ao invés de PrepareStatement, porém, é muito mais recomendado o uso de PrepareStatement, inclusive para evitar o famoso problema de injeção de consultas do SQL, sem falar que torna mais fácil a reusabilidade dessas instruções pela aplicação com o uso de controles com getters e setters...
Qualquer dúvida, estamos aí!
Um abraço!