MegaJ
Junho 14, 2013, 11:38am
#1
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.
[code]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();
}
}
}[/code]
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);
}
}
acho q seu problema é o numero da porta
.getConnection("jdbc:mysql://localhost:3306 /integracao
MegaJ
Junho 14, 2013, 11:52am
#3
Não é a porta, testei aqui, mas não funcionou. Pra mim ele não está chamando o método getConector()…
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.
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?
MegaJ
Junho 14, 2013, 3:40pm
#6
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));
}
}
}
[code]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();
}
}[/code]
obrigado pela atenção de vocês =)