`
Supanccy2013
  • 浏览: 223291 次
  • 性别: 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是一个开源的对象关系映射(ORM)框架,它为Java应用程序提供了简化的方式去处理数据库操作。通过提供一种面向对象的方法来与关系型数据库进行交互,...

    hibernate基本jar包(数据库是Oracle)

    在“hibernate基本jar包(数据库是Oracle)”中,我们可以推断出这是针对使用Oracle数据库的Hibernate项目所需的基础库集合。这个压缩包很可能是包含了一系列用于搭建Hibernate环境并连接Oracle数据库的JAR文件。以下...

    Hibernate知识点总结

    ### Hibernate知识点总结 #### 一、Hibernate概述 Hibernate是一个开源的ORM(Object Relational Mapping,对象关系映射)框架,用于Java应用与关系型数据库之间的交互。它通过使用描述对象和数据库之间映射的元...

    hibernate主要知识点

    Hibernate 知识点涵盖了许多方面,从基本的 ORM 理念到具体的开发流程、对象限制、工具类使用,再到核心接口的理解。学习 Hibernate,不仅需要理解其工作原理,还要熟练掌握如何配置和使用,以实现高效的数据访问和...

    StrutsSpringHibernate基本知识

    StrutsSpringHibernate是Java开发中的三个重要框架,它们在构建企业级Web应用中扮演着核心角色。Struts是一个基于MVC设计模式的框架,Spring是一个全面的后端框架,包括依赖注入、AOP、数据库事务管理等,而...

    16Hibernate基本API

    ### Hibernate基本API Hibernate是一种流行的Java持久化框架,它为Java应用程序提供了强大的数据持久化能力,特别是对于那些需要频繁与数据库交互的大型企业级应用。Hibernate通过其基本API,使得开发者能够以面向...

    Hibernate关键知识点大全

    1. **基本概念** - **Hibernate**:是一个ORM(Object-Relational Mapping)框架,用于将Java对象与数据库表进行映射,简化数据库操作。 - **JPA(Java Persistence API)**:是Java标准的持久化API,提供了一套...

    hibernate基本jar包

    这个“hibernate基本jar包”包含了运行Hibernate应用程序所需的核心库,是学习和开发SSH(Struts、Spring、Hibernate)框架的基础。 SSH框架是Java Web开发中的一个经典组合,其中Hibernate负责数据持久化。以下是...

    hibernate基本架构

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

    Hibernate Hibernate5 讲义 PDF

    Hibernate是一个开源的对象关系映射(ORM)框架,它封装了JDBC(Java Database ...该讲义涵盖了Hibernate的基本技术、配置方法以及如何开发一个Hibernate程序等重要知识点,为学习者提供了一个实践ORM框架的良好起点。

    hibernate基本功能

    ### Hibernate基本功能详解 #### 一、概述 Hibernate是一个开源的对象关系映射(ORM)框架,它能够将Java对象映射到数据库表中,并管理这些对象的生命周期。本篇文章主要介绍利用Hibernate框架来实现基本的功能...

    Hibernate框架知识点的练习代码

    **Hibernate 框架知识点详解** Hibernate 是一个强大的开源对象关系映射(ORM)框架,它简化了 Java 应用程序对数据库的操作。通过提供一套API和元数据,Hibernate 可以将Java类与数据库表进行映射,使得开发者可以...

    hibernate实战 英文版

    ### Hibernate实战知识点解析 #### 一、书籍简介与评价概览 《Hibernate实战》是一部...通过本书的学习,不仅可以快速掌握Hibernate的基本用法,还能深入了解其背后的原理和最佳实践,从而更好地应用于实际项目中。

    Hibernate 中文api 等学习资料

    1. **Hibernate Developer Guide.pdf**:这可能是官方的Hibernate开发者指南,涵盖了从安装配置到高级特性的详细教程,是深入理解Hibernate的好资源。 2. **HIBERNATE - Relational Persistence for Idiomatic Java...

    hibernate3必要jar包

    1. **Hibernate3简介**:Hibernate3是Hibernate项目的第三个主要版本,它提供了一种对象关系映射(ORM)解决方案,允许开发人员使用面向对象的编程模型来处理关系数据库。它的目标是减少数据库访问的复杂性,提高...

    Hibernate面试题专栏 - 最全的Hibernate面试题, Hibernate笔试题, Hibernate问题

    Hibernate基本概念** - **对象关系映射(ORM)**: ORM是将数据库中的表映射为Java类,使得开发者可以使用面向对象的方式来操作数据库。 - **Session**: Hibernate的核心接口,用于与数据库交互,提供了保存、更新、...

    hibernate的知识总结

    Hibernate的知识点非常广泛,下面从给定文件的标题、描述、标签和部分内容中提炼出一些关键知识点进行总结。 ### Hibernate与数据库数据类型对照 Hibernate需要将Java的数据类型映射到数据库的相应类型。这部分...

    hibernate和MySQL的jar

    在描述中提到的“核心jar,亲测可用,跑demo是够用了”,这表明这些jar文件包含了运行Hibernate与MySQL交互所需的基本组件,并且已经有人验证过它们在演示或测试环境中可以正常工作。通常,这包括Hibernate的核心库...

    Hibernate大总结/Hibernate面试题大全

    1. **Configuration** 类是Hibernate框架的核心配置类,负责读取配置文件并初始化配置信息。构造方法会默认读取 `hibernate.properties` 文件,如果需要使用其他的配置文件,可以通过 `configure(String ...

    Hibernate3的依赖包

    7. **类型转换和用户类型**:Hibernate支持基本数据类型的自动转换,同时也允许自定义复杂类型的映射。 8. **关联映射**:Hibernate支持一对一、一对多、多对一、多对多等各种关联关系的映射,方便地处理复杂的...

Global site tag (gtag.js) - Google Analytics