分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

二、持久层框架(Hibernate)

发布时间:2023-09-06 01:44责任编辑:白小东关键词:Hibernate

一、Hibernate对象的状态

  实体类对象在Hibernate中有3中状态:瞬时,持久,脱管。

瞬时:没有和Hibernate发生任何关系,在数据库中也没有对应的记录,一旦JVM结束,对象就消失了

持久:一个对象和Hibernate发生联系,有对应的Session,并且在数据库中有对应的一条记录

脱管:一个对象虽然在数据库中有对应的一条记录,但是它所对应的Session已经关闭了。

  首先new一个Product()对像,数据库中还没有对应的记录,这个时候Product对象状态是瞬时的

通过Session的save方法把对象保存在了数据库中,对象也和Session产生了联系,此时状态是持久的

最后把Session关闭了,这个对象在数据库中有对应的数据,但是已经和Session失去了联系,就是脱管的。

package com.demo.test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import com.demo.pojo.Product;public class TestHibernate{ ???public static void main(String[] args){ ???????SessionFactory sf=new Configuration().configure().buildSessionFactory(); ???????Session s=sf.opneSession(); ???????Product p=new Product(); ???????p.setName("demo");//创建实体对象,然后赋值,此时只是瞬时 ???????System.out.println("此时p是瞬时状态"); ???????s.save(p);//调用Session的save()方法 ???????System.out.println("此时p是持久状态"); ???????s.close();//关闭Session连接后 ???????System.out.println("此时p是脱管状态"); ???????sf.close(); ???}}
View Code

二、Hibernate插入对象

  我们可以通过for循环插入对象到数据库,使用Session的save()方法插入数据。

import org.hibernate.cfg.Configuration;import com.demo.pojo.Product;public class TestHibernate{ ???public static void main(String[] args){ ???????SessionFactory sf=new Configuration().configure().buildSessionFactory(); ???????Session s=sf.opneSession(); ???????s.beginTransaction(); ???????????????for(int i=0;i<10;i++){ ???????????Product p=new Product(); ???????????p.setName("demo"+i); ???????????p.setPrice(i); ???????????s.save(p); ???????} ???????s.getTransaction().commint(); ???????s.close(); ???????sf.close(); ???}
View Code

三、Hibernate获取对象

  通过id获取对象有两种方式,get和load

区别:1、延迟加载  2、对于id不存在时候的处理

load:

二、持久层框架(Hibernate)

原文地址:https://www.cnblogs.com/drq1/p/8513658.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved