Como fazer só uma classe de conexão com BD?

3 respostas
A

Olá galera!

Estou com o seguinte problema: desejo criar somente um arquivo(classe) para comexão com a base de dados e, dessa forma, nele não haverá nenhuma sql. As query ficarão em outros arquivos. Porém, não estou conseguindo passar para esses outros arquivos o objeto conn criado nessa classe de conexão.
Segue o código de uma conexão e sql na mesma classe. O que está em comentário, deve ficar em outras classes e não na de conexão.

Desde jah agradeço…

import java.sql.*; 
import javax.swing.*; 


public class Bco 
{ 
public Bco() 
{ 
	Connection conn = null;	
try 
{  
Class.forName("org.firebirdsql.jdbc.FBDriver"); 
conn = DriverManager.getConnection( "jdbc:firebirdsql:localhost/3050:C:/Temp/SiPHE_DB/SIPHE.gdb", "SYSDBA", "masterkey");
//Statement st = con.createStatement(); 
//String s = "SELECT * FROM testeBD"; 
//ResultSet rs = st.executeQuery(s); 
//while (rs.next()) 
//{ 
//JOptionPane.showMessageDialog(null, rs.getString(1) + "-" + rs.getString(2)); 
//} 
 //con.close(); 
} 
catch(Exception e) 
{ 
System.out.println(e); 
System.exit(0); 
} 
} 
    
   public static void main(String args[]) 
   { 
   Bco obj = new Bco(); 
   } 
}

[size=“9”][color=“green”]*Editado para adicionar o BBCode ;)[/color][/size]

3 Respostas

F

Pode fazer assim, no caso aqui connectando com o mysql

package conexao;

import java.sql.*;

public class Conexao {
   
   public Connection con=null;
   public Statement stm;
 
   public Connection getConect() {

      try {

         Class.forName("org.gjt.mm.mysql.Driver");
         con = DriverManager.getConnection("jdbc:mysql://localhost:3306/BD","","");

         
      } catch (Exception e) {
         System.out.println("não foi possível conectar ao banco" + e.getMessage());
      }
return con;
   }

public Connection desconnect(){
		try{
		con.close();
		System.out.println("Fechou Conexão");	
			}
		catch(Exception e){
		e.printStackTrace();
			}
		return con;
		}

Beleza , agora sua classe que vai fazer o select…

public void cadastraAlgo(){
		String qMp32="INSERT INTO MP3 VALUES(?,?)";
		con=cx.getConect();
		try{
		PreparedStatement ps=con.prepareStatement(qMp32);
		ps.setInt(1,nome);
		ps.setString(2,sobrenome);
		int i=ps.executeUpdate();
		if(i!=0){
		resposta="Cadastro Efetuado!";
		}
		}
		catch(SQLException e){
		resposta="Erro no Banco de dados"+e.getMessage();
		}
		finally{
		cx.desconnect();
		}	
              }

Lembrando que nessa classe vc deve declarar as variáveis e instanciar a conexão , a classe acima…OKz?..

private String resposta=null;
private Connection con=null;
private Statement st=null;
private ResultSet rs=null;
Conexao cx= new Conexao();
A

vc tbm pode criar a classe q faz a conexão como abstrata e as outras classes q a utilizam extenderem esta classe…
neste caso qdo vc quiser se conectar:

[]'s

A

Valeu FelipeSS_2 e andersonra!!!

Agradeço a ajuda de vcs… tah funcionando blzinha… :grin:

Criado 9 de novembro de 2004
Ultima resposta 10 de nov. de 2004
Respostas 3
Participantes 3