jdbc - error : "java.sql.SQLException: No value specified for parameter 1 " -
public class verestoque extends jframe { connection conexao; preparedstatement pst; resultset rs; public void adicionar() { string sql = "insert 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 nome ?"; 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 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 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 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 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); } }
when write text on textbusca , select buscarprodutos button search, receive error:
java.sql.sqlexception: no value specified parameter 1.
you execute query before setting first parameter :
pst = conexao.preparestatement(sql); rs = pst.executequery(); pst.setstring(1,textbusca.gettext()+"%");
change to
pst = conexao.preparestatement(sql); pst.setstring(1,textbusca.gettext()+"%"); rs = pst.executequery();
Comments
Post a Comment