Hibernate中对象的状态

来源:互联网 发布:php集成环境 编辑:程序博客网 时间:2024/05/17 15:22


一、对象状态介绍

 1.瞬时状态:自己new出来的对象就是瞬时状态。在数据库表中没有记录和对象相对应。

 2.持久状态:调用save方法后,数据库表中有记录和该对象对应,并被session管理。

 3.脱管状态:数据库中有记录和该对象对应,但是对象不被session管理。


二、用代码表示

package com.hbsi.test;

 

import java.util.Date;

 

import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.hibernate.Transaction;

 

import com.hbsi.Hibernate.utils.HibernateUtil;

import com.hbsi.domain.User;

 

public class TestHibernate {

 

       public static voidmain(String[] args) {

 

              User user = newUser();

              user.setName("Jerry");   //此时为瞬时状态

              user.setBirthday(newDate());

             

              //增

              addUser(user);

             

             

              //查

              user =getUser(1);

              System.out.println(user.getId()+"\t"+user.getName()+"\t\t"+user.getBirthday());

//此时为托管状态

 

       }

 

       public static voidaddUser(User user) {

              Session session =null;

              // 开启事物

              Transaction tx =null;

              try {

                     session =HibernateUtil.getSession();

                     tx =session.beginTransaction();

 

                     session.save(user);  //此时为持久状态

                     tx.commit();

              } catch(HibernateException ex) {

                     if (tx !=null) {

                            tx.rollback();

                     }

                     throw ex;

              } finally {

                     if(session != null) {

                            session.close();

                     }

              }

 

       }

 

       public static voidaddUser1(User user) {

              Session session =null;

              // 开启事物

              Transaction tx =null;

              try {

                     session =HibernateUtil.getSession();

                     tx =session.beginTransaction();

 

                     session.save(user);

                     tx.commit();

              } finally {

                     if(session != null) {

                            session.close();

                     }

              }

 

       }

 

       public static UsergetUser(int id) {

              Session session =null;

              try {

                     session =HibernateUtil.getSession();

                    

                     /*懒加载:得到的是代理对象,代理对象不为null,但它也没有

                      * 访问数据库。在第一次使用代理对象时,获取Session,访问数据库。

                      * */

                     //Useruser = (User) session.load(User.class, id);

                     //System.out.println(user.getId()+"\t"+user.getName()+"\t\t"+user.getBirthday());

                    

                     User user= (User) session.get(User.class, id);

 

                     returnuser;

              } finally {

                     if(session != null) {

                            session.close();

                     }

              }

 

       }

 

}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机蚂蚁浏览器先锋资源没了怎么办 当你发现你的爱人和别人暧昧怎么办 当你的爱人不再爱的时候该怎么办 基督徒的婚姻不是上帝的旨意怎么办 音乐酒吧客人老是要上台唱歌怎么办 高一孩子学习没有动力家长怎么办 我不想当公司监事法人不同意怎么办 领导让我当组长我不想当怎么办 如果你是班委你不想当了怎么办 孩子读初一爱和同学打架怎么办 陌陌情感连线部分功能被限制怎么办 华为荣耀7x密码忘了怎么办 华为荣耀7x应用锁密码忘了怎么办 同学群里有人发低俗信息怎么办 小孩读英语绘本大人不会翻译怎么办 东西掉到手刹缝里面了怎么办 泰拉瑞亚猩红之地蔓延到家里怎么办 三星r.467玩dnf闪退怎么办 美团外卖不小心撞到汽车怎么办 如果你在战场上遇到华裔美军怎么办 衣服洗完了干了后发黄怎么办 毛衣起球怎么办学会这几个小妙招 小车没电了打不着火怎么办 老婆花钱大手大脚又要我给钱怎么办 住酒店手机id被劫持了怎么办 孩子老是送玩具给别的小朋友怎么办 老板总想和我谈人生怎么办gl 导师让用师姐的数据写论文怎么办 签了平面模特协议想违约怎么办 福州96年以前社保手册丢了怎么办 被老师缴的手机弄没了怎么办 户口在成都医保在德阳生孩子怎么办 微课掌上通看不到孩子班级圈怎么办 微课掌上通的录音错误是怎么办 微课视频录制ppt里面音乐怎么办 老师在街上和别人吵起来了怎么办 手机录屏传到爱剪辑变成竖屏怎么办 尔雅通识课程考试忘记做了怎么办 尔雅通识课过了课程完成时间怎么办 微信账号没冻结登录不了怎么办 微信解封电话号码没有电话号怎么办