PreparedStatement - Resolvido

3 respostas
java
V

Bom tarde!

Estou tentando criar um método que insere dados em um banco de dados Mysql. Quando uso a linha de código:
PrepareStatement stmt = connection.prepareStatement(sql);
O java pede para que eu crie o método preparedStatement(java.lang.string) na classe ConnectionFactory…
Alguém sabe como ajudar?

import br.com.vinicius.jdbc.ConnectionFactory;

import br.com.vinicius.jdbc.modelo.Contato;

import java.sql.Date;

import java.sql.PreparedStatement;

import java.sql.SQLException;

public class ContatoDao {
private final ConnectionFactory connection;

public ContatoDao() throws ClassNotFoundException{
 this.connection =  (ConnectionFactory) ConnectionFactory.getConnection();
}

public void adiciona(Contato contato){
    String sql ="insert into contatos" +
            "(nome, email, endereco, dataNasciemnto)"+
            "values(?,?,?,?)";
    
   
  try {

PreparedStatement stmt= connection.prepareStatement(sql);

stmt.setString(1,contato.getNome());

stmt.setString(2,contato.getEmail());

stmt.setString(3,contato.getEndereco());

stmt.setDate(4, new Date(

contato.getDataNascimento().getTimeInMillis()));
stmt.execute();

stmt.close();

} catch (SQLException e) {

throw new RuntimeException(e);

}

}
}
import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

public class ConnectionFactory {

public static java.sql.Connection getConnection() throws ClassNotFoundException {
     Connection connection = null;
   
        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3307/fj21","root","23catra32"); 
        
        return connection;
        
    } catch (ClassNotFoundException e) {
        System.out.println("O drivernão foi encontrado!.");
    return null;
    } catch (SQLException e){
        System.out.println("Não foi possível conectar ao banco de dados.");
    return null;
    }

}
}

3 Respostas

I

Como assim ele pede ?

V

Eu tinha q fazer um casting para classe Connection.
A classe ConnectionFactory foi eu quem criou, e o método prepareStatement é da API Connection… Como eu estava seguindo um exemplo, eu não me atentei para essa diferença. Eu consegui resolver este problema com a ajuda de um outro grupo… Obg!

I

Ah entendi, beleza, só marcar como resolvido então :slight_smile:

Criado 26 de março de 2016
Ultima resposta 27 de mar. de 2016
Respostas 3
Participantes 2