Galera minha dúvida é a seguinte:
Para conexão com o MySQL eu tenho esta classe:
import com.mysql.jdbc.exceptions.jdbc4.CommunicationsException;
import com.mysql.jdbc.*;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import mxalmox.configuracoes.sistema.PropriedadesConfig;
import mxalmox.logs.GeradorLog;
/**
*
* @author TcHéLo
*
*/
public class FabricaDeConexao {
private static String DRIVER = "com.mysql.jdbc.Driver";
private static String PARAMETRO;
private static Connection con;
private static GeradorLog gerador = new GeradorLog(FabricaDeConexao.class);
public static void criaConexao() throws SQLException, CommunicationsException{
FabricaDeConexao.PARAMETRO = "jdbc:mysql://" + PropriedadesConfig.getSERVIDOR()+
":" + PropriedadesConfig.getPORTA() +
"/" + PropriedadesConfig.getBANCO();
try {
Class.forName(DRIVER);
con = (Connection) DriverManager.getConnection( FabricaDeConexao.PARAMETRO,
PropriedadesConfig.getUSUARIO_BANCO(),
PropriedadesConfig.getSENHA_BANCO() );
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null, "Driver de Conexao à Central não Encontrado", e.getMessage() , JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
gerador.mostraLogError(e.getMessage());
gerador.gravaLogError(e.getMessage());
}
}
public static Connection pegaConexao() throws SQLException{
if(con.isClosed())
return null;
else
return con;
}
public static void fechaConexao() throws SQLException, Exception{
if(!con.isClosed())
con.close();
}
Aí eu tenho o método criaConexao()
para justamente criar a conexão com o MySQL e jogar em minha Connection con.
Também tenho o método pegaConexao()
para retornar a minha Connection con.
Suponhamos que em outra classe eu tenha este código:
FabricaDeConexao.criaConexao();
Connection con = FabricaDeConexao.pegaConexao();
Connection con2 = FabricaDeConexao.pegaConexao();
Neste código eu tenho dois objetos, con e con2, diferentes. Porém tenho apenas uma conexão aberta com o banco de dados.
Estes meus objetos, são threads diferentes?
Posso fazer um LOCK TABLE que será travada para os dois objetos??
Valeuuuu…