我编写了一个程序,在联系人数据库中插入一行,该行有一个名为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();
}
}
答案 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();