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
分享到:
- 2009-10-28 23:43
- 浏览 768
- 评论(2)
- 论坛回复 / 浏览 (1 / 2932)
- 查看更多
相关推荐
"Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...
本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之配合使用的相关组件。让我们深入探讨一下这些jar包以及它们在Hibernate中的作用。 1. Hibernate核心库: - `hibernate-core.jar`:这...
【Hibernate入门案例源码】是针对初学者设计的一份教程,旨在帮助理解并掌握Java持久化框架Hibernate的基础应用。Hibernate是一个强大的ORM(对象关系映射)框架,它简化了数据库与Java对象之间的交互,使开发者可以...
**Hibernate入门** Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发者无需编写大量的SQL语句,就能实现数据的增删改查。本教程将分为五个部分,逐步深入Hibernate的世界。 **...
**初学Hibernate,Hibernate入门** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。在Java应用中,通过Hibernate,开发者可以将数据库操作抽象成对象模型,使得代码...
【hibernate入门小例子】是一个适合初学者的教程,主要涵盖了如何在JavaWeb项目中使用Hibernate框架与MySQL数据库进行集成。在这个例子中,我们将会深入理解Hibernate的核心概念,包括实体映射、对象关系映射(ORM)...
**hibernate入门** Hibernate 是一个强大的Java持久化框架,它简化了数据库操作,使得开发者无需直接编写SQL语句即可实现对象与关系数据库之间的映射。这个文档将带你步入Hibernate的世界,了解其基本概念和核心...
【hibernate入门--第一个实例】 Hibernate 是一个强大的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务。通过使用Hibernate,我们可以将数据库操作转换为对Java对象的操作,从而简化了数据库...
《Hibernate入门到精通》这本书是针对Java开发人员深入学习Hibernate框架的一份宝贵资源。Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。通过使用Hibernate,...
### Hibernate入门教程知识点详解 #### 一、Hibernate框架简介 **Hibernate** 是一款开放源代码的**对象关系映射(Object-Relational Mapping,简称ORM)**框架,它为Java应用提供了一种高效的机制,用于处理Java...
### Struts + Hibernate 入门实例(Eclipse 版) #### 一、开发环境搭建 在本章节中,作者朱千平将引导我们完成开发环境的搭建,包括以下几个步骤: 1. **下载安装Eclipse**: Eclipse 是一个开源的集成开发环境...
### Hibernate入门知识点详解 #### 一、环境搭建与配置 - **工程创建**:首先,创建一个名为`HibernateDemo`的Java工程,这是构建Hibernate应用的基础。为了使工程能够识别和运行Hibernate相关的代码,需要正确地...
其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,看了这个希望能给你点启示!
**hibernate入门实例操作步骤** Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用Java对象的方式处理数据库事务。本篇将详细介绍Hibernate入门实例的操作步骤,...
以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,通过这种方式,我们可以使用面向对象的编程方式来操作数据,而无需直接编写SQL语句。 2. **...
**Hibernate 教程:带你入门持久化框架** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它为 Java 应用程序提供了便捷的数据持久化服务。本教程将引导你逐步了解 Hibernate 的基本概念、安装配置以及核心...
【标题】:“02_传智播客hibernate教程_hibernate入门案例的细节分析” 在本教程中,我们将深入探讨Hibernate,一个流行的Java对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以更加专注于业务逻辑而不是...