Pessoal,
estou tentando inserir em uma tabela no mysql com o seguinte Metodo.
public void inserir() {
String SQL;
SQL = "insert into usuario(id, cod_senha, NOM_USUARIO, NOM_LOGIN, EMAIL, SENHA_MAIL) values (null," +
this.nom_senha + "," + this.nom_usuario + "," + this.nom_login + "," + this.nom_email + ","+this.nom_semail +")";
try {
acesso.execute(SQL + ";",0);
} catch (SQLException ex) {
Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
}
}
Porem o mesmo cai no exception o que está errado ?
Bom dia…
Então cara, só olhando assim eu não sei não, mas faz o seguinte:
public void inserir() {
String SQL;
SQL = "insert into usuario(id, cod_senha, NOM_USUARIO, NOM_LOGIN, EMAIL, SENHA_MAIL) values (null," +
this.nom_senha + "," + this.nom_usuario + "," + this.nom_login + "," + this.nom_email + ","+this.nom_semail +")";
System.out.pintln("string: " + SQL);
try {
acesso.execute(SQL + ";",0);
} catch (SQLException ex) {
Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
}
}
Aí vc pega os dados e roda direto no console do BD, se não virar, qual a exceção que tá dando?
flw.
OK, RESOLVIDO, O PROBLEMA ERA A CONCATENAÇÃO.
TINHA DE FICAR ASSIM.
[code]
public void inserir() {
String SQL;
SQL = "insert into usuario(id, cod_senha, NOM_USUARIO, NOM_LOGIN, EMAIL, SENHA_MAIL) values (null,\"" +
this.nom_senha + "\",\"" + this.nom_usuario + "\",\"" + this.nom_login + "\",\"" + this.nom_email + "\",\""+this.nom_semail +"\")";
try {
acesso.execute(SQL + ";",0);
} catch (SQLException ex) {
int Erro;
Erro = ex.getErrorCode();
Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
}
}[/code]
Para isso foi criado o PreparedStatement… dá uma olhada nisso.
Agora faça da maneira correta com PreparedStatement.
SQL = "insert into usuario(cod_senha, NOM_USUARIO, NOM_LOGIN, EMAIL, SENHA_MAIL) values (?,?,?,?,?)";
pstmt.setString(1, this.nom_senha);
...
Voce simplesmente seta o tipo do parametro e o driver faz essa parte suja das aspas.
pstmt.setString(1, this.nom_senha);
E o id geralmente deve ser gerado automaticamente no BD.
Nesse metodo de inserir, como eu poderia chamar ele no meu pacote controle validando se há campos em brancos, e se estiver campos em branco ele exibi uma mensagem…
Mas tudo isso sendo tratado no controle.