码迷,mamicode.com
首页 > Web开发 > 详细

二、持久层框架(Hibernate)

时间:2018-03-06 12:44:51      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:test   configure   none   code   blog   使用   pac   AC   分享图片   

一、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)

标签:test   configure   none   code   blog   使用   pac   AC   分享图片   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!