Boa, tarde estou precisando fazer o meu TCC em Netbeans e mysql workbench, mas esta dado esse erro. alguém me ajuda por favor preciso resolver até quarta feira.
ERRO AO INSERIR DADOS!/ERRO:JAVA.SQL.SQLEXCEPTION:PARAMETER INDEX OUT OF RANGE(0<1).
.Boa, tarde estou precisando fazer o meu TCC em Netbeans e mysql workbench, mas esta dado esse erro. alguém me ajuda por favor preciso resolver até quarta feira.
ERRO AO INSERIR DADOS!/ERRO:JAVA.SQL.SQLEXCEPTION:PARAMETER INDEX OUT OF RANGE(0<1).
.Ótimo título, muito útil, resumiu toda a sua dúvida. Isso vai te ajudar muito sim…
Pra sabermos onde está o erro você precisa mostrar o código.
Suponho que seja no preparedStatement. Se você quiser adicionar três valores, você deve indicar os três, exemplo:
String sql = "INSERT INTO tabela ("nome", "idade", "profissao") VALUES (?, ?, ?)";
// ...
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, "Rodinei");
preparedStatement.setString(2, "25");
preparedStatement.setString(3, "Programador");
Esse 1, 2 e 3
representam a quantidade de parametros que você passou no VALUES (?, ?, ?)
e nas COLUNAS ("nome", "idade", "profissao").
Provavelmente vc esta utilizando um loop para preencher seus parametros da sql. No entanto seu contador do loop deve estar sendo inicializado com 0 , mas o correto seria inicia-lo com 1
Bom dia em relação aos preparedStatment estão corretos.
Eu não estou utilizando loop.
import Modelo.modeloproduto;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
*
@author Rodinei
*/
public class controleproduto {
ConexaoBD conex = new ConexaoBD();
modeloproduto mod = new modeloproduto();
public void Salvar(modeloproduto mod) {
conex.conexao();
try {
PreparedStatement pst = conex.con.prepareStatement(“insert into produtos(Cod_Forn,Descricao,Marca,Tamanho,Cor,Tipo,Quantidade,Valor,Custo)values(?,?,?,?,?,?,?,?,?)”);
pst.setInt(1, mod.getCod_Prod());
pst.setInt(2, mod.getCod_Forn());
pst.setString(3, mod.getDescricao());
pst.setString(4, mod.getMarca());
pst.setString(5, mod.getTamanho());
pst.setString(6, mod.getCor());
pst.setString(7, mod.getTipo());
pst.setInt(8, mod.getQuantidade());
pst.setDouble(9, mod.getValor());
pst.setDouble(10, mod.getCusto());
pst.execute();
JOptionPane.showMessageDialog(null, "Dados inseridos com sucesso!");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao inserir dados!/ERRO:" + ex);
}
conex.desconecta();
}
}
parte 2.
import Controle.ConexaoBD;
import Controle.controleproduto;
import Modelo.modeloproduto;
import javax.swing.JInternalFrame;
/**
*
modeloproduto mod = new modeloproduto();
controleproduto control = new controleproduto();
ConexaoBD conex = new ConexaoBD();
public Produtos() {
initComponents();
//deixando o form maxmimizado
// this.setExtendedState(MAXIMIZED_BOTH);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jTextField1 = new javax.swing.JTextField();
jPanelcadastro = new javax.swing.JPanel();
jButton6 = new javax.swing.JButton();
btncancelar = new javax.swing.JButton();
btnsair = new javax.swing.JButton();
btnexcluir = new javax.swing.JButton();
btnalterar = new javax.swing.JButton();
btnsalvar = new javax.swing.JButton();
btnnovo = new javax.swing.JButton();
txtpesquisa = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTablepesquisa = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
txtcod = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
txtdesc = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
txtmarca = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
cbcor = new javax.swing.JComboBox<>();
jLabel5 = new javax.swing.JLabel();
cbtipo = new javax.swing.JComboBox<>();
jLabel6 = new javax.swing.JLabel();
txtqtd = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
txtvalor = new javax.swing.JFormattedTextField();
jLabel8 = new javax.swing.JLabel();
txtcusto = new javax.swing.JFormattedTextField();
cbtamanho = new javax.swing.JComboBox<>();
lbltamanho = new javax.swing.JLabel();
jTextField1.setText("jTextField1");
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Cadastro de Produtos");
setResizable(false);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanelcadastro.setBackground(new java.awt.Color(153, 255, 255));
jPanelcadastro.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Cadastro de Produtos", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 1, 18))); // NOI18N
jButton6.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
jButton6.setText("Pesquisar");
btncancelar.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
btncancelar.setText("Cancelar");
btncancelar.setEnabled(false);
btnsair.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
btnsair.setText("Sair");
btnsair.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnsairActionPerformed(evt);
}
});
btnexcluir.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
btnexcluir.setText("Excluir");
btnexcluir.setEnabled(false);
btnalterar.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
btnalterar.setText("Alterar");
btnalterar.setEnabled(false);
btnsalvar.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
btnsalvar.setText("Salvar");
btnsalvar.setEnabled(false);
btnsalvar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnsalvarActionPerformed(evt);
}
});
btnnovo.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
btnnovo.setText("Novo");
btnnovo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnnovoActionPerformed(evt);
}
});
txtpesquisa.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtpesquisaActionPerformed(evt);
}
});
jTablepesquisa.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{},
{},
{},
{}
},
new String [] {
}
));
jScrollPane1.setViewportView(jTablepesquisa);
jLabel1.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
jLabel1.setText("CÓDIGO");
txtcod.setEnabled(false);
jLabel2.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
jLabel2.setText("DESCRIÇÃO:");
txtdesc.setEnabled(false);
jLabel3.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
jLabel3.setText("MARCA:");
txtmarca.setEnabled(false);
jLabel4.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
jLabel4.setText("COR:");
cbcor.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "1", "2", "3", "4", " " }));
cbcor.setEnabled(false);
jLabel5.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
jLabel5.setText("TIPO:");
cbtipo.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "A", "B", "C", "D" }));
cbtipo.setEnabled(false);
jLabel6.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
jLabel6.setText("QUANTIDADE:");
txtqtd.setEnabled(false);
jLabel7.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
jLabel7.setText("VALOR:");
txtvalor.setEnabled(false);
jLabel8.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
jLabel8.setText("CUSTO:");
txtcusto.setEnabled(false);
cbtamanho.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
cbtamanho.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "P", "M", "G", "GG" }));
cbtamanho.setEnabled(false);
lbltamanho.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
lbltamanho.setText("Tamanho:");
javax.swing.GroupLayout jPanelcadastroLayout = new javax.swing.GroupLayout(jPanelcadastro);
jPanelcadastro.setLayout(jPanelcadastroLayout);
jPanelcadastroLayout.setHorizontalGroup(
jPanelcadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelcadastroLayout.createSequentialGroup()
.addGroup(jPanelcadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 765, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanelcadastroLayout.createSequentialGroup()
.addGroup(jPanelcadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanelcadastroLayout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbcor, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbtipo, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtqtd, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanelcadastroLayout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtcod, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(3, 3, 3)
.addComponent(jLabel2)
.addGap(3, 3, 3)
.addComponent(txtdesc)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanelcadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelcadastroLayout.createSequentialGroup()
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtvalor, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtcusto, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanelcadastroLayout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtmarca, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(3, 3, 3)
.addComponent(lbltamanho)
.addGap(3, 3, 3)
.addComponent(cbtamanho, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanelcadastroLayout.createSequentialGroup()
.addComponent(btnnovo)
.addGap(3, 3, 3)
.addComponent(btnsalvar)
.addGap(3, 3, 3)
.addComponent(btnalterar)
.addGap(3, 3, 3)
.addComponent(btnexcluir)
.addGap(3, 3, 3)
.addComponent(btncancelar)
.addGap(3, 3, 3)
.addComponent(btnsair, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(3, 3, 3)
.addComponent(txtpesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(3, 3, 3)
.addComponent(jButton6)))
.addGap(0, 23, Short.MAX_VALUE))
);
jPanelcadastroLayout.setVerticalGroup(
jPanelcadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelcadastroLayout.createSequentialGroup()
.addGap(2, 2, 2)
.addGroup(jPanelcadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(txtcod, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)
.addComponent(txtdesc, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3)
.addComponent(txtmarca, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cbtamanho, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbltamanho))
.addGap(38, 38, 38)
.addGroup(jPanelcadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(cbcor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5)
.addComponent(cbtipo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(txtqtd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7)
.addComponent(txtvalor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel8)
.addComponent(txtcusto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(57, 57, 57)
.addGroup(jPanelcadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnnovo)
.addComponent(btnsalvar)
.addComponent(btnsair)
.addComponent(btnexcluir)
.addComponent(btncancelar)
.addComponent(btnalterar)
.addComponent(txtpesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(321, 321, 321))
);
getContentPane().add(jPanelcadastro, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 800, 380));
pack();
setLocationRelativeTo(null);
}// </editor-fold>
private void formWindowActivated(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
}
private void btnsairActionPerformed(java.awt.event.ActionEvent evt) {
// Chamando a tela de Bem-Vindo.
Cadastro tela = new Cadastro();
tela.setVisible(true);
dispose();
}
private void txtpesquisaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btnsalvarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
mod.setCod_Forn(mod.getCod_Forn());
mod.setDescricao(txtdesc.getText());
mod.setMarca(txtmarca.getText());
mod.setTamanho((String)cbtamanho.getSelectedItem());
mod.setCor((String) cbcor.getSelectedItem());
mod.setTipo((String) cbtipo.getSelectedItem());
mod.setQuantidade(Integer.parseInt(txtqtd.getText()));
mod.setValor(Double.parseDouble(txtvalor.getText()));
mod.setCusto(Double.parseDouble(txtcusto.getText()));
control.Salvar(mod);
}
private void btnnovoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
btnsalvar.setEnabled(true);
btncancelar.setEnabled(true);
txtdesc.setEnabled(true);
txtmarca.setEnabled(true);
txtcusto.setEnabled(true);
txtqtd.setEnabled(true);
txtvalor.setEnabled(true);
cbcor.setEnabled(true);
cbtamanho.setEnabled(true);
cbtipo.setEnabled(true);
}
parte 3
public class modeloproduto {
/**
* @return the Cod_Prod
*/
public int getCod_Prod() {
return Cod_Prod;
}
/**
* @param Cod_Prod the Cod_Prod to set
*/
public void setCod_Prod(int Cod_Prod) {
this.Cod_Prod = Cod_Prod;
}
/**
* @return the Cod_Forn
*/
public int getCod_Forn() {
return Cod_Forn;
}
/**
* @param Cod_Forn the Cod_Forn to set
*/
public void setCod_Forn(int Cod_Forn) {
this.Cod_Forn = Cod_Forn;
}
/**
* @return the Descricao
*/
public String getDescricao() {
return Descricao;
}
/**
* @param Descricao the Descricao to set
*/
public void setDescricao(String Descricao) {
this.Descricao = Descricao;
}
/**
* @return the Marca
*/
public String getMarca() {
return Marca;
}
/**
* @param Marca the Marca to set
*/
public void setMarca(String Marca) {
this.Marca = Marca;
}
/**
* @return the Tamanho
*/
public String getTamanho() {
return Tamanho;
}
/**
* @param Tamanho the Tamanho to set
*/
public void setTamanho(String Tamanho) {
this.Tamanho = Tamanho;
}
/**
* @return the Cor
*/
public String getCor() {
return Cor;
}
/**
* @param Cor the Cor to set
*/
public void setCor(String Cor) {
this.Cor = Cor;
}
/**
* @return the Tipo
*/
public String getTipo() {
return Tipo;
}
/**
* @param Tipo the Tipo to set
*/
public void setTipo(String Tipo) {
this.Tipo = Tipo;
}
/**
* @return the Quantidade
*/
public int getQuantidade() {
return Quantidade;
}
/**
* @param Quantidade the Quantidade to set
*/
public void setQuantidade(int Quantidade) {
this.Quantidade = Quantidade;
}
/**
* @return the Valor
*/
public double getValor() {
return Valor;
}
/**
* @param Valor the Valor to set
*/
public void setValor(double Valor) {
this.Valor = Valor;
}
/**
* @return the Custo
*/
public double getCusto() {
return Custo;
}
/**
* @param Custo the Custo to set
*/
public void setCusto(double Custo) {
this.Custo = Custo;
}
private int Cod_Prod;
private int Cod_Forn;
private String Descricao;
private String Marca;
private String Tamanho;
private String Cor;
private String Tipo;
private int Quantidade;
private double Valor;
private double Custo;
Você debugou o código? Geralmente esse tipo de erro a gente consegue achar a causa debugando
Aqui você está declarando 9 parâmetros na Query e passando 10 ao Prepared Statement
Opa. Olhando esse trecho de código que vc colocou, dá pra ver quer existem mais parâmetros sendo passados do que parâmetros requeridos pelo comando sql
PreparedStatement pst = conex.con.prepareStatement(“insert into produtos(Cod_Forn,Descricao,Marca,Tamanho,Cor,Tipo,Quantidade,Valor,Custo)values(?,?,?,?,?,?,?,?,?)”);
pst.setInt(1, mod.getCod_Prod());
pst.setInt(2, mod.getCod_Forn());
pst.setString(3, mod.getDescricao());
pst.setString(4, mod.getMarca());
pst.setString(5, mod.getTamanho());
pst.setString(6, mod.getCor());
pst.setString(7, mod.getTipo());
pst.setInt(8, mod.getQuantidade());
pst.setDouble(9, mod.getValor());
pst.setDouble(10, mod.getCusto());
esse Cod_Forn é uma chave estrangeira acho que isso que esta dando errado, agora eu já consertei a quantidade pst.setDouble. mas deu esse erro.
A coluna “Tipo” na sua tabela deve estar como “NOT NULL”, e por algum motivo ela não está sendo passada no insert, e então gerando esta exception de constraint.
Você não alterou as ordens dos parâmetros passados ao PreparedStatement ou algo do tipo? como está?
Bom dia meu amigo eu não troquei as ordens da uma olhada na minha tabela no banco, realmente esta not null.
Então, se realmente está tudo ok no método do Insert no banco então por algum motivo a variável de “Tipo” está vindo nula, e se vier ele não vai deixar persistir no banco mesmo.
É esperado que ela venha nula? Tenta debugar pra ver o que está ocorrendo, onde ela fica nula e porque.
Não sei fazer isso. me da um exemplo por favor.
O “Tipo” é obtido de um ComboBox né? Na hora de adicionar ele está OK? não está vazio? E como é populado este combobox? E posta como está o código do seu DAO de novo, como está agora o método de salvar no banco.
e ai meu amigo conseguiu alguma coisa que possa me ajudar?
Cara, eu acabei de testar aqui e está funcionando normal.
Posta como está agora a sua classe de persistência no banco, a classe chamada “controleproduto”.
package Controle;
import Modelo.modeloproduto;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
*
@author Rodinei
*/
public class controleproduto {
ConexaoBD conex = new ConexaoBD();
modeloproduto mod = new modeloproduto();
public void Salvar(modeloproduto mod) {
conex.conexao();
try {
PreparedStatement pst = conex.con.prepareStatement(“insert into produtos(Cod_Forn,Descricao,Marca,Tamanho,Cor,Tipo,Quantidade,Valor,Custo)values(?,?,?,?,?,?,?,?,?)”);
//pst.setInt(0, mod.getCod_Prod());
pst.setInt(1, mod.getCod_Forn());
pst.setString(2, mod.getDescricao());
pst.setString(3, mod.getMarca());
pst.setString(4, mod.getTamanho());
pst.setString(5, mod.getCor());
pst.setString(6, mod.getTipo());
pst.setInt(7, mod.getQuantidade());
pst.setDouble(8, mod.getValor());
pst.setDouble(9, mod.getCusto());
pst.execute();
JOptionPane.showMessageDialog(null, "Dados inseridos com sucesso!");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao inserir dados!/ERRO:" + ex);
}
conex.desconecta();
}
}