Ai pessoal to recebendo o seguinte erro ao usar preparedstatement:
[quote]Exception in thread “main” java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from PreparedStatement to PreparedStatement
at Con1.main(Con1.java:44)
[/quote]
esse aqui é a class:
[code]import java.sql.Connection;
import java.sql.SQLException;
import com.mysql.jdbc.PreparedStatement;
public class Contato {
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
private Long id;
private String nome;
private String email;
private String endereco;
}
public class Con1 {
public static void main(String[] args)throws SQLException {
Connection con = ConnectionFactory.getConnection();
String sql = "insert into contatos (nome,email,endereco) values (?,?,?)";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, "Caelum");
stmt.setString(2, "contato@caelum.com.br");
stmt.setString(3, "R. Vergueiro 3185 cj57");
stmt.execute();
stmt.close();
System.out.println("Gravado!");
con.close();
}
}[/code]
e o código esta igual o da apostila da caelum…
se alguem puder ajudar…
flw !!!
Verifica se sua aplicação tem o Driver do MySQL e revise a sua ConnectionFactory outra coisa esse import na linha 04 da classe contato ta estranho.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
private static final String URL="jdbc:mysql://localhost:3306/test";
private static final String DRIVER="com.mysql.jdbc.Driver";
private static final String USUARIO="root";
private static final String SENHA="";
public static Connection getConnection() throws SQLException{
try{
Class.forName(DRIVER);
System.out.println("Conectado ao banco");
return DriverManager.getConnection(URL, USUARIO, SENHA);
}
catch (ClassNotFoundException e){
throw new SQLException(e.getMessage());
}
}
}
esse aqui é meu conectionfactory:
[code]import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
public static Connection getConnection() throws SQLException {
try {
Class.forName(“com.mysql.jdbc.Driver”);
System.out.println(“Conectado!”);
return DriverManager.getConnection(“jdbc:mysql://localhost/teste”,“root”,"");
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}
[/code]
o erro é exatamente nessa linha:
PreparedStatement stmt = con.prepareStatement(sql);
revisei tudo mas continua dando erro…
troco isso import com.mysql.jdbc.PreparedStatement;
por isso
import java.sql.PreparedStatement;
?
Opa cara valeu pela ajuda, mas o erro era no cast dessa linha:
PreparedStatement stmt = con.prepareStatement(sql);
O certo é:
PreparedStatement stmt = (PreparedStatement) con.prepareStatement(sql);
ou:
java.mysql.PreparedStatement stmt = con.prepareStatement(sql);
abrass!!! flw
[quote=Whit3Byt3]Opa cara valeu pela ajuda, mas o erro era no cast dessa linha:
PreparedStatement stmt = con.prepareStatement(sql);
O certo é:
PreparedStatement stmt = (PreparedStatement) con.prepareStatement(sql);
ou:
java.mysql.PreparedStatement stmt = con.prepareStatement(sql);
abrass!!! flw[/quote]
Se vc troca o import não precisa fazer o cast.