Hibernate中的问题

时间:2010-12-17 16:44:08

标签: hibernate

我编写了一个程序,在联系人数据库中插入一行,该行有一个名为contact的表。当我执行程序时,它运行没有任何错误,并提供以下输出 -

  

Hibernate:插入CONTACT(FIRSTNAME,LASTNAME,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();

}

}

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您对Contact类的映射是什么?你如何看待Hibernate配置? 您可能没有与数据库建立连接。

答案 2 :(得分: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();