java - Oracle SQL PreparedStatement setdate -
i'm pulling hair off, can't find solution it, i've searched other topics, still no ideas. have problem preparedstatement, setting date. know, oracle date needs date in format yyyy/mm/dd , java.sql.date in yyyy-mm-dd of these schemes don't work well.
string query = "insert students values (?,?,?,?,?,?,?,?)"; preparedstatement statement = connection.preparestatement(query); statement.setint(1, integer.parseint(studentindex.gettext())); statement.setstring(2, studentname.gettext()); statement.setstring(3, studentlastname.gettext()); statement.setdate(4, date.valueof(studentdate.gettext())); statement.setnstring(5, studentsex.gettext()); statement.setstring(6, studentcity.gettext()); statement.setstring(7, studentmajor.gettext()); statement.setstring(8, studentspeciality.gettext()); resultset result = statement.executequery();
after launching , writing example dates in jtextfield e.g. 1999-10-20 or 1999/10/20 have exception
exception in thread "awt-eventqueue-0" java.lang.illegalargumentexception @ java.sql.date.valueof(date.java:143) @ project$7.actionperformed(project.java:166) @ javax.swing.abstractbutton.fireactionperformed(abstractbutton.java:2022) @ javax.swing.abstractbutton$handler.actionperformed(abstractbutton.java:2346) @ javax.swing.defaultbuttonmodel.fireactionperformed(defaultbuttonmodel.java:402) @ javax.swing.defaultbuttonmodel.setpressed(defaultbuttonmodel.java:259) @ javax.swing.plaf.basic.basicbuttonlistener.mousereleased(basicbuttonlistener.java:252) @ java.awt.component.processmouseevent(component.java:6525) @ javax.swing.jcomponent.processmouseevent(jcomponent.java:3324) @ java.awt.component.processevent(component.java:6290) @ java.awt.container.processevent(container.java:2234) @ java.awt.component.dispatcheventimpl(component.java:4881) @ java.awt.container.dispatcheventimpl(container.java:2292) @ java.awt.component.dispatchevent(component.java:4703) @ java.awt.lightweightdispatcher.retargetmouseevent(container.java:4898) @ java.awt.lightweightdispatcher.processmouseevent(container.java:4533) @ java.awt.lightweightdispatcher.dispatchevent(container.java:4462) @ java.awt.container.dispatcheventimpl(container.java:2278) @ java.awt.window.dispatcheventimpl(window.java:2750) @ java.awt.component.dispatchevent(component.java:4703) @ java.awt.eventqueue.dispatcheventimpl(eventqueue.java:751) @ java.awt.eventqueue.access$500(eventqueue.java:97) @ java.awt.eventqueue$3.run(eventqueue.java:702) @ java.awt.eventqueue$3.run(eventqueue.java:696) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$1.dointersectionprivilege(protectiondomain.java:75) @ java.security.protectiondomain$1.dointersectionprivilege(protectiondomain.java:86) @ java.awt.eventqueue$4.run(eventqueue.java:724) @ java.awt.eventqueue$4.run(eventqueue.java:722) @ java.security.accesscontroller.doprivileged(native method) @ java.security.protectiondomain$1.dointersectionprivilege(protectiondomain.java:75) @ java.awt.eventqueue.dispatchevent(eventqueue.java:721) @ java.awt.eventdispatchthread.pumponeeventforfilters(eventdispatchthread.java:201) @ java.awt.eventdispatchthread.pumpeventsforfilter(eventdispatchthread.java:116) @ java.awt.eventdispatchthread.pumpeventsforhierarchy(eventdispatchthread.java:105) @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:101) @ java.awt.eventdispatchthread.pumpevents(eventdispatchthread.java:93) @ java.awt.eventdispatchthread.run(eventdispatchthread.java:82)
any ideas?
edit: solved
try setting date format explicitly sql statements using to_date, e.g.
string query = "insert students values (?,?,?,to_date(?,'yyyy-mm-dd'),?,?,?,?)";
then ensure date format in java variable matches. change format in to_date required if different.
Comments
Post a Comment