博为峰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所收回。
- 博为峰Java技术文章 ——JavaEE Hibernate保存数据
- 博为峰Java技术文章 ——JavaEE Hibernate配置文件
- 博为峰Java技术文章 ——JavaEE Hibernate查询数据
- 博为峰Java技术文章 ——JavaEE Hibernate删除数据
- 博为峰Java技术文章 ——JavaEE Hibernate修改数据
- 博为峰JavaEE技术文章 ——MyBatis Hibernate 简介
- 博为峰JavaEE技术文章 —— Hibernate Configuration
- 博为峰JavaEE技术文章 —— Hibernate域模型
- 博为峰Java技术文章 ——JavaEE 初识Hibernate II
- 博为峰Java技术文章 ——JavaEE 初识HibernateⅠ
- 博为峰Java技术文章 ——JavaEE Hibernate实例状态
- 博为峰Java技术文章 ——JavaEE Hibernate初始化类
- 博为峰Java技术文章 ——JavaEE Hibernate HQL语言
- 博为峰Java技术文章 ——JavaEE Hibernate HQL对象查询
- 博为峰Java技术文章 ——JavaEE Hibernate HQL条件查询
- 博为峰Java技术文章 ——JavaEE Hibernate HQL条件查询
- 博为峰JavaEE技术文章 ——MyBatis Hibernate 工作原理
- 博为峰JavaEE技术文章 —— Hibernate 指南(1)Hbm文件
- 基于Spring任务调度器实现可动态启停的任务调度器
- 交叉编译工具链环境的搭建__1
- 插入排序
- 函数的求导问题
- HDU 1512 Monkey King(左偏堆)
- 博为峰Java技术文章 ——JavaEE Hibernate保存数据
- 中文分割
- 开博啦
- Unity 5 中的全局光照技术详解
- shell中的printf命令
- LeetCode 86. Partition List
- make命令行选项
- PHP: php_ldap.dll不能加载解决方案
- R之数据集