`
Supanccy2013
  • 浏览: 212859 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hibernate基本知识1

阅读更多
package com.supan.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.supan.bean.News;
import junit.framework.TestCase;
public class HibernateCrudTest  extends TestCase {
    public void testInsert(){
		Configuration config = new Configuration().configure();  //获取配置对象,注意.configure()会自动读取hibernate.cfg.xml文件
		SessionFactory sf = config.buildSessionFactory();//创建回话工厂sessionFactory是整个数据库映射关系经过编译后的内存影像,是线程安全的。
		Session sess = sf.openSession();
		Transaction tx = (Transaction) sess.beginTransaction();
		News mynew = new News();
		mynew.setTitle("hibernate的神奇");
		mynew.setContent("hibernate非常的神奇");
		sess.save(mynew);        //save返回持久化对象的主键值,persist返回null
		tx.commit();            //提交事物
		sess.close();           //关闭回话
		sf.close();             //关闭工程
		System.out.println("插入成功");
		
		/*
		 * 注意因为该实体在映射文件中已经指定了标示符生成规则,在保存之前会自动的生成一个id分配给对象,并持久化到数据库中
		 * 如果标示符是assigned或者是符合主键,那么在save之前需要手动分配数值。
		 * save persist方法功能几乎完全一样:之所以提供两个方法,是因为:
		 * 1,照顾习惯了jpa的用法
		 * 2,save返回主键值,persist返回null
		 * 3,save因为需要返回主键值,所以会立即生成insert语句
		 *   persist则保证当它在一个事务外部被调用时,并不立即转换成insert这个是
		 *   非常有用的,尤其当我们封装一个长回话流程的时候。
		 */
    }
    
    public void testLoad(){
    	Configuration cfg = new Configuration().configure();
    	SessionFactory sess = cfg.buildSessionFactory();
    	Session session = sess.openSession();
    	Transaction ts = session.beginTransaction();
    	News mynews = (News)session.load(News.class, new Integer(10)); //持久化状态
    	mynews.setTitle("陈超阳1");
    	mynews.setContent("河南平顶山人2");
//    	session.save(mynews); //多此一举,在session管理下的的对象,一旦修改了他的属性,在session的flush前会自动update到数据库中的
    	System.out.println(mynews.getTitle());
    	System.out.println(mynews.getContent());
    	session.flush();
    	ts.commit();
    	session.close();
    	sess.close();
    	/*get与load方法的区别:
    	 * load方法和get方法主要区别在于是否延迟加载
    	 * load方法具有延迟加载功能,当使用load方法时,不会立即访问数据库。当时图加载的对象不存在时
    	 * load方法会返回一个代理,get方法会立即访问数据库,视图访问的对象不存在时返回null
    	 * 
    	 * hibernate的处理流程:
    	 * 从表面上看,上述程序有一个极大的性能缺陷,当我们需要修改一个持久化对象时需要
    	 * 发送两条sql语句,一条用于查询指定记录的select语句,另一个用于修改该记录的update语句,但是
    	 * 实际应用中无须考虑这种性能的缺陷:对于一个javaee应用而言:hibernate的处理流程通常是这样的:
    	 * 从数据库里加载记录->将信息发送到表现层供用户修改,->
    	 * 将所做修改重新保存到数据库里,这种流程下应用本省就需要发送两条sql语句
    	 */
    }
    
    //update没有作用????
    public void testUpdate(){
    	Configuration cfg = new Configuration().configure();
    	SessionFactory sessionFactory = cfg.buildSessionFactory();
    	Session session1 = sessionFactory.openSession();
    	News news = (News)session1.get(News.class, new Integer(10));
        session1.close();
        news.setTitle("yangui");
        news.setContent("tangjunshan");
        Session session2 = sessionFactory.openSession();
        session2.update(news);
        session2.flush();
        session2.close();
    }
}
分享到:
评论

相关推荐

    hibernate基本知识点

    hibernate基本知识点,里面有关于hibernate的配置说明,hibernate的讲解

    StrutsSpringHibernate基本知识

    StrutsSpringHibernate基本知识,清楚易懂

    hibernate基本架构

    文档阐述了hibernate基本架构的使用,可以作为hibernate学习的基础知识

    最新版本的Struts2+Spring4+Hibernate4框架整合

    同时使用了Struts2、Spring4、Hibernate4、log4j、slf4j、junit4、ehcache等库或框架,搭建一个最基本的项目原型。 三、 三大框架最新版本下载:截止2014-10-01 Struts2.3.6:发布于2014-05-03,目前的最新版本。...

    hibernate4知识点及配置说明

    hibernate4基本知识点,常见问题解决方案,基本配置注意事项

    Hibernate介绍ppt

    介绍很全的 Hibernate PPT,基本上知识点涉及很全

    Struts+Spring+Hibernate开发实例 (SSH整合)

    本文并不想介绍Struts,Spring,Hibernate的原理系统架构等,本文地目的是通过一...以及那些已经了解Struts,Spring,Hibernate的基本概念,但是还没有亲身在较复杂的项目中体验Struts+Spring+Hibernate的开发人员。

    Hibernate3开发.pdf

    系统学习Hibernate3的开发知识,循序渐进 第一章:Hibernate入门 包括:是什么、ORMapping原理、能干什么、有什么、怎么做(做什么) ... 包括:分增删改查的操作说明Hibernate基本的实现原理 第八章:最佳实践

    Hibernate实战(第2版 中文高清版)

    第一部分 从Hibernate和EJB 3.0开始  第1章 理解对象/关系持久化   1.1 什么是持久化   1.1.1 关系数据库   1.1.2 理解SQL   1.1.3 在Java中使用SQL  ...附录A SQL基础知识  附录B 映射快速参考

    Struts,Hibernate,Spring集成开发宝典.pdf

    《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...

    spring4.1.6+hibernate4.3.9+struts2.3.20整合

    一、 项目名称:ssh 项目原型:Struts2.3.20 + Spring4.1.6 + Hibernate4.3.9 ...同时使用了Struts2、Spring4、Hibernate4、log4j、slf4j、junit4、ehcache等库或框架,搭建一个最基本的项目原型。

    struts2 spring hibernate框架技术与项目实战 光盘源码

    详细讲解了S2SH框架技术的基本知识和使用方法,从Eclipse开发平台、JSP、Servlet等基础知识讲起,由浅入深,重点介绍了当前流行的三个轻量级开源框架:Struts2、Spring和Hibemate.

    Struts Hibernate Spring集成开发宝典.part1

    《Struts Hibernate Spring集成开发宝典》中文pdf版 计算机电子书下载,《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列...

    疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发(part01)

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax...第9章以后的内容则需要掌握Spring、Hibernate等Java EE知识,建议先认真阅读疯狂Java体系的《轻量级Java EE企业应用实战》一书。

    Struts+hibernate含金量很高的例子

    从此,你就会用hibernate进行基本操作了。并且程序中不再有sql语句,实现了很好的封装. 里面还有个文档: 讲解hibernate基础的 1. 什么是hibernate? 2. hibernate的知识内容 3. 什么是对象持久化?对象持久化有...

    hibernate应用开发完全手册源码(5-16)

    Hibernate的环境搭建及使用Hibernate时必须掌握的基本技术等基础知识;在Hibernate中映射关联关系、事务应用、检索策略、映射值类型集合等高级应用;小型网站或应用程序的开发思路、方法和过程;基于Struts+...

    hibernate学习

    是很好的教材,案例写的很详细,基本知识要点都在上面,hibernate基本都够用了

    网上订餐系统(struts+spring+hibernate).rar

    本人严格执行需求分析,概要设计,详细设计与编码以及系统设计等设计步骤来完成该系统,并且在系统开发过程中结合理论知识与开发技术,完成了网上订餐系统平台的构建,实现预期的网上订餐的基本功能。

    Struts+Spring+Hibernate之选课系统

    一 介绍 本文并不想介绍Struts,Spring,Hibernate的原理系统架构等,本文的目的...以及那些已经了解Struts,Spring,Hibernate的基本概念,但是还没有亲身在较复杂的项目中体验Struts+Spring+Hibernate的开发人员。

    Struts Hibernate Spring集成开发宝典 源码

    《Struts Hibernate Spring集成开发宝典》以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。《Struts Hibernate ...

Global site tag (gtag.js) - Google Analytics