import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class ContatoDAO {
private Connection connection;
public ContatoDAO() throws SQLException{
this.connection = DriverManager.getConnection();
}
public void adiciona(Contatos contatos) throws SQLException{
PreparedStatement stmt = this.connection.prepareStatement("insert into contatos(nome, email)values(?,?,?)");
stmt.setString(1, contatos.getNome());
stmt.setString(2, contatos.getEmail());
stmt.execute();
stmt.close();
}
}
Tipo, na apostila da caelum, em vez de usar a classe ConnectionFactory, usei a DriverManager, pois o eclipse nao reconhece a ConnectionFactory, alias, ela nem existe no javadoc, dah o seguinte erro:
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java:545)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at ContatoDAO.<init>(ContatoDAO.java:12)
at Insere.main(Insere.java:14)
Bom meu querido, o erro acontece quando vc chama um método getConnection() da classe DriverManager esse método não é o método que vc quer chamar, o método que vc quer chamar é para criar uma conexão, ou seja, o método getConnection() da classe ConnectionFactory, como vc observou essa classe não existe no Javadoc por que essa classe vc que deve criar, o método getConnection da classe DriverManager é para estabelecer a conexão como o BD.Vou colocar abaixo como ficaria as classes. Outra coisa que eu observei é q vc só usa duas clausulas no insert da sua classe e na apostila da caelum ele usa três ficaria do jeito q esta na classe DAO abaixo, caso dê erro pode ser isso fique ligado.
sim, vou testar pra ver, mas na verdade, usei duas clausulas no insert de proposito, na minha tabela do BD tem soh dois campo msm, obrigado pela atenção.
O problema eh o seguinte agora, o Class.forname naum tah achando o Driver, o pior eh q descompactei o mysqlconector no diretorio do meu projeto e nada, o ¨%$¨*%$*& do Class.forname() naum acha !!! olha soh a implementação:
package br.com.jdbc;
import java.sql.*;
public class ConnectionFactory {
public static Connection getConnectionFactory() throws SQLException{
try{
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection("jdbc:mysql://localhost/familia", "root", "root");
}catch(ClassNotFoundException e){
System.out.println(e);
throw new SQLException(e.getMessage());
}
}
}
no netbeans por exemplo, tu aperta o botão direito do mouse em cima da pasta bibliotecas (padrão do netbeans), e adicionar pasta/jar , seleciona o conector, e pronto,