Tenho um sistema que ele é necessário dar uma entrada tipo time, só que no banco ele só está recebendo este valor caso seja digitado o formato completo hh:mm:ss eu gostaria de saber o que preciso fazer para digitar na interface apenas hh:mm sem dar erro no sistema ao executar, os segundos para meu código são insignificantes, caso exista alguma forma de preencher com 00 pode ser uma solução para meu desenvolvimento.
Você não deve concatenar valores na query.
Utilize um PreparedStatement que daí você não precisa se preocupar com formatações, basta usar o tipo de dado apropriado para cada campo.
Se sua coluna é do tipo TIME, então utilize um objeto do tipo java.sql.Time.
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException
at java.sql.Time.valueOf(Time.java:110)
at view.ViewPerdas.salvar(ViewPerdas.java:484)
at view.ViewPerdas.btnSalvarActionPerformed(ViewPerdas.java:558)
at view.ViewPerdas.access$600(ViewPerdas.java:34)
at view.ViewPerdas$5.actionPerformed(ViewPerdas.java:209)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Sim, você fez algo errado. E o errado foi nesta linha.
Ou você segue o que o @staroski sugeriu ou faz a conversão do texto inserido para Date (java.util.Date), através do SimpleDateFormat e depois transforma em java.sql.Time.
Só não pode é tentar passar uma String como argumento para um método que espera um Time.
No View:
Criei um try catch e criei um objeto tipo time para receber a hora no model com o java.sql.time.
try {
SimpleDateFormat horaMinutos = new SimpleDateFormat("HH:mm");
Date data = horaMinutos.parse(horaPerdas.getText());
Time time = new Time(data.getTime());
modelPerdas.setHoraPerda(time);
} catch (ParseException ex) {
Logger.getLogger(ViewPerdas.class.getName()).log(Level.SEVERE, null, ex);
}
No Model:
private Time horaPerda;
public Time getHoraPerda() {
return horaPerda;
}
public void setHoraPerda(Time horaPerda) {
this.horaPerda = horaPerda;
}