`

Hibernate学习总结之基础篇

阅读更多

hibernate 是对 jdbc 进行轻量级封装的   orm 框架,充当项目的持久层 .

hiberante 可以用在 j2se 项目,也可以用在 j2ee (web 项目中 )

struts web 框架 , 所以用在 web 项目


创建 employe .

create table employee(

id number primary key,

name varchar2(64) not null,

email varchar2(64) not null,

hiredate date not null)

 

创建一个序列,将来用于主键的自增长 :

-- 创建一个序列

create sequence emp_seq

start with 1

increment by 1

minvalue 1

nomaxvalue

nocycle

nocache


domain对象:

package com.sina.domain;
import java.io.Serializable;
//这是一个domain对象(实际上就是javabean/有些人叫pojo)
//他和Employee对应
public class Employee implements Serializable{

    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private Integer id;
    private String name;
    private String email;
    private java.util.Date hiredate;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public java.util.Date getHiredate() {
        return hiredate;
    }
    public void setHiredate(java.util.Date hiredate) {
        this.hiredate = hiredate;
    }
}

Employee.hbml.xml 配置文件

<!DOCTYPE hibernate-mapping PUBLIC

       "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

       "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.sina.domain">

       <class name="Employee" table="employee">

       <!-- id 元素用于指定主键属性 -->

       <id name="id" column="id" type="java.lang.Integer">

       <!-- 该元素用于指定主键值生成策略 hilo native increment sequence uuid -->

       <generator class="sequence">

       <param name="sequence">emp_seq</param>

       </generator>

       </id>

       <!-- 对其它属性还有配置 -->

       <property name="name" type="java.lang.String">

       <column name="name" not-null="false"  />

       </property>

       <property name="email" type="java.lang.String" >

       <column name="email" not-null="false"/>

       </property>

       <property name="hiredate" type="java.util.Date">

       <column name="hiredate" not-null="false" />

       </property>

       </class>      

</hibernate-mapping>


hibernate.cfg.xml 配置文件

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE hibernate-configuration PUBLIC

        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

       <!-- hibernate 设计者,给我们提供了一写常用的配置 -->

       <!-- 配置使用的 driver -->

       <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

       <property name="connection.username">scott</property>

       <property name="connection.password">tiger</property>

       <property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:sina</property>

       <!-- 配置 dialect 方言 , 明确告诉 hibernate 连接是哪种数据库 -->

       <property name="dialect">org.hibernate.dialect.OracleDialect</property>

       <!-- 显示出对于 sql -->

       <property name="show_sql">true</property>

       <!-- 指定管理的对象映射文件 -->

       <mapping resource="com/sina/domain/Employee.hbm.xml"/>

</session-factory>

</hibernate-configuration>

 

测试类:

 

package com.sina.view;

import java.sql.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.sina.domain.Employee;

public class TestMain {

    /**
     * @param args
     */
    public static void main(String[] args) {

    //添加一个雇员
        //1.得到Configuration
        Configuration configuration= new Configuration().configure();
        //2.得到SessionFactory(会话工厂,这是一个重量级的类,因此要保证在一个应用程序中只能有一个)
        SessionFactory sessionFactory=configuration.buildSessionFactory();
       
        //3. 从SessionFactory中取出一个Session对象(它表示 和数据库的出一次会话)
        Session session=sessionFactory.openSession();
        //4. 开始一个事务
        Transaction transaction = session.beginTransaction();
        //保存一个对象到数据库(持久化一个对象)
        Employee emp=new Employee();
        emp.setEmail("kk@sohu.com");
        emp.setHiredate(new java.util.Date());
        emp.setName("sina");
        //不要给id,因为它是自增的
        session.save(emp);//insert into employee (name,id,...) value(?,?,?)
        transaction.commit();
      
}

}

分享到:
评论

相关推荐

    Hibernate学习笔记特别详细

    《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...

    Hibernate 简单 PPT 总结

    这些资料构成了一套完整的Hibernate学习路径,从基础到高级,从配置到实践,对于理解Hibernate的核心机制和提升开发技能都非常有帮助。通过阅读和研究这些内容,开发者可以更熟练地运用Hibernate进行数据库操作,...

    hibernate学习总结

    ### Hibernate学习总结 #### 环境配置与搭建 本文主要介绍了如何在Eclipse3.2环境下使用HibernateSynchronizer-3.1.9、Oracle92和hibernate-3.2.4.sp1来搭建一个简单的Hibernate开发环境,并通过实例演示了基本的...

    Hibernate学习心得

    本篇文章将基于标题"Hibernate学习心得"和提供的压缩包文件,深入探讨Hibernate的相关知识点。 首先,让我们从Hibernate的基础开始。`Hibernate第一章.txt`可能涵盖了这一主题。Hibernate是一个Object-Relational ...

    hibernate知识点总结

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者在Java应用程序中操作数据库,而无需直接编写SQL语句...学习Hibernate不仅有助于入门J2EE开发,也是进一步深入学习Spring Data JPA等高级技术的基础。

    Hibernate学习笔记(1)

    总结,本篇笔记主要介绍了Hibernate的基本使用,包括环境配置、项目构建、DAO设计以及具体的数据库操作实现,提供了从创建对象到持久化到数据库的完整流程。通过这种方式,开发者可以更加专注于业务逻辑,而不用过于...

    hibernate4.x jar

    在给定的文件中,`hibernate-search-engine-4.2.0.Beta2.jar`和`hibernate-search-orm-4.2.0.Beta2.jar`就是Hibernate Search的相关组件,它们提供了对Lucene的集成,使得我们能够在Hibernate ORM的基础上实现高效、...

    hibernate 开发文档发布

    本篇文章将深入探讨Hibernate 3.1.1和3.1.2版本的开发文档,为读者揭示其核心特性和使用方法。 一、Hibernate ORM基础 Hibernate的核心功能在于提供一个持久化层,将Java对象与数据库中的记录进行映射。通过XML配置...

    hibernate学习笔记

    Hibernate学习笔记全面覆盖了基础操作、复杂关系映射和查询语言的使用,是Java开发人员理解和掌握ORM框架的好资源。通过实践这些知识点,开发者可以更高效地管理数据库,提升开发效率,同时减少代码中的错误和冗余。...

    spring hibernate 事务管理学习笔记(二)

    在本篇“Spring Hibernate 事务管理学习笔记(二)”中,我们将深入探讨Spring框架与Hibernate集成时如何实现高效、安全的事务管理。这是一篇关于源码分析和技术工具使用的文章,适合对Java开发和数据库操作有基础...

    hibernate立体结构文档

    总结,“hibernate3.0立体文档”中的32个示例覆盖了Hibernate的基础和进阶应用,包括配置、映射、CRUD操作、查询、关联关系、事务和性能调优等方面,为初学者和开发者提供了丰富的学习资源。通过实践这些例子,能更...

    hibernate-3.0.zip

    本篇文章将针对“hibernate-3.0.zip”这一版本进行详细讲解,带你深入理解Hibernate 3.0的核心机制,以及如何在实际项目中有效地运用它。 一、Hibernate 3.0概述 Hibernate 3.0是Hibernate系列的一个重要版本,它在...

    Hibernate 学习资料

    本篇学习资料详细介绍了Hibernate的基本概念、配置流程、API调用方法及核心类的使用方式。对于初学者而言,这些内容构成了深入理解Hibernate的基础。通过掌握这些知识点,开发人员可以更加有效地利用Hibernate进行...

    MyEclipse_Hibernate_Quickstart

    本篇文章将详细介绍如何使用MyEclipse Enterprise Workbench进行Hibernate开发的基础特征、概念和技术。通过构建一个简单的Java Hibernate应用来逐步展示整个开发过程。 #### 二、需求 为了能够顺利地进行此教程的...

    Java开源项目Hibernate深度探险

    本篇文章将深入探讨Hibernate的核心概念、对象模型与关系数据库模型的差异以及如何通过Hibernate实现对象关系映射。 一、Hibernate的意义 在面向对象的软件设计中,我们通常会通过UML建模工具,将业务逻辑和数据...

    Hibernate初级学习

    - **SessionFactory**:它是Hibernate的核心组件之一,负责创建Session对象,并且提供了配置信息以及与数据库交互的基础设置。通常,一个数据库对应一个SessionFactory实例。它还负责管理事务间的二级缓存。 - **...

    基于Struct+Hibernate的BS程序开发入门实例剖析2

    本篇将深入剖析如何利用Structs框架和Hibernate ORM工具进行BS程序的开发,以帮助初学者快速入门。 **1. 概述** Structs是Apache软件基金会的一个开源项目,它为Java EE提供了一个轻量级、可扩展的MVC(Model-View-...

    Intro to Hibernate TCJUG

    本篇文章将基于给定文件中的信息进行深入解析,重点在于介绍 Hibernate 的基础知识及其在 Java 开发领域的重要作用。文件提供的信息虽然较为简略,但已经涵盖了 Hibernate 的概述、演示大纲、关于演讲者 Steve ...

    hibernate配置详解

    本篇文章将详细解析Hibernate的基本配置方法,包括数据库连接配置、实体类与数据库表的映射配置等,适合Hibernate初学者学习。 #### 二、环境搭建与基本配置 ##### 2.1 数据库准备 首先,我们需要创建一个用于...

    Hibernate文档

    《Hibernate入门》这篇文档是针对Hibernate初学者的教程,旨在帮助读者从零开始学习和掌握Hibernate框架。Hibernate是一个流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的方式来处理数据库操作,...

Global site tag (gtag.js) - Google Analytics