2017-05-06 10 views
0

アプリケーションでフォームシーンを作成し、保存ボタンを押したときに入力したデータをSQLiteデータベースに挿入したかった。短いコードは以下の通りです:JavaFX - フォームテキストフィールドをSQLiteデータベースに挿入

@FXML 
private void handleSaveNewShop(ActionEvent event) { 
    String name = shopname.getText(); 
    String adress = streetadress.getText(); 
    String city = cityname.getText(); 
    String state = statename.getText(); 
    String country = countryname.getText(); 
    String zip = zipcode.getText(); 
    String phonept1 = phonecountryid.getText(); 
    String phonept2 = phoneareaid.getText(); 
    String phonept3 = phoneothernumber.getText().toString(); 

    Connection conn = null; 
    Statement stmt = null; 

    try{ 
     Class.forName("org.sqlite.JDBC"); 
     System.out.print("\nConnecting to database..."); 
     conn = DriverManager.getConnection("jdbc:sqlite:FranchiseManagement.sqlite"); 
     System.out.println(" SUCCESS!\n"); 
     /*Tried this 
     String insertToshopList = "INSERT INTO shopList (name, adress, city, state, country, zipcode, phonect, phonearea, phonemain)" + "values(name,adress,city,state,country,zip,phonept1,phonept2,phonept3)"; 
     stmt.executeUpdate(insertToshopList); 
     */ 
     //And This 
     //stmt.executeUpdate("INSERT INTO shopList ('name','adress','city', 'state', 'country', 'zipcode', 'phonect', 'phonearea', 'phonemain') VALUES('"+name+"','"+adress+"','"+city+"'),'"+state+"','"+country+"','"+zip+"','"+phonept1+"','"+phonept2+"','"+phonept3+"'"); 
     conn.commit(); 
     System.out.println(" SUCCESS!\n"); 
     conn.close(); 
    } catch(SQLException se) { 
    se.printStackTrace(); 
    } 
    catch(Exception e) { 
     e.printStackTrace(); 
    } 

私のコミットされた部分にはNullPointExceptionがあります。データベース接続は大丈夫、Connectedと思われます。 The Table

The Structure

答えて

0

がコミット除去することによって、それを修正して、よくフォーマットされた方法へのINSERT追加:

@FXML 
private void handleSaveNewShop(ActionEvent event) { 
    String name = shopname.getText(); 
    String adress = streetadress.getText(); 
    String city = cityname.getText(); 
    String state = statename.getText(); 
    String country = countryname.getText(); 
    String zip = zipcode.getText(); 
    String phonept1 = phonecountryid.getText(); 
    String phonept2 = phoneareaid.getText(); 
    String phonept3 = phoneothernumber.getText(); 

    Connection conn; 
    Statement stmt = null; 

    try{ 
     Class.forName("org.sqlite.JDBC"); 
     System.out.print("\nConnecting to database..."); 
     conn = DriverManager.getConnection("jdbc:sqlite:FranchiseManagement.sqlite"); 
     System.out.println(" SUCCESS!\n"); 
     stmt = conn.createStatement(); 
     stmt.executeUpdate("INSERT INTO shopList ('name','adress','city', 'state', 'country', 'zipcode', 'phonect', 'phonearea', 'phonemain') VALUES('"+name+"','"+adress+"','"+city+"','"+state+"','"+country+"','"+zip+"','"+phonept1+"','"+phonept2+"','"+phonept3+"')"); 
     //conn.commit(); 
     System.out.println(" SUCCESS!\n"); 
     conn.close(); 
    } catch (ClassNotFoundException | SQLException e){ 
     Logger.getLogger(DBConnect.class.getName()).log(Level.SEVERE, null, e); 
    } 
をここで

は私のデータベースがどのように見えるかです

関連する問題