[Resolvido] Criação de classe de conexão Java - padrão singleton

5 respostas
M
Olá pessoal, Estou com dificuldades em fazer uma classe de conexão ao banco de dados MySql seguindo o padrão singleton (professor solicitou), não consigo conectar ao banco. Poderiam me ajudar? Desde já agradeço.
public class Conexao {

	private static Connection conexao = null;
	private static Conexao self = null;

	protected Connection getConector() throws ClassNotFoundException, SQLException {
		if (conexao == null) {
			Class.forName("com.mysql.jdbc.Driver");
			conexao = DriverManager.getConnection("jdbc:mysql://localhost/integracao", "root","");
		}
		return conexao;
	}

	public static synchronized Conexao getInstacia() {
		if (self == null)
			return new Conexao();
		else
			return self;
	}

	@Override
	protected void finalize() throws Throwable {
		if (self != null) {
			desconectar();
		}
	}

	public void desconectar() {
		try {
			conexao.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

Para testar:

public class TestaConexao {
	java.sql.Statement stm = null;
	String sql = "INSERT INTO Categoria VALUES (null,'Teste');";

	public TestaConexao() throws ClassNotFoundException, SQLException {
		stm = Conexao.getInstacia().getConector().createStatement();
		stm.executeUpdate(sql);
	}

}

5 Respostas

M

acho q seu problema é o numero da porta

.getConnection("jdbc:mysql://localhost:3306/integracao

M

Não é a porta, testei aqui, mas não funcionou. Pra mim ele não está chamando o método getConector()…

F

Qual o erro q está dando ?
Se está usando uma IDE execute em modo debug para verificar se está chamando o getConector(), se não, coloque um sysout lá pra verificar.

D

MegaJ, seu código em si, aparentemente está correto.
O nome do banco, usuário e senha estão corretos? Você colocou o jar do mysql no seu projeto?
Qual erro está ocorrendo?

M
Consegui resolver com ajuda de um amigo; criei duas classes - a conexão estava ok, o problema foi a parte da visão:
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DAO {
	Statement stm = null;

	public DAO() throws ClassNotFoundException, SQLException, FileNotFoundException, IOException {
		Conexao.getInstace();
		stm = Conexao.getConector().createStatement();
	}

	public void consulta() throws SQLException {
		String sql = "Select * FROM Cliente";
		ResultSet rs = stm.executeQuery(sql);
		while(rs.next()){
			System.out.println(rs.getString(2));
		}
	}

}
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;

public class Visao {

	/**
	 * @param args
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 * @throws IOException 
	 * @throws FileNotFoundException 
	 */
	public static void main(String[] args) throws ClassNotFoundException, SQLException, FileNotFoundException, IOException {
		DAO dao = new DAO();
		dao.consulta();

	}

}

obrigado pela atenção de vocês =)

Criado 14 de junho de 2013
Ultima resposta 14 de jun. de 2013
Respostas 5
Participantes 4