2
I am making a system in java with postgresql database for client registration, any help is welcome to solve my problem.
org.postgresql.util.psqlexception: ERROR: syntax error at or near "," Posição:50
Control Class:
public class ControleCliente {
ConexaoBD conex = new ConexaoBD();
ModeloClientes modelo = new ModeloClientes();
public void Salvar(ModeloClientes modelo){
conex.conexao();
try {
PreparedStatement pat = conex.con.prepareStatement("insert into Clientes(nome_Cliente,telefone)values,codigo_Cliente(?,?,?)");
pat.setString(1,modelo.getNome());
pat.setInt(2,modelo.getTelefone());
pat.setInt(3,modelo.getCodigo());
pat.execute();
JOptionPane.showMessageDialog(null,"Cadastro Salvo com Sucesso!");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Erro ao inserir dados \nErro:!"+ex);
}
conex.desconecta();
}
}
Model Class:
package model;
public class ModeloClientes {
private int codigo;
private String nome;
private int telefone;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getTelefone() {
return telefone;
}
public void setTelefone(int telefone) {
this.telefone = telefone;
}
}
SAVE BUTTON:
private void jButtonGravarClienteActionPerformed(java.awt.event.ActionEvent evt) {
modelo.setNome(jTextFieldNomeFantasia.getText());
modelo.setTelefone(Integer.parseInt(jTxtClienteTelefone.getText()));
controle.Salvar(modelo);
}
DATABASE:
COLUMN CLIENT CODE:
-- Column: public."Clientes"."codigo_Cliente"
-- ALTER TABLE public."Clientes" DROP COLUMN "codigo_Cliente";
ALTER TABLE public."Clientes"
ADD COLUMN "codigo_Cliente" integer NOT NULL DEFAULT
nextval('"Clientes_Código_seq"'::regclass);
COLUMN CLIENT CODE:
-- Column: public."Clientes"."nome_Cliente"
-- ALTER TABLE public."Clientes" DROP COLUMN "nome_Cliente";
ALTER TABLE public."Clientes"
ADD COLUMN "nome_Cliente" text COLLATE pg_catalog."default" NOT NULL;
SPEAKER:
-- Column: public."Clientes".telefone
-- ALTER TABLE public."Clientes" DROP COLUMN telefone;
ALTER TABLE public."Clientes"
ADD COLUMN telefone integer;
COMMENT ON COLUMN public."Clientes".telefone
IS 'tel';
Your query is wrong:
INSERT INTO Clientes(nome_Cliente, telefone, codigo_Cliente) VALUES (?,?,?)
. To avoid this, pass SQL in its default, uppercase form. Fix this, which is related to the error you posted. If you still have any problems, update your question with the news.– user86792