`
chensunhao
  • 浏览: 11613 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Hibernate入门

阅读更多

      Hibernate对JDBC API进行了封装,负责持久化Java对象;在软件架构的分层中位于持久层,封装了访问数据的细节,使业务层更能专注业务的处理;它是一种ORM映射工具,用于建立面向对象的域模型和关系数据模型之间的映射。

 

      一、ORM简介

      ORM(对象-关系映射)是Object-Relation Mapping的简称,指的是在单个组件中负责所有实体域对象的持久化,封装数据访问细节。ORM作为一个中间件,很好的解决了面向对象和面向关系之间的天然阻抗。ORM采用元数据来描述对象-关系映射,通常采用XML格式。

 

      二、Hibernate API简介

      Hibernate对JDBC做了轻量级的封装,故Java应用程序即可通过Hibernate的API来访问数据库也可以直接使用JDBC来访问数据库。

      Hibernate API中的核心接口层次架构关系如图:



       其中很重要的几个:

      1.Configuration接口:配置Hibernate,创建SessionFactory对象

      2.SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建Session对象

      3.Session接口:负责对对象的增、删、改、查操作

      4.Transaction接口:管理事务

      5.Query和Criteria接口:主要用于数绝库的查询操作

 

      三、使用Hibernate

      在Java应用中使用Hibernate包含以下几个步骤:

      1.创建Hibernate的配置文件

      2.创建持久化类

      3.创建对象-关系映射文件

      4.通过Hibernate API编写访问数据库的代码

      举例说明:

      现有数据库表user:

mysql> select * from t_user;
+----+------+-----+
| u_id | u_name | u_age |
+----+------+-----+
|  1 | test |  18 |
+----+------+-----+
1 row in set

      现在Java中使用Hibernate向t_user增加一条记录u_name=hibernate,u_age=20,u_id为设置为自动增长。

    1.创建Hibernate的配置文件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">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>
    <session-factory>
        <property name="connection.username">mysql</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/user</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="myeclipse.connection.profile">MySQL</property>
        <property name="connection.password">mysql</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    </session-factory>
</hibernate-configuration>

    2.创建持久化类UserPO:

package com.china.po;

import java.io.Serializable;

public class UserPO implements Serializable{

	private int id;

	private String name;

	private int age;
	
	public UserPO(){
		
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

}

    3.创建对象-关系映射文件UserPO.hbm.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
	<!-- name和table表示PO对象和数据库表的对应关系 -->
	<class name="com.china.po.UserPO" table="t_user">
		<!-- 标识主键 -->
		<id name="id" column="u_id" type="int">
			<!-- 设置u_id为自动增长 -->
			<generator class="increment"></generator>
		</id>
		<!-- 设置对象普通属性和数据库表字段的对应关系 -->
		<property name="name" column="u_name" type="java.lang.String"></property>
		<property name="age" column="u_age" type="int"></property>
	</class>
</hibernate-mapping>

    4.在hibernate.cfg.xml中配置UserPO.hbm.xml,即在session-factory中添加一个子元素:

<mapping resource="com/lovo/po/PetPO.hbm.xml"/>

    5.使用Hibernate API来访问数据库:

package com.china.dao;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.china.po.UserPO;
import com.china.util.HibernateSessionFactory;

public class UserDAO {

	public void addUser(UserPO user){
		//创建session对象
		Session session = HibernateSessionFactory.getSession();
		//开启事务
		Transaction trans = session.beginTransaction();
		//执行保存user操作
		session.save(user);
		//提交事务
		trans.commit();
		//关闭连接
		session.close();
	}
}

    6.编写测试mian方法:

package com.china.test;

import com.china.dao.UserDAO;
import com.china.po.UserPO;

public class Test {

	public static void main(String[] args) {
		UserPO user = new UserPO();
		user.setName("hibernate");
		user.setAge(20);
		
		UserDAO dao = new UserDAO();
		dao.addUser(user);
	}
}

    再次查看表t_user,操作成功

mysql> select * from t_user;
+------+-----------+-------+
| u_id | u_name    | u_age |
+------+-----------+-------+
|    1 | test      |    18 |
|    2 | hibernate |    20 |
+------+-----------+-------+
2 rows in set
 

    汗!不小心发到坛子来了,也没法修改,纯属新手读书笔记,各位大虾不要见怪。

 

 

  • 大小: 16.2 KB
分享到:
评论
2 楼 mlw2000 2009-10-29  
我觉得写的很好
1 楼 段箭*残箫 2009-10-29  
hahahha

相关推荐

    Hibernate入门到精通

    "Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...

    Hibernate入门jar包

    本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之配合使用的相关组件。让我们深入探讨一下这些jar包以及它们在Hibernate中的作用。 1. Hibernate核心库: - `hibernate-core.jar`:这...

    Hibernate入门案例源码

    【Hibernate入门案例源码】是针对初学者设计的一份教程,旨在帮助理解并掌握Java持久化框架Hibernate的基础应用。Hibernate是一个强大的ORM(对象关系映射)框架,它简化了数据库与Java对象之间的交互,使开发者可以...

    Hibernate入门(代码+笔记)

    **Hibernate入门** Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发者无需编写大量的SQL语句,就能实现数据的增删改查。本教程将分为五个部分,逐步深入Hibernate的世界。 **...

    初学hibernate,hibernate入门

    **初学Hibernate,Hibernate入门** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。在Java应用中,通过Hibernate,开发者可以将数据库操作抽象成对象模型,使得代码...

    hibernate入门小例子

    【hibernate入门小例子】是一个适合初学者的教程,主要涵盖了如何在JavaWeb项目中使用Hibernate框架与MySQL数据库进行集成。在这个例子中,我们将会深入理解Hibernate的核心概念,包括实体映射、对象关系映射(ORM)...

    hibernate入门

    **hibernate入门** Hibernate 是一个强大的Java持久化框架,它简化了数据库操作,使得开发者无需直接编写SQL语句即可实现对象与关系数据库之间的映射。这个文档将带你步入Hibernate的世界,了解其基本概念和核心...

    hibernate入门--第一个实例

    【hibernate入门--第一个实例】 Hibernate 是一个强大的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。通过使用Hibernate,我们可以将数据库操作转换为对Java对象的操作,从而简化了数据库...

    Hibernate入门到精通.pdf

    《Hibernate入门到精通》这本书是针对Java开发人员深入学习Hibernate框架的一份宝贵资源。Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。通过使用Hibernate,...

    Hibernate入门教程.pdf

    ### Hibernate入门教程知识点详解 #### 一、Hibernate框架简介 **Hibernate** 是一款开放源代码的**对象关系映射(Object-Relational Mapping,简称ORM)**框架,它为Java应用提供了一种高效的机制,用于处理Java...

    struts+hibernate入门实例(eclipse版)

    ### Struts + Hibernate 入门实例(Eclipse 版) #### 一、开发环境搭建 在本章节中,作者朱千平将引导我们完成开发环境的搭建,包括以下几个步骤: 1. **下载安装Eclipse**: Eclipse 是一个开源的集成开发环境...

    Hibernate入门笔记

    ### Hibernate入门知识点详解 #### 一、环境搭建与配置 - **工程创建**:首先,创建一个名为`HibernateDemo`的Java工程,这是构建Hibernate应用的基础。为了使工程能够识别和运行Hibernate相关的代码,需要正确地...

    史上最简单的Hibernate入门简介

    其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,看了这个希望能给你点启示!

    hibernate入门实例操作步骤

    **hibernate入门实例操作步骤** Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用Java对象的方式处理数据库事务。本篇将详细介绍Hibernate入门实例的操作步骤,...

    hibernate入门简单实例

    以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,通过这种方式,我们可以使用面向对象的编程方式来操作数据,而无需直接编写SQL语句。 2. **...

    hibernate教程,hibernate入门

    **Hibernate 教程:带你入门持久化框架** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它为 Java 应用程序提供了便捷的数据持久化服务。本教程将引导你逐步了解 Hibernate 的基本概念、安装配置以及核心...

    02_传智播客hibernate教程_hibernate入门案例的细节分析

    【标题】:“02_传智播客hibernate教程_hibernate入门案例的细节分析” 在本教程中,我们将深入探讨Hibernate,一个流行的Java对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以更加专注于业务逻辑而不是...

Global site tag (gtag.js) - Google Analytics