站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题简单Hibernate入门

简单Hibernate入门

摘要: Hibernate 是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据库之间的映射的ORM中间件。本文通过一个例子practice 演示如何运用Hibernate来访问关系数据库。
在Java应用中使用Hibernate

作者:huhpreal


版权声明:本文可以自由转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
作者:huhpreal(http://blog.matrix.org.cn/page/huhpreal)
原文:[http://www.matrix.org.cn/resource/article/44/44002_Hibernate.html]http://www.matrix.org.cn/resource/article/44/44002_Hibernate.html[/url]
关键字:在Java,Hibernate


Hibernate简介

Hibernate寓意:Let Java objects hibernate in the relational database.
Hibernate 是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据库之间的映射的ORM中间件。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java开发人员可以随心所欲的使用对象编程思维来操纵数据库。简单的说就是:
1.封装了通过JDBC访问数据库操作。
2.向上层应用提供访问面向对象数据访问的API。

创建Hibernate配置文件
通过一个例子practice 演示如何运用Hibernate来访问关系数据库。
Practice 工程的功能:
通过Hibernate保存客户(customer)信息。
其Hibernate应用结构图如下:

―――――――――――――――――――――――――――
Practice 应用
Customer Class ; action Class;Business Class
――――――――――――――――――――――――――――


――――――――――――――――――――――――――――
Hibernate xml
对象-关系映射文件 Hibernate ApI
Hibernate 配置文件
――――――――――――――――――――――――――――


――――――――――――――――――――――――――――
关系数据库(Mysql)
CUSTOMERS 表
――――――――――――――――――――――――――――


创建持久化类
Hibernate 从Hibernate配置文件中读取和数据库连接相关的信息。
配置文件有两种形式:
一种是XML格式的文件:hibernate.cfg.xml
一种是Java属性文件:hibernate.properties
这个实例中我们将使用hibernate.cfg.xml。

<?xml version='1.0' encoding='utf-8'?>
hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">


true
false
net.sf.hibernate.dialect.MySQLDialect
org.gjt.mm.mysql.Driver
jdbc:mysql://localhost:3306/netstore
root
123456
true
gb2312




插入位置在src目录下:

创建O/R对象-关系映射文件
创建持久化的类Customer.java

package entity;

import java.io.Serializable;

public class Customers implements Serializable {

private Integer id;

private String name;

private int age;

public Customers() {
}

public int getAge() {
return age;
}

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

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;
}
}


Get/set 方法的命名必须符合JavaBean的规范,否则Hibernate会报出异常,具体请参照相关资料。

关于Serializable接口:
Hibernate 并不要求持久化类必须实现java.io.Serializable接口,但是对于采用分布式结构的Java应用,当Java对象在不同的进程节点之间传输时,这个对象必须实现这个接口;如果希望对HttpSession中存放的Java对象进行持久化,那么这个Java对象必须实现Serializable接口。
关于不带参数的构造方法:

public Customers() {
}


Hibernate要求持久化类必须提供一个不带参数的默认的构造方法,原因请参考相关资料。

创建Mysql数据库
数据库名称:netstroe
Customer表DDL定义如下:
CREATE TABLE `customers` (
`Id` bigint(20) NOT NULL default '0',
`name` varchar(15) default NULL,
`age` int(11) default NULL,
PRIMARY KEY (`Id`)
) TYPE=MyISAM;


创建对象-关系映射文件
创建对象-关系映射文件:Customers.hbm.xml
代码如下:

<?xml version="1.0"?>
hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >