Estou desenvolvendo uma classe que terá como função conectar ao banco de dados. Veja a classe:
import java.sql.*;
public class ConnectDB {
private static Connection connect;
private static ConnectDB instance;
private ConnectDB()
{
try {
Class.forName("com.mysql.jdbc.Driver");
//connect DB
connect = DriverManager.getConnection("jdbc:mysql://ip/database","root","password");
}
catch(SQLException e)
{
System.err.println(e.getMessage());
}
catch(ClassNotFoundException e)
{
System.err.println(e.getMessage());
}
}
public static ConnectDB getInstance()
{
if(instance == null) {
instance = new ConnectDB();
}
return instance;
}
public Connection getConnection()
{
return instance.getConnection();
}
}
Agora, Eu quero chamar o objeto e fazer uma consulta ao banco de dados:
import java.sql.*;
import ConnectDB;
import sun.security.jca.GetInstance.Instance;
public class getInfo {
private String query = "select from tables";
String errorException;
String success;
public void getInfo()
{
System.out.println("Connected!");
ConnectDB cnn = ConnectDB.getInstance();
Connection connection = cnn.getConnection();
PreparedStatement ps;
ResultSet rs;
try {
ps = connection.prepareStatement(query);
success = "Conexão efetuada com sucesso!";
}
catch(SQLException e )
{
System.out.println(e.getErrorCode());
errorException = "Error ao obter dados!";
}
}
}
Veja o erro ao executar minha aplicação.
java.lang.StackOverflowError;
ConnectDB.getConnection(ConnectDB.java:59)