Hibernate对JDBC的操作进行了轻量级的封装,使开发人员可以利用Session对象以面向对象的思想实现对关系型数据库的操作,轻而易举地实现数据库基本的增,删、改、查操作。在学习Hibernate的添加数据方法前,首先了解一下Hibernate数据库持久化流程,Hibernate的数据持久化过程如下图所示。
下面以商品的基本本信息为例进行数据库的增、删、改、查操作,首先构造商品的持久化类Product.java。关键代码如下:
@Entity
publicclassProduct {
@Id
//@GeneratedValue(strategy = GenerationType.AUTO)
privateintid;//唯一标识
privateStringname;//产品名称
privatedoubleprice;//产品价格
privateStringfactory;//生产商
privateStringremark;//备注
......//身略Setter()和Getter()方法
}
在执行添加操作时需要Session对象的save()方法,它的入口参数为程序中的持久化类。向数据库中的产品信息表添加产品信息,如下代码。
publicclassTest {
publicstaticvoidmain(String[] args) {
Session session =HibernateUtil.getSession();
session.beginTransaction();
Product product=newProduct();
product.setId(100001);
product.setName("女士牛仔外套");
product.setFactory("苏州万丽服饰");
product.setPrice(233.9);
product.setRemark("2017春新款");
session.save(product);
session.getTransaction().commit();
}
}
持久化对象product在创建之后是瞬时状态(Transient),在Session执行save()方法之后持久化对象product的状态变为待久化状态(Persistent),但是这时数据库操作并未提交给数据库,在事务执行commit()方法之后,才完成数据库的添加操作,此时的特久化对象product成为脏(dirty)对象。
Session关闭之后,特久化对象product的状态变为托管状态(Detached),并最后被JVM所收回。