Boa noite pessoal do GUJ!
Criei uma classe que implementa a “Runnable”. Esta classe cria e me retorna uma conexão com o banco de dados, no método “Run” esta toda a parte da conexão. Instanciei esta classe e na sequência tentei pegar a conexão que ela me retorna, porém, a conexão retornada é null. O mais curioso é que em debug retorna a conexão e na execução normal retorna a conexão nula. Alguém pode ajudar?
Obrigado.
Classe de conexão que implementa Runnable:
public class ConnectionFactoryParalelo implements Runnable {
public Connection con;
@Override
public void run() {
try {
Class.forName("oracle.jdbc.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
con = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521/XE", "teste", "teste");
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("Conectado ao banco.");
}
public Connection getCon() {
return con;
}
}
Método que salva os dados no banco:
public void salvaContatoParalelo(Contato c) throws SQLException{
ConnectionFactoryParalelo cfp = new ConnectionFactoryParalelo();
Thread t = new Thread(cfp);
t.start();
Connection conec = cfp.getCon();
String sql;
sql = "INSERT INTO CONTATOS(ID, NOME, EMAIL, ENDERECO, DATANASCIMENTO) " +
"VALUES(contatosteste.nextval, ?, ?, ?, ?)";
//criando o prepared statement
PreparedStatement stmt = conec.prepareStatement(sql);
//seta os valores
stmt.setString(1, c.getNome());
stmt.setString(2, c.getEmail());
stmt.setString(3, c.getEndereco());
stmt.setDate(4, new Date(c.getDataNascimento().getTimeInMillis()));
//executa o sql
stmt.execute();
stmt.close();
System.out.println("Contato salvo com sucesso.");
}