gpt4 book ai didi

java - 错误: "java.sql.SQLException: No value specified for parameter 1 "

转载 作者:行者123 更新时间:2023-12-02 04:34:56 25 4
gpt4 key购买 nike

public class VerEstoque extends JFrame {
Connection conexao;
PreparedStatement pst;
ResultSet rs;

public void Adicionar()
{
String sql = "INSERT INTO Produtos (Nome, Marca, Loja, Estoque ,ValordeVenda) VALUES (?,?,?,?,?)";
try
{
pst = conexao.prepareStatement(sql);
pst.setString(1,textNome.getText());
pst.setString(2,textMarca.getText());
pst.setString(3,textLoja.getText());
pst.setString(4,textEstoque.getText());
pst.setString(5,textValordeVenda.getText());


pst.execute();

JOptionPane.showMessageDialog(null,"Produto adicionado com sucesso!", "Cadastrado com Sucesso", JOptionPane.INFORMATION_MESSAGE);
listarProdutos();
}
catch(SQLException error)
{
JOptionPane.showMessageDialog(null,"Erro ao adicionar o produto!");
}
}

public void listarProdutos(){
String sql = "Select *from Produtos";
try{
pst = conexao.prepareStatement(sql);
rs = pst.executeQuery();
tblProdutos.setModel(DbUtils.resultSetToTableModel(rs));
}
catch(SQLException error){
JOptionPane.showMessageDialog(null, error);

}
}

public void buscarProdutos(){
String sql = "Select *from Produtos where Nome like ?";
try{
pst = conexao.prepareStatement(sql);
rs = pst.executeQuery();
pst.setString(1,textBusca.getText()+"%");
tblProdutos.setModel(DbUtils.resultSetToTableModel(rs));


}
catch(SQLException error){
JOptionPane.showMessageDialog(null, error);

}
}


private JPanel contentPane;
private JTextField textNome;
private JTextField textMarca;
private JTextField textLoja;
private JTextField textEstoque;
private JTextField textValordeVenda;
protected AbstractButton rdbtnRemover;
private JTable tblProdutos;
private JTextField textBusca;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
VerEstoque frame = new VerEstoque();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public VerEstoque() throws ClassNotFoundException {


conexao = BancoDeDados.bancodedados();
setBackground(new Color(238, 238, 238));
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 697, 514);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

textNome = new JTextField();
textNome.setHorizontalAlignment(SwingConstants.CENTER);
textNome.setBounds(289, 68, 134, 28);
contentPane.add(textNome);
textNome.setColumns(10);

textMarca = new JTextField();
textMarca.setHorizontalAlignment(SwingConstants.CENTER);
textMarca.setBounds(289, 96, 134, 28);
contentPane.add(textMarca);
textMarca.setColumns(10);

textLoja = new JTextField();
textLoja.setHorizontalAlignment(SwingConstants.CENTER);
textLoja.setBounds(289, 125, 134, 28);
contentPane.add(textLoja);
textLoja.setColumns(10);

textEstoque = new JTextField();
textEstoque.setHorizontalAlignment(SwingConstants.CENTER);
textEstoque.setBounds(289, 152, 134, 28);
contentPane.add(textEstoque);
textEstoque.setColumns(10);

textValordeVenda = new JTextField();
textValordeVenda.setHorizontalAlignment(SwingConstants.CENTER);
textValordeVenda.setBounds(289, 181, 134, 28);
contentPane.add(textValordeVenda);
textValordeVenda.setColumns(10);

JButton btnAdicionar = new JButton("Adicionar!");
btnAdicionar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Adicionar();

}
});
btnAdicionar.setBounds(507, 69, 117, 29);
contentPane.add(btnAdicionar);

JButton btnTabela = new JButton("Ver tabela completa de estoque!");
btnTabela.setToolTipText("");
btnTabela.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
listarProdutos();

}
});
btnTabela.setBounds(140, 421, 441, 45);
contentPane.add(btnTabela);

JButton btnBuscar = new JButton("Buscar!");
btnBuscar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
buscarProdutos();
}
});

btnBuscar.setBounds(16, 126, 117, 29);
contentPane.add(btnBuscar);

