2010-12-17 209 views
1

我已經編寫了一個程序在聯繫人數據庫中插入一行,該表中有一個名爲contact的表。當我執行程序,它運行沒有任何錯誤,並給出了下面的輸出 -休眠問題

休眠:插入聯繫人(名字,姓氏,EMAIL,ID)值

(,,,????)

但是,當我實際上做了select * from contact;在mysql中,我無法看到通過Hibernate輸入的條目。這有點令人驚訝,因爲我運行程序時沒有例外。關於我缺少的任何想法。我非常感謝你幫助解決問題。

下面是代碼:

public static void main(String[] args) { 
Session session = null; 

try{ 
// This step will read hibernate.cfg.xml and prepare hibernate for use 
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 
session =sessionFactory.openSession(); 
Contact contact = new Contact(); 
contact.setId(1); 
contact.setFirstName("asdad"); 
contact.setLastName("Kumar"); 
contact.setEmail("deepak"); 
session.save(contact); 
}catch(Exception e){ 
System.out.println(e.getMessage()); 
e.printStackTrace(); 
}finally{ 
session.flush(); 
session.close(); 

} 

} 
+0

您是否錯過提交聲明? – Soft 2010-12-17 16:51:58

回答

2

看來你忘了創建事務:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 
using (ISession session = sessionFactory.OpenSession()) 
{ 
using (ITransaction transaction = session.BeginTransaction()) 
{ 
    Contact contact = new Contact(); 
    contact.setId(1); 
    contact.setFirstName("asdad"); 
    contact.setLastName("Kumar"); 
    contact.setEmail("deepak"); 
    session.save(contact); 
    transaction.Commit(); 
} 
} 

你可能想看看nhibernate tutorial

0

什麼是您的聯繫類映射?你如何配置Hibernate的樣子? 有可能您沒有與數據庫連接。

0
Session session = new Configuration().configure().buildSessionFactory(); 
Transaction transaction = session.beginTransaction(); 
transaction.begin(); 
Contact contact = new Contact(); 
contact.setId(1); 
contact.setFirstName("asdad"); 
contact.setLastName("Kumar"); 
contact.setEmail("deepak"); 
session.save(contact); 
transaction.commit(); 
session.close(); 
+0

嗨,你做的伎倆。非常感謝您的幫助。問候... Dev – user496934 2010-12-17 17:04:06

+0

如果這樣做,請嘗試upvote /接受答案。 – tobsen 2010-12-17 17:16:12