java - SQLIntegrityConstraintViolationException, -
im trying create basic program can add , delete data within java derby database. problem throws exception 'the statement aborted because have caused duplicate key value in unique or primary key constraint or unique index identified 'sql160724181654400' defined on 'contacts_list'. ' main objective add strings of text within 2 jtextfields , import database has 2 colums. not understand problem though.
try { string writestring = "insert contacts_list(name, number) values(?,?)"; preparedstatement pst = connection.preparestatement(writestring); pst.setstring(1, namef.gettext()); pst.setstring(2, numberl.gettext()); pst.execute(); showmessagedialog(this, " contact's added! "); namef.settext(" "); numberf.settext(" "); pst.close(); } catch (exception ex) { ex.printstacktrace(); }
and full code below;
package address_book; import java.awt.gridbagconstraints; import java.awt.gridbaglayout; import java.awt.insets; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.io.file; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedstatement; import java.sql.sqlexception; import java.sql.statement; import javax.swing.borderfactory; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.joptionpane; import static javax.swing.joptionpane.showmessagedialog; import javax.swing.jpanel; import javax.swing.jtextfield; import javax.swing.swingutilities; import javax.swing.uimanager; import org.apache.derby.drda.networkservercontrol; public class add_data extends jframe implements actionlistener { jbutton add = new jbutton("add database"); jtextfield namef = new jtextfield(12); jtextfield numberf = new jtextfield(12); jlabel namel = new jlabel("enter name : "); jlabel numberl = new jlabel("enter number : "); private static connection connection; private static statement stmt; public static void main(string[] args) { try { uimanager.setlookandfeel(uimanager.getsystemlookandfeelclassname()); } catch (exception ex) { ex.printstacktrace(); } swingutilities.invokelater(new runnable() { public void run() { new add_data().setvisible(true); } }); } public add_data() { super("add contact"); setsize(300, 250); setvisible(true); setlocationrelativeto(null); setresizable(false); setdefaultcloseoperation(dispose_on_close); // add jpanel , layout jpanel panel = new jpanel(); panel.setlayout(new gridbaglayout()); gridbagconstraints constraints = new gridbagconstraints(); constraints.anchor = gridbagconstraints.west; constraints.insets = new insets(10, 10, 10, 10); // add componenets constraints.gridx = 0; constraints.gridy = 0; panel.add(namel, constraints); constraints.gridx = 1; panel.add(namef, constraints); constraints.gridx = 0; constraints.gridy = 1; panel.add(numberl, constraints); constraints.gridx = 1; panel.add(numberf, constraints); constraints.gridx = 0; constraints.gridy = 2; constraints.gridwidth = 2; constraints.anchor = gridbagconstraints.center; panel.add(add, constraints); add.addactionlistener(this); //create border panel.setborder(borderfactory.createtitledborder(borderfactory.createetchedborder(), "enter contact's details")); add(panel); try { networkservercontrol server = new networkservercontrol(); server.start(null); // load jdbc driver class.forname("org.apache.derby.jdbc.embeddeddriver"); //establish connection string sourceurl = "jdbc:derby://localhost:1527/" + new file("contacts_list").getabsolutepath() + ";"; connection = drivermanager.getconnection(sourceurl, "use", "use"); stmt = connection.createstatement(); } // following exceptions must caught catch (classnotfoundexception cnfe) { system.out.println(cnfe); } catch (sqlexception sqle) { system.out.println(sqle); } catch (exception e) { system.out.println(e); } } @override public void actionperformed(actionevent e) { string key = namef.gettext(); string name = database.getname(key); string nameadd = namef.gettext(); if (namef.gettext().isempty() || numberf.gettext().isempty() && e.getsource() == add) { joptionpane.showmessagedialog(this, "fill empty fields"); } else if (e.getsource() == add) { if (name == null) { int confirm = joptionpane.showconfirmdialog(null, "you add " + nameadd + ", want continue?"); if (confirm == joptionpane.yes_option) { try { string writestring = "insert contacts_list(name, number) values(?,?)"; preparedstatement pst = connection.preparestatement(writestring); pst.setstring(1, namef.gettext()); pst.setstring(2, numberl.gettext()); pst.execute(); showmessagedialog(this, " contact's added! "); namef.settext(" "); numberf.settext(" "); pst.close(); } catch (exception ex) { ex.printstacktrace(); } if (confirm == joptionpane.no_option) { showmessagedialog(this, "please try again !"); } } } } }
}
Comments
Post a Comment