JTextPane txtpnSelecioneAOpo = new JTextPane();
txtpnSelecioneAOpo.setFont(new Font("Comic Sans MS", Font.BOLD | Font.ITALIC, 15));
txtpnSelecioneAOpo.setBackground(SystemColor.window);
txtpnSelecioneAOpo.setText("Selecione a opção que deseja fazer :");
txtpnSelecioneAOpo.setBounds(186, 6, 284, 23);
contentPane.add(txtpnSelecioneAOpo);

JLabel lblNome = new JLabel("Nome :");
lblNome.setBounds(177, 74, 61, 16);
contentPane.add(lblNome);

JLabel lblMarca = new JLabel("Marca :");
lblMarca.setBounds(177, 102, 61, 16);
contentPane.add(lblMarca);

JLabel lblLoja = new JLabel("Loja :");
lblLoja.setBounds(178, 131, 43, 16);
contentPane.add(lblLoja);

JLabel lblEstoque = new JLabel("Estoque :");
lblEstoque.setBounds(177, 158, 61, 16);
contentPane.add(lblEstoque);

JLabel lblValorDeVenda = new JLabel("Valor de Venda :");
lblValorDeVenda.setBounds(177, 187, 108, 16);
contentPane.add(lblValorDeVenda);

JButton btnRemover = new JButton("Remover!");
btnRemover.setBounds(507, 182, 117, 29);
contentPane.add(btnRemover);

JRadioButton rdbtnBuscar = new JRadioButton("Buscar");
rdbtnBuscar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

textEstoque.setEditable(false);
textValordeVenda.setEditable(false);
textLoja.setEditable(false);
textMarca.setEditable(false);


}
});

rdbtnBuscar.setBounds(140, 34, 98, 23);
contentPane.add(rdbtnBuscar);

JRadioButton rdbtnAdicionar = new JRadioButton("Adicionar");
rdbtnAdicionar.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {


textNome.setEditable(true);
textEstoque.setEditable(true);
textValordeVenda.setEditable(true);
textLoja.setEditable(true);
textMarca.setEditable(true);
}
});
rdbtnAdicionar.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

textNome.setEditable(true);
textEstoque.setEditable(true);
textValordeVenda.setEditable(true);
textLoja.setEditable(true);
textMarca.setEditable(true);

}
});
rdbtnAdicionar.setBounds(279, 34, 98, 23);
contentPane.add(rdbtnAdicionar);

JRadioButton rdbtnRemover = new JRadioButton("Remover");
rdbtnAdicionar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
textNome.setEditable(true);
textEstoque.setEditable(true);
textValordeVenda.setEditable(false);
textLoja.setEditable(false);
textMarca.setEditable(false);
}
});

rdbtnRemover.setBounds(440, 34, 141, 23);
contentPane.add(rdbtnRemover);

JButton btnCancelar = new JButton("Cancelar!");
btnCancelar.setBounds(417, 126, 98, 28);
contentPane.add(btnCancelar);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(29, 251, 643, 170);
contentPane.add(scrollPane);

tblProdutos = new JTable();
scrollPane.setViewportView(tblProdutos);
tblProdutos.setToolTipText("");

JLabel pesquisaproduto = new JLabel("Nome do Produto para Busca : ");
pesquisaproduto.setBounds(29, 228, 226, 16);
contentPane.add(pesquisaproduto);

textBusca = new JTextField();
textBusca.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
buscarProdutos();
}
});
textBusca.setBounds(244, 222, 214, 28);
contentPane.add(textBusca);
textBusca.setColumns(10);


}
}

当我在 textBusca 上写一些文本,然后选择 BuscarProdutos 按钮进行搜索时,我收到此错误:

java.sql.SQLException: No value specified for parameter 1.

最佳答案

在设置第一个参数之前执行查询:

    pst = conexao.prepareStatement(sql);
rs = pst.executeQuery();
pst.setString(1,textBusca.getText()+"%");

更改为

    pst = conexao.prepareStatement(sql);
pst.setString(1,textBusca.getText()+"%");
rs = pst.executeQuery();

关于java - 错误: "java.sql.SQLException: No value specified for parameter 1 ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30949920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com