1.
Hibernate
简介
Hibernate
是非常流行的对象
-
关系映射工具。
2.
什么是
ORM
映射
ORM
(
Object Relational Mapping
)简单的说,就是对象与关系的映射,对于实际应用来讲,对象一般指面向对象中的对象,关系指关系型数据库,对于我们具体的项目来说,就是将
java
中的对象与关系型数据库(
oracle
,
mysql
)中的表联系起来
。
Hibernate
是很强大的工具,当我们将建立联系的工作交给它后,就可以专注于与
java
中的对象打交道,而不需要知道它代表的是哪些表。
3.
POJO
(用来映射数据库中的表,构建我们的持久化层)
一个典型的
POJO
public class Person{
private long id;
private String name;
public void setId(BigDecimal value) {
this.id = value;
}
public BigDecimal getId() {
return this.id;
}
public void setName(String value) {
this.name = value;
}
public String getName() {
return this.name;
}
}
表面上看来,一个
POJO
与一个普通的
JavaBean
没有什么区别,我们需要了解的是如何让
POJO
和一个表建立联系。
4.
建立联系的桥梁,映射文件
XML
。
一个典型的映射文件
Person.hbm.xml
(
注意他的命名方式,一般是类名+
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 schema="SCOTT" package="mapping">
<class name="Person" table="PERSON"
>
<id name="id" type="long" unsaved-value="null">
<column name="ID" not-null="true" index="SYS_C004143"/>
<generator class="native"/>
</id>
<property name="name" type="string" column="NAME"/>
</class>
</hibernate-mapping>
注意红线部分代表了
Pojo
对应的是那张表。
一般来说映射文件放在和
Pojo
同一个包
5.
和数据库的连接
Hibernate
配置文件,可以采用
xml
或者
property
文件。
一个典型的配置文件
<?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>
<property name="hibernate.connection.username">toposs</property>
<property name="hibernate.connection.password">toposs</property>
<property name="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="hibernate.connection.url">
jdbc:oracle:thin:@172.16.1.3:1521:orcl
</property>
<property name="hibernate.connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
</session-factory>
</hibernate-configuration>
6.
Hibernate
在
Eclipse
中快速应用
6.1
新建一个工程,将
Hibernate3.jar
和你需要的数据库驱动添加到工程
path
中
6.2
在数据库中新建一个名为
person
的表。
6.3
在工程的默认
package
下建立一个
POJO
,
Person
类与表
person
对应。
public class Person{
private long id;
private String name;
public void setId(long value) {
this.id = value;
}
public long getId() {
return this.id;
}
public void setName(String value) {
this.name = value;
}
public String getName() {
return this.name;
}
}
6.4
现在我们来建立一个
xml
的映射文件(
Person.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>
<class name="Person" table="PERSON">
<id name="id" type="long" unsaved-value="0">
<column name="ID" not-null="true"/>
<generator class="increment"/>
</id>
<property name="name" type="string" column="NAME"/>
</class>
</hibernate-mapping>
6.5
建立
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>
<property name="hibernate.connection.username">scott</property>
<property name="hibernate.connection.password">tiger</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@172.16.1.2:1521:rsora</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hiberante.show_sql">true</property>
<mapping resource="Person.hbm.xml" />
</session-factory>
</hibernate-configuration>
注意红线的部分将
mapping
文件写到
resource
中,如果有多个文件,要写多个文件,文件
的路径是对于根目录的绝对路径
6.6
项目结构图
6.7
所有准备工作都已经做好了
,
下面在
Person
中建立一个
main
方法,我们做一个简单的插入数据库的工作
6.7.1
Main
函数的代码
Public static main(String[] args){
Configuration config=new Configuration().configure();
SessionFactory factory=config.buildSessionFactory();
Session session=factory.openSession();
Transaction tran=session.beginTransaction();
Person p=new Person();
p.setName("test");
session.save(p);
tran.commit();
session.close();
}
6.7.2
点击
Run As Java Application
,运行这个
main
函数
6.7.3
然后查看数据库
我们发现数据库已经新增加了一条记录
7.
最常见的关联关系,一对多关联。
7.1
用父子关系说明一对多(多对一关联)
在实际应用中,很少有一个表是独立的,大部分情况是表和表之间是有关联关系的,其中最常见的是一对多(多对一关联)。
父亲和儿子是典型的一对多关系,一个父亲有多个儿子,儿子只有一个父亲。在这个关系中,父亲是一方,儿子是多方。
7.2
在数据库中建立父子关系。
建表的
sql
语句:
CREATE TABLE father (
Father_id
INTEGER NOT NULL,
name
VARCHAR(10) NULL,
PRIMARY KEY (father_id)
);
CREATE TABLE son (
Son_id
INTEGER NOT NULL,
Son_name
VARCHAR(10) NULL,
Father_ID
INTEGER NULL
PRIMARY KEY (son_id),
FOREIGN KEY (father_id)
REFERENCES father
);
7.3
建立的表的结构
儿子的表
父亲的表
7.4
建立
POJO
同样在我们的工程的
defalt package
下面新建类
Father
和
Son
。
7.4.1
Father
类
public class Father {
private long
fid;
private String name;
private Set
sons = new HashSet();
分享到:
相关推荐
### Hibernate核心知识点详解 #### Hibernate概述 - **定义与作用:** Hibernate是一种对象关系映射(ORM)技术的实现,其主要目的是简化Java应用程序与数据库之间的交互过程。通过使用Hibernate,开发人员能够...
hibernate 深入 连接 关联级映射,源码解析,spring 与hibernate的配置深入原理
Hibernate 是「物件/關係對應」(Object/Relational Mapping)的解決方案,簡寫為ORM,簡單的說就是將 Java 中的物件與物件關係,映射至關聯式資料庫中的表格與表格之間的關係, Hibernate 提供了這個過程中自動對應...
标题提及的是“hibernate资料 3.6.6版本”,这意味着我们要探讨的是关于Hibernate ORM框架的特定版本,即3.6.6。Hibernate是一个广泛使用的Java对象关系映射(ORM)工具,它允许开发人员用面向对象的方式来处理...
【标题】"传智博客~hibernate 资料" 涉及的主要知识点是Hibernate,这是一个开源的对象关系映射(ORM)框架,用于简化Java应用与数据库之间的交互。Hibernate提供了一种在Java对象和关系数据库之间进行数据转换的...
总的来说,这个压缩包资料集提供了一个深入学习EJB3和Hibernate的基础,涵盖了这两个框架的主要概念、配置以及使用方法。对于希望在企业级Java应用开发中掌握这些核心技术的开发者来说,这是一份非常宝贵的资源。...
标题:“jsp中Hibernate资料” 描述:“适合初学者使用的好东西” 标签:“Hibernate jsp” 从给定的文件信息中,我们可以提炼出以下关于Hibernate在Java Server Pages (JSP)环境中应用的重要知识点: ### ...
【hibernate学习资料大全】 Hibernate 是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。这个压缩包包含了丰富的Hibernate学习资源,旨在帮助开发者深入理解和熟练掌握这一强大的...
在这个“培训机构hibernate资料ppt”中,我们可以通过四次课程的学习,深入理解Hibernate的核心概念和实际应用。 **第一次课:Hibernate基础** 在初次接触Hibernate时,我们将学习其基本概念,包括什么是ORM、为...
在"经典Spring-Hibernate资料"这个压缩包中,可能包含了关于这三个框架的教程、手册、示例代码以及配置文档等内容。Spring的学习资料可能涵盖了Spring的核心概念,如依赖注入、AOP,以及Spring Boot、Spring Cloud等...
总结,达内科技的Hibernate资料课件全面覆盖了Hibernate的各个方面,从基础到高级,理论结合实践,源码辅助理解,是学习和掌握Hibernate的宝贵资源。通过深入学习,开发者不仅可以提升数据库操作技能,还能在项目...
### Struts + Spring + Hibernate 资料 #### 1. Hibernate 的并发机制与处理并发问题的方法 **并发机制概述**: - **Session 对象的线程安全性**:Hibernate 的 Session 对象并不是线程安全的,这意味着对于每一...
hibernate 资料 教程。很好的资料,分享给大家。 英文版
标题"Hibernate 中文api 等学习资料"暗示了这是一组针对Hibernate ORM框架的中文学习资源,包括API文档和其他指南,旨在帮助用户更好地理解和使用Hibernate。 描述中的"hibernate orm框架api中文文档,学习资料,...