博为峰Java技术文章 ——JavaEE Hibernate保存数据

来源:互联网 发布:r语言编程艺术 pdf 编辑:程序博客网 时间:2024/04/20 07:01

博为峰小博老师:

Hibernate对JDBC的操作进行了轻量级的封装,使开发人员可以利用Session对象以面向对象的思想实现对关系型数据库的操作,轻而易举地实现数据库基本的增,删、改、查操作。在学习Hibernate的添加数据方法前,首先了解一下Hibernate数据库持久化流程,Hibernate的数据持久化过程如下图所示。


下面以商品的基本本信息为例进行数据库的增、删、改、查操作,首先构造商品的持久化类Product.java。关键代码如下:

@Entity

public class Product {

@Id

//@GeneratedValue(strategy = GenerationType.AUTO)

private int id//唯一标识

private String name;//产品名称

private double price;//产品价格

private String factory;//生产商

private String remark;//备注

......  //身略Setter()Getter()方法

}

在执行添加操作时需要Session对象的save()方法,它的入口参数为程序中的持久化类。向数据库中的产品信息表添加产品信息,如下代码。

public class Test {

public static void main(String[] args) {

Session session = HibernateUtil.getSession();

session.beginTransaction();

Product product=new Product();

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所收回。

0 0
原创粉丝点击