Classe para consulta em Banco de Dados  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
tonare25
Entusiasta Java

Membro desde: 02/11/2008 13:21:24
Mensagens: 17
Offline

Oi Pessoal,
Tenho uma dúvida simples, porém pesquisei bastante aqui no fórum e não encontrei a solução.....

Criei uma classe (abaixo) para fazer a conexão e pesquisa no banco de dados MySQL. Minha dúvida é como faze-la funcionar de outra classe.
Por exemplo, tenho uma classe de cadastro de usuários, e nela eu quero chamar esta classe de consulta, porém, deixar os dados consultados disponíveis para trabalhar na minha classe de cadastro de usuários.

Alguém por favor pode me ajudar?

-------------------------------------------------------------------------------------------------------------------------------
ARQUIVO COM A CLASSE DE DB
-------------------------------------------------------------------------------------------------------------------------------
import com.mysql.jdbc.Connection;
import java.sql.*;
import javax.swing.JOptionPane;
import java.sql.DriverManager;
import java.sql.SQLException;


public class MOD00000 {

public Connection conectar(){
// base de dados é "test"
String url = "jdbc:mysql://127.0.0.1/cont";
String usuario = "root";
String senha = "";

try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = (Connection) DriverManager.getConnection(url, usuario, senha);
return conn;
}
catch(SQLException ex){
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
return null;
}
catch(Exception e){
System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
return null;
}
}



public boolean Executa_Query(String msql) throws SQLException {
try {
Connection conn = new MOD00000().conectar();
PreparedStatement pst = conn.prepareStatement(msql);
pst.executeQuery();
return true;
}
catch (SQLException s) {
if (s.getErrorCode() == 2627) {
JOptionPane.showMessageDialog(null, "Chave primária duplicada!", "ERRO", 0);
return false;
}
else {
JOptionPane.showMessageDialog(null, "Erro inexperado.\n Entre em contato com o desenvolvedor e informe este número: " + s.getMessage(), "ERRO", 0);
return false;
}
}
catch(Exception e) {
e.printStackTrace();
return false;
}
}

public static void main(String args[]) throws SQLException{
new MOD00000().Executa_Query("SELECT * FROM TESTE");
}

}
-------------------------------------------------------------------------------------------------------------------------------
FIM DO ARQUIVO
-------------------------------------------------------------------------------------------------------------------------------

Muito Obrigado!
Renato
jbmsegundo
JavaBaby
[Avatar]

Membro desde: 27/04/2007 13:22:04
Mensagens: 90
Offline

Você já deu uma olhada no material disponibilizado pela caelum do FJ-21?
[]s

http://www.jsegundo.com.br
leonardonaweb
What is classpath?
[Avatar]

Membro desde: 04/11/2007 18:57:22
Mensagens: 6
Localização: São Paulo
Offline

vc tem que instanciar a classe conexão, assim.

public class Cadastro {

private Connection connection;

public Cadastro() throws SQLException{

this.connection=(Connection)Conexao.getConnection();

}

Host Brasil Internet - Hospedagem de Sites
Consultoria e Servidores Dedicados
Confira:
http://www.hostbrasil.net

Portal Webmaster
http://www.portalwebmaster.net
[Email] [WWW] [MSN] [ICQ]
marcosharbs
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2008 11:53:39
Mensagens: 661
Offline

Bem faça uma classe so para a conexao com uma função que retorne uma variavel do tipo Connection, ai faça uma classe ConsultaUsuários com uma função que receba uma conexao como parametro, nesse método execute a query q retorne um arraylist do tipo Usuario, ai na classe cadastro Usuário vc instancia esses objetos e ai vc pode chamar o metodo getUsuarios por exemplos que é o metodo que executa a query e retorna um arraylist e vc terá as informações que deseja para trabalar na classe.
É so usar o conceito de orientação a objeto.

======================================================

Blog com foco em desenvolvimento web com java.

http://marcosharbs.wordpress.com/

======================================================
tonare25
Entusiasta Java

Membro desde: 02/11/2008 13:21:24
Mensagens: 17
Offline

marcosharbs wrote:Bem faça uma classe so para a conexao com uma função que retorne uma variavel do tipo Connection, ai faça uma classe ConsultaUsuários com uma função que receba uma conexao como parametro, nesse método execute a query q retorne um arraylist do tipo Usuario, ai na classe cadastro Usuário vc instancia esses objetos e ai vc pode chamar o metodo getUsuarios por exemplos que é o metodo que executa a query e retorna um arraylist e vc terá as informações que deseja para trabalar na classe.
É so usar o conceito de orientação a objeto.


Oi Marcos,
Eu sou novo em Java e também em POO....
Como eu faço para retornar um arraylist através de uma instância de minha classe?

Acho que esta será a solução para o que eu preciso.....

Muito Obrigado!
Renato
marcosharbs
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2008 11:53:39
Mensagens: 661
Offline

bem vamos a um exemplo entao do que te falei antes

primeiro a classe para abrir a conexao com o banco:



depois uma classe com um metodo que executa uma query e retorna um arraylist:



ai na classe cadastroUsuario vc pode fazer o seguinte:



ai vc tem um arraylist com todos os usuarios ai claro vc tera um objeto Usuario com nome, idade, ... e metodos para acessar esses atributos (gets e sets).

======================================================

Blog com foco em desenvolvimento web com java.

http://marcosharbs.wordpress.com/

======================================================
tonare25
Entusiasta Java

Membro desde: 02/11/2008 13:21:24
Mensagens: 17
Offline

Oi Marcos e amigos do Fórum,
Peguei diversas informações pelo Fórum e criei uma classe para pesquisas genéricas do sistema (o que o amigo Marcos indicou, se entendi, teria que fazer novas classes para cada pesquisa....).
Porém, quando exibo os dados que gravei no ArrayList, aparece tudo em uma unica linha..... Coisa de principiante...
Algupem pode por favor me ajudar como faço para gravar corretamente os dados no Array para que depois eu possa trabalhar estes dados (como exemplo alimentar um JTable)....



Muito Obrigado!
Renato
tonare25
Entusiasta Java

Membro desde: 02/11/2008 13:21:24
Mensagens: 17
Offline

Up!

Muito Obrigado!
Renato
marcosharbs
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2008 11:53:39
Mensagens: 661
Offline

o certo seria vc gravar um objeto no arraylist, tipo digamos um objeto do tipo usuário, vc retorna do banco as informações, nome, telefone, endereço... sei la os campos que vc tem e entao vc popula um objeto do tipo Usuario ai entao vc adiciona esse objeto no arraylist e retorna esse arraylist, no codigo que tinha te passado eu fazia isso:



ali primeiro instancio um objeto do tipo Usuario ai populo ele com os campoos vindo do banco e então adiciono ele no arraylist, ai qdo vc percorrer o array depois vc vai retorna um objeto de usuario e ai vc pode acessar seus métodos e etc.

======================================================

Blog com foco em desenvolvimento web com java.

http://marcosharbs.wordpress.com/

======================================================
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team