Olá pessoal,
Não estou conseguindo inserir dados no banco…
tenho a classe de conexão e um Servlet que faz o envio.
A minha suspeita é a respeito do Driver MsQL… onde eu coloco? Na pasta WEB-INF???
Obrigado
Olá pessoal,
Não estou conseguindo inserir dados no banco…
tenho a classe de conexão e um Servlet que faz o envio.
A minha suspeita é a respeito do Driver MsQL… onde eu coloco? Na pasta WEB-INF???
Obrigado
dentro da pasta lib do WEB-INF.
Lucas não estou conseguindo encontrar a pasta LIB na estrutura de diretórios que o NetBeans 5.0 cria.
Obrigado!
Bom, não trabalho com Netbeans, mas deve haver algum opção relacionada ao Build Path da tua aplicação, nele tu pode adicionar os Jars necessários para o funcionamento da tua aplicação.
Encontreii
Agora vou testar
valeu
No netbeans você pode clicar com o botão da direita em cima da pasta Libraries do projeto e clicar em ADD JAR/Folder …
Aí é só indicar onde está o Jar que o Netbeans faz o resto pra você…
Ex:
[color=blue]public class ConnectionFactory {
static String driverName = "org.gjt.mm.mysql.Driver"; // MySQL MM JDBC driver
static String serverName = "localhost";
static String mydatabase = "test";
static String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url
static String username = "root";
static String password = "prodesp";
public static Connection getConnection() throws SQLException {
try {
//deb well
System.out.println("Carregando");
// Carregando Driver (Informando o protcolo para o DriveManager)
Class tmp = Class.forName(driverName);
// Criando a conexão com o Banco de Dados
System.out.println("Conectando");
return DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}
[/color]
Se der a Exception ClassNotFound, verifica se o caminho do Jar não está no classpath… Tem um artigo tbm aqui no Guj sobre o classpath…
Abs! ^^
Amigos
Ja fiz os procedimentos,
A dúvida que tenho é a seguinte:
Se eu fizesse com o banco de dados Access eu iria nas FERRAMENTAS ADMINISTRATIVAS e especificava onde estava o banco.
Com o MySQL funciona assim? Se não for como eu faço para a aplicação enviar dados para o banco que criei???
Obrigado
static String driverName = "org.gjt.mm.mysql.Driver"; // MySQL MM JDBC driver
static String serverName = "localhost";
static String mydatabase = "test";
static String url = "jdbc:mysql://" + serverName + "/" + nome_da_base_de_dados; // a JDBC url
static String username = "root";
static String password = "prodesp";
Note que aí está toda a configuração necessária para a tua app se comunicar com o BD.
Qual seria a tua dúvida, sendo mais específico.
Qual a possível causa deste erro???
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘?,?,?,?,?,?,?,?)’ at line 1
NotifyUtil::java.net.SocketException: Software caused connection abort: recv failed
Esté é o servlet que faz o envio…
[code]import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.;
import javax.servlet.http.;
import java.sql.*;
import br.com.abrades.iperfil.java.Cadastro1;
import br.com.abrades.iperfil.conexao.Conexao;
public class Scadastro1 extends HttpServlet{
public void doPost (HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
String s_matricula = request.getParameter(“s_matricula”);
int n_rg = Integer.parseInt(request.getParameter(“n_rg”));
int n_cpf = Integer.parseInt(request.getParameter(“n_cpf”));
String s_nome = request.getParameter(“s_nome”);
int n_cep = Integer.parseInt(request.getParameter(“n_cep”));
int n_fone = Integer.parseInt(request.getParameter(“n_fone”));
int n_celular = Integer.parseInt(request.getParameter(“n_celular”));
String s_email = request.getParameter(“s_email”);
// Criando o objeto Funcionario e setar o bean
Cadastro1 c1 = new Cadastro1();
c1.setMatricula(s_matricula);
c1.setRg(n_rg);
c1.setCpf(n_cpf);
c1.setNome(s_nome);
c1.setCep(n_cep);
c1.setFone(n_fone);
c1.setCelular(n_celular);
c1.setEmail(s_email);
PreparedStatement statement;
String strSQL = "INSERT INTO tbl_dadospessoais(s_matricula, n_rg, n_cpf, s_nome, n_fone, n_celular, s_conjuge, s_email) " +
“Values(? , ? , ? , ? , ? , ? , ? , ?)”;
try{
Connection conn = Conexao.getConnection();
statement = conn.prepareStatement(strSQL);
statement.setString(1,c1.getMatricula());
statement.setInt(2,c1.getRg());
statement.setInt(3,c1.getCpf());
statement.setString(4,c1.getNome());
statement.setInt(5,c1.getFone());
statement.setInt(6,c1.getCelular());
statement.setString(7,c1.getConjuge());
statement.setString(8,c1.getEmail());
statement.execute(strSQL);
//executa o comando sql
statement.executeUpdate();
//fecha o atributo que carrega o camando sql
statement.close();
//fim da transação
conn.commit();
}catch(SQLException e){
e.printStackTrace();
System.out.println(e);
}
response.sendRedirect(“www/profissional/con_cadastro1.jsp”);
}
}[/code]
Obrigado
Será que um dos seus
statement.setString(1,c1.getMatricula());
statement.setInt(2,c1.getRg());
statement.setInt(3,c1.getCpf());
statement.setString(4,c1.getNome());
statement.setInt(5,c1.getFone());
statement.setInt(6,c1.getCelular());
statement.setString(7,c1.getConjuge());
statement.setString(8,c1.getEmail());
não está setando null ?
OLá,
Se estivesse obtendo algum null eu obteria o erro de NullPointerException…
eu não sei qual a causa deste erro??? será que é versão???
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘? , ? , ? , ? , ? , ? , ? , ?)’ at line 1
Nananinanão…não exatamente.
Se o seu método der um return null, como é que fica??
Corrigindo, tipos primitivos não aceitam null. No seu caso, somente os métodos que retornam String poderiam estar passando null.
Outra coisa, não há necessidade desses 2 comandos, apenas 1:
statement.execute(strSQL);
//executa o comando sql
statement.executeUpdate();
Deixe somente o primeiro.
Obrigado Senhores
vou testar aqui…
Todos os dados estão sendo obtidos corretamente.
E o erro que persiste é :
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘?,?,?,?,?,?,?)’ at line 1
Qual a causa deste erro?
Obrigado
Meu, foi mal.
Nem percebi.
Deixe apenas esse método do prepareStatement.
statement.execute();
Sem parâmetros, pois você já setou a string sql antes.
Se ainda não for isso, separe os ( das palavras reservadas.
E caso ainda o erro persistir, como eu não tenho experiência com MySQL, sugiro procurar no google algo relacionado ao erro.
Senhores… muito obrigado !!!
Tudo funciona…
Muito obrigado…
Entao… tem outra coisa que eu reparei aí também, que o nosso amigo comentou la em cima podendo ser um erro de variável null. Você setou alguns atributos e depois foi recuperar outros.
Você recuperou do request o CEP e não utiliza na inclusão, e utiliza conjuge na inclusao e nem recuperou do request, deixando provavelmente null a variável. Parece que esse seu método foi alterado e nao foi atualizado todos os campos. confirma isso e depois testa.