2016-04-14 53 views
-3

我正在使用FXML編寫Javafx應用程序,下面是我寫入的將數據插入到derby數據庫中的代碼,但它提供了一條錯誤消息。請幫助我做錯了什麼。javafx將數據插入數據庫錯誤

代碼用於插入日期按鈕

package View; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 

import java.sql.SQLException; 
import javafx.event.ActionEvent; 

import javafx.fxml.FXML; 
import javafx.scene.control.TextField; 

/** 
    * 
    * @author CCB 
    */ 
public class ConnectController {  
    @FXML private TextField id;  
    @FXML private TextField surname; 
    @FXML private TextField firstName; 
    @FXML private TextField otherNames; 
    @FXML private TextField dateOfBirth; 
    @FXML private TextField txtsex; 
    @FXML private TextField home1; 
    @FXML private 
    TextField telephone; 
    @FXML private TextField email1; 
    @FXML 
    private TextField staffId; 
    @FXML private TextField dofp; 
    @FXML 
    private TextField doc1; 
    @FXML private TextField txtpen; 
    @FXML 
    private TextField dolp1; 
    @FXML private TextField donp1; 
    @FXML 
    private TextField pos1; 
    @FXML private TextField dept1; 
    @FXML 
    private TextField location1; 
    @FXML private TextField fslc; 
    @FXML private TextField sssc; 
    @FXML private TextField first; 
    @FXML private TextField addDegree; 
    @FXML private TextField 
    addDegree2; 
    @FXML private TextField date; 
    @FXML private 
    TextField date1; 
    @FXML private TextField date2; 
    @FXML private 
    TextField date3; 
    @FXML private TextField date4; 
    @FXML private 
    TextField profCert; 
    @FXML private TextField profCert1; 
    @FXML 
    private TextField date5; 
    @FXML private TextField date6; 

    Connection conn; 
    PreparedStatement pstmt=null; 
    ResultSet rs=null; 

    @FXML 
    public void save(ActionEvent action) throws 
    SQLException, ClassNotFoundException{  
    Class.forName("org.apache.derby.jdbc.ClientDriver"); 
       conn=DriverManager.getConnection("jdbc:derby://localhost:1527/Employee","Conduct","ccb"); 
      try{ 
       String query ="INSERT INTO Employee(ID,SURNAME,FIRSTNAME,OTHERNAMES,DATEOFBIRTH,SEX,HOMEADDRESS,TELEPHONE,E_MAIL,STAFFID,DATEOFFIRSTAPPOINMTNT,DATEOFCONFIRMATION,DATEOFLASTPROMOTION,LASTOFNEXTPROMOTION,PENNO,POSITION,DEPARTMENT,LOCATION,FIRSTLEAVING,DATE,SENIORCERT,DATE1,FIRSTDEGREE,DATE2,ADDDEGREE,DATE3,ADDDEGREE2,DATE4,PROFCERT,DATE5,PROFCERT1,DATE6)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; 
       pstmt=conn.prepareStatement(query); 
       pstmt.setInt(1,id.getLength()); 
       pstmt.setString(2,surname.getText()); 
       pstmt.setString(3,firstName.getText()); 
       pstmt.setString(4,otherNames.getText()); 
       pstmt.setString (5,dateOfBirth.getText()); 
       pstmt.setString (6,txtsex.getText()); 
       pstmt.setString(7,home1.getText()); 
       pstmt.setInt(8,telephone.getLength()); 
       pstmt.setString(9,email1.getText()); 
       pstmt.setString(10,staffId.getText()); 
       pstmt.setString(11,dofp.getText()); 
       pstmt.setString(12,doc1.getText()); 
       pstmt.setString(13,dolp1.getText()); 
       pstmt.setString(14,donp1.getText()); 
       pstmt.setString(15, txtpen.getText()); 
       pstmt.setString(16,pos1.getText()); 
       pstmt.setString(17,dept1.getText()); 
       pstmt.setString(18,location1.getText()); 
       pstmt.setString(19,fslc.getText()); 
       pstmt.setString(20,date.getText()); 
       pstmt.setString(21,sssc.getText()); 
       pstmt.setString (22,date1.getText()); 
       pstmt.setString(23,first.getText()); 
       pstmt.setString(24,date2.getText()); 
       pstmt.setString(25,addDegree.getText()); 
       pstmt.setString(26,date3.getText()); 
       pstmt.setString(27, addDegree2.getText()); 
       pstmt.setString(28, date4.getText()); 
       pstmt.setString(29,profCert.getText()); 
       pstmt.setString(30,date5.getText()); 
       pstmt.setString(31,profCert1.getText()); 
       pstmt.setString(32,date6.getText()); 
       rs=pstmt.executeQuery(); 

      } 
     catch(Exception e){ 



     } 
    } 
} 

錯誤消息

 Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: 
java.lang.reflect.InvocationTargetException  at 
javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774) 
    at 
javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657) 
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) 
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at 
javafx.scene.control.MenuItem.fire(MenuItem.java:462) at 
com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1405) 
    at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.lambda$createChildren$343(ContextMenuContent.java:1358) 
    at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) 
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) 
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) 
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:198) at 
javafx.scene.Scene$MouseHandler.process(Scene.java:3757) at 
javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) at 
javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) at 
javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) at 
com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:352) 
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275) 
    at java.security.AccessController.doPrivileged(Native Method) at 
com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:388) 
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) 
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:387) 
    at com.sun.glass.ui.View.handleMouseEvent(View.java:555) at com.sun.glass.ui.View.notifyMouse(View.java:937) at 
com.sun.glass.ui.win.WinApplication._runLoop(Native Method)  at 
com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) 
    at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.reflect.InvocationTargetException at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497)  at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) at 
sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)  at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497)  at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) at 
javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1771) 
    ... 43 more Caused by: javafx.fxml.LoadException:  file:/C:/Users/CCB/Documents/NetBeansProjects/HumanResourceManagementInformationSystem/dist/run1769813246/HumanResourceManagementInformationSystem.jar!/View/Employee.fxml:50 

    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)  at 
javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214) at 
javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175) at 
javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148) at 
javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124) at 
javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104) at 
javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097) at 
View.MainCotroller.add(MainCotroller.java:35) ... 53 more Caused 
by: java.lang.IllegalArgumentException: Can not set 
javafx.scene.control.TextField field View.ConnectController.txtsex 
to javafx.scene.text.Text at 
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) 
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) 
    at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) 
    at java.lang.reflect.Field.set(Field.java:764) at javafx.fxml.FXMLLoader.injectFields(FXMLLoader.java:1163)  at 
javafx.fxml.FXMLLoader.access$1600(FXMLLoader.java:103)  at 
javafx.fxml.FXMLLoader$ValueElement.processValue(FXMLLoader.java:857) 
    at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:751) 
    at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527) ... 61 more 
+0

請格式化您的代碼正確 –

回答

1

你必須定義爲在所述控制器的TextFieldtxtSex,但相應的元素被定義爲在FXML文件Text

java.lang.IllegalArgumentException: Can not set javafx.scene.control.TextField field View.ConnectController.txtsex to javafx.scene.text.Text 
+0

謝謝James_D。問題解決了。 – Helen