2013-07-24 59 views
0

所以在我的程序中,用戶將不得不輸入一些數據添加到數據庫。唯一的問題是這些數據永遠不會發送到數據庫。等待用戶輸入,但不能得到正確的用戶輸入

if(menuReturn==2){ 
      System.out.println("\n\n"); 
      System.out.println("Geef de film naam: "); 
      data=reader.next(); 
      Movies newmovie= new Movies(); 
      newmovie.setMovie_name(data); 
      session.save(newmovie); 
      System.out.println("Wat wilt u doen?:\n1) Check filmlijst\n2)Voeg film toe\n3)Check klantenlijst\n4)Voeg klant toe\n5)Check uitstaande lijst\n6)Voeg Rental toe\n7)Film binnengebracht\n8)Print alle Rentals\n9)Exit"); 
      menuReturn=reader.nextInt(); 
     } 

我用這對我userinput但它永遠不會名稱添加到我的數據庫

+0

**提交**交易。 – adatapost

+0

你看到syso消息嗎? –

+0

這是打印? :System.out.println(「Wat wilt u doen?:\ n1)檢查filmlijst \ n2)Voeg film toe \ n3)檢查腳本)電影binnengebracht \ n8)打印alle Rentals \ n9)退出「); –

回答

0

您必須提交您的交易或必須明確flush您的數據。

最安全的是包裝with Transaction

session = sessionFactory.openSession(); 
Transaction transaction = session.beginTransaction(); 
Movies newmovie= new Movies(); 
newmovie.setMovie_name(data); 
session.save(newmovie); 
transaction.commit(); 
+0

如果我這樣做,它會結束正在運行的應用程序,它仍然會將我的數據保存到數據庫 – stevedc

0

具體問題不能發現顯示這麼多的代碼,但是你應該提交交易完成後保存方法。

+0

但是,如果我承諾我的連接不會被關閉? – stevedc

+0

沒有連接仍然處於打開狀態,提交將指示hibernate使數據持久化,當您調用session.close()或從內存中移除對象時,連接將關閉。 – commit

+0

所以我改變了我的代碼,在保存後立即提交。但是當它提交時它將永遠不會將數據傳送到數據庫,並且它會阻止我的應用程序 – stevedc