Olá, resolvi meu problema dessa forma: (a autoridade em java Jujo disse que é uma boa implementação… entao tá ae… ele me ajudou também)
Classe Conexao:
[code]/*
- Conexao.java
-
- Onde tiver blue é o host, macog é o banco de dados (soh para info)
-
- Created on 15 de Janeiro de 2005, 01:36
*/
import java.sql.*;
import javax.swing.JOptionPane;
/**
*
-
@author macog
*/
public class Conexao {
private Connection conn;
/** Creates a new instance of Conexao */
public Conexao() {
try { //inicio bloco seguro
Class.forName("com.mysql.jdbc.Driver").newInstance();
//Class.forName("org.gjt.mm.mysql.Driver").newInstance();
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, "Não foi possivel encontrar classe para conexão.\n\nMensagem de erro: "+ e.getMessage(), "Erro", 0 );
} //final bloco seguro
}
/**
- Método sobrecarredao usado para conexão com o banco de dados, é o método que irá
- conectar-se com o banco de dados
*/
public void setConn() {
try {
Usuario usuario = new Usuario();
conn = DriverManager.getConnection("jdbc:mysql://blue/macog?user="+ usuario.getUsuario() +"&password="+ usuario.getSenha());
//JOptionPane.showMessageDialog(null, "Conexão estabelecida.", "Conexão", 1);
}
catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Não foi possível conectar-se ao banco de dados.\n\nMensagem: "+ e.getMessage(), "Erro", 0);
conn = null;
}
} //final método setConn();
/**
- Método sobrecarredao usado para conexão com o banco de dados, é o método que irá
- conectar-se com o banco de dados
*/
public void setConn(String usuario, String senha) {
try {
conn = DriverManager.getConnection("jdbc:mysql://blue/macog?user="+ usuario +"&password="+ senha);
//JOptionPane.showMessageDialog(null, "Conexão estabelecida.", "Conexão", 1);
}
catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Não foi possível conectar-se ao banco de dados.\n\nMensagem: "+ e.getMessage(), "Erro", 0);
conn = null;
}
} //final método setConn(usuario, senha);
/**
- Método sobrecarredao usado para conexão com o banco de dados, é o método que irá
- conectar-se com o banco de dados
*/
public void setConn(String host, String usuario, String senha) {
try {
conn = DriverManager.getConnection("jdbc:mysql://"+ host +"/macog?user="+ usuario +"&password="+ senha);
//JOptionPane.showMessageDialog(null, "Conexão estabelecida.", "Conexão", 1);
}
catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Não foi possível conectar-se ao banco de dados.\n\nMensagem: "+ e.getMessage(), "Erro", 0);
conn = null;
}
} //final método setConn(host, usuario, senha);
/**
- Método sobrecarredao usado para conexão com o banco de dados, é o método que irá
- conectar-se com o banco de dados
*/
public void setConn(String host, String db, String usuario, String senha) {
try {
conn = DriverManager.getConnection("jdbc:mysql://"+ host +"/"+ db +"?user="+ usuario +"&password="+ senha);
//JOptionPane.showMessageDialog(null, "Conexão estabelecida.", "Conexão", 1);
}
catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Não foi possível conectar-se ao banco de dados.\n\nMensagem: "+ e.getMessage(), "Erro", 0);
conn = null;
}
} //final método setConn(host, db, usuario, senha);
/**
- Método responsável por desconectar-se da conexão criada.
*/
public void Desconectar() {
try {
conn.close();
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, "Ocorreram erro ao fechar conexão.\n\nMensagem: "+ e.getMessage(), "Erro", 0);
conn = null;
}
}
/**
- Médoto GET para retornar a conexão criada
*/
public Connection getConn() {
return conn;
}
}
[/code]
Classe Usuario:
[code]/*
- Usuario.java
-
- Created on 15 de Janeiro de 2005, 23:28
*/
import javax.swing.JOptionPane;
/**
*
-
@author macog
*/
public class Usuario {
private static String Usuario;
private static String Senha;
/** Creates a new instance of Usuario */
public Usuario() {
}
/**
- Início metodos SETs que definirão usuário e senha
*/
public static void setUsuario(String usuario) {
if (usuario.length() > 0) {
Usuario = usuario;
}
else {
JOptionPane.showMessageDialog(null, "Usuário não pode ser nulo.", "Erro", 0);
Usuario = null;
}
} //final método setUsuario();
public static void setSenha(String senha) {
if (senha.length() > 0) {
Senha = senha;
}
else {
JOptionPane.showMessageDialog(null, "Senha não pode ser nula", "Erro", 0);
Senha = null;
}
} //final método setSenha();
/**
- Métodos GETs utilizados para recuperar as variáveis estáticas,
- no caso Usuario e Senha para conexão com banco de dados;
*/
public static String getUsuario() {
return Usuario;
} //final método getUsuario();
public static String getSenha() {
return Senha;
} //final método getSenha();
}
[/code]
Para utilizar a classe conexao fazer assim:
Primeiro voce precisa definir um local onde será informado o login e a senha, eu fiz assim; criei uma classe que contem 2 campos para colocar login e senha respectivamente, e o action do botão login é esse:
[code] private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
/**
* Instanciar classe Usuario e definir usuario e senha…
*/
Usuario usuario = new Usuario();
usuario.setUsuario(editUsuario.getText());
usuario.setSenha(editSenha.getText());
//conectar com banco de dados utilizando as informações
//contidas na classe Usuario
Connection con;
Conexao conexao = new Conexao();
conexao.setConn("blue", "macog", usuario.getUsuario(), usuario.getSenha());
con = conexao.getConn();
//se a conexão for estabelecida com sucesso, fechar a janela de conexão
try {
if (!con.isClosed()) {
this.setVisible(false);
}
}
catch (Exception e ) {
//erro, ignorar porque a janela continurá aberta...
}
}
[/code]
E para reutilizar os dados informados nessa tela de login, é soh fazer assim, por exemplo:
[code] public class FormAgenda extends javax.swing.JInternalFrame {
private Connection con; //variavel con para manipulação da conexão
Conexao conexao = new Conexao();
private Statement stm;[/code]
Para reutilizar a conexão, ao utilizar o método que instancia a classe que utilizara a conexão voce faz assim:
[code] public FormAgenda() {
conexao.setConn();
con = conexao.getConn();[/code]
Ae fica fácil utilizar a conexão, por exemplo, esse codigo aqui é chamado para salvar os dados alterados para o banco, é acionado ao apertar o botão Salvar:
private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String Query = new String();
Query = "INSERT INTO miniagenda VALUES (NULL, "+
"'"+ editNome.getText() +"', '"+ editTelefone.getText() +"')";
try {
//reutilizando a con (Connection) criada acima com a conexão
//definida pela classe Conexao e recuperada pelo metodo getConn()
stm = con.createStatement();
stm.executeUpdate(Query);
//con.commit(); -> auto-commit = true
JOptionPane.showMessageDialog(null, "O registro foi incluido com êxito.", "Informação", 1);
editNome.setText("");
editTelefone.setText("");
}
catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Ocorreram erros.\n\nMensagem: "+ e.getMessage(), "Erro", 0);
}
}
É isso, espero ter ajudado… qualquer duvida eu ajudo sem problemas, é soh postar abaixo.