史上最简单的Hibernate入门简介

史上最简单的Hibernate入门简介

版权声明:CSDN是本Blog托管服务提供商。如本文牵涉版权问题,CSDN不承担相关责任,请版权拥有者直接与文章作者联系解决。


其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。

在这篇文章将不涉及Eclipse, log4j, Struts, Tomcat, XDoclet,和JBoss。本文的目的是演示一下Hibernate的安装过程以及最基本的功能,从而给初学者一个低得不能再低的入门门槛。


下载文件

你需要Java SDK、 Hibernate包、Ant包、和JDBC Driver。

1、Hibernate包下载地址:
http://prdownloads.sourceforge.net/hibernate/?sort_by=date&sort=desc

2、Ant包下载地址:
http://apache.130th.net/ant/binaries/apache-ant-1.6.1-bin.zip

3、JDBC Driver要根据你用的database来定,一般database官方网站上都会有。Hibernate支持常用的database,比如 MySQL, Oracle, PostgreSQL, 和MS-SQL Server。这些数据库都有JDBC Driver:

Oracle JDBC Driver下载地址(下载前必须同意Oracle协议书)
http://otn.oracle.com/software/htdocs/distlic.html?/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html

MySQL JDBC Driver下载地址
http://dev.mysql.com/downloads/connector/j/3.0.html

PostgreSQL JDBC Driver下载地址
http://jdbc.postgresql.org/download.html

MS-SQL Server JDBC Driver下载地址
http://www.microsoft.com/downloads/details.aspx?FamilyID=9f1874b6-f8e1-4bd6-947c-0fc5bf05bf71&displaylang=en

4、将Hibernate包和Ant包分别解压至c:/dev/下(此目录不重要,你可以换其它任何目录)。


配置环境

1、你需要添加一个新的环境变量: ANT_HOME,让它指向c:/dev/ <你的ant包所在目录> 。并在PATH环境变量里添加%ANT_HOME%/bin。

2、你需要添加一个新的环境变量: JAVA_HOME,让它指向你的j2sdk根目录。并在PATH环境变量里添加%JAVA_HOME%/bin。

3、创建一个项目目录,比如c:/workspace/My1stHibernate。

在项目目录下,另外创建三个目录: src, classes, lib。

在lib目录下,创建两个目录: hibernate和db。

这样你有了如下的文件结构:

c:/workspace/My1stHibernate/
c:/workspace/My1stHibernate/src
c:/workspace/My1stHibernate/classes
c:/workspace/My1stHibernate/lib
c:/workspace/My1stHibernate/lib/hibernate
c:/workspace/My1stHibernate/lib/db

4、将c:/dev/ <你的hibernate包所在目录> /hibernate2.jar文件copy到c:/workspace/My1stHibernate/lib/hibernate下。

将c:/dev/ <你的hibernate包所在目录> /lib/下的所有文件同样copy到c:/workspace/My1stHibernate/lib/hibernate下。

将你的JDBC Driver文件(一般是一个jar文件)copy到c:/workspace/My1stHibernate/lib/db下。


创建数据库

1、用你最喜爱的database软件,创建一个hibernate_test的数据库。

2、在此数据库下,新建一个table名为CUSTOMER

CREATE TABLE CUSTOMER
(
??? CID INTEGER NOT NULL PRIMARY KEY,
??? USERNAME VARCHAR(12) NOT NULL,
??? PASSWORD VARCHAR(12)
);


编写Java文件

public class Customer {
???
??? private int id;
??? private String username;
??? private String password;


??? public int getId() {
??? ??? return id;
??? }

??? public String getPassword() {
??? ??? return password;
??? }

??? public String getUsername() {
??? ??? return username;
??? }

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

??? public void setPassword(String password) {
??? ??? this.password = password;
??? }

??? public void setUsername(String username) {
??? ??? this.username = username;
??? }

}

将此类存为c:/workspace/My1stHibernate/src/Customer.java文件。

编写Test类

import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;

public class Test {

??? public static void main(String[] args) {

??? ??? try {
??? ??? ??? SessionFactory sf =
??? ??? ??? ??? new Configuration().configure().buildSessionFactory();
??? ??? ??? Session session = sf.openSession();
??? ??? ??? Transaction tx = session.beginTransaction();

??? ??? ??? for (int i = 0; i < 200; i++) {
??? ??? ??? ??? Customer customer = new Customer();
??? ??? ??? ??? customer.setUsername("customer" + i);
??? ??? ??? ??? customer.setPassword("customer");
??? ??? ??? ??? session.save(customer);
??? ??? ??? }

??? ??? ??? tx.commit();
??? ??? ??? session.close();

??? ??? } catch (HibernateException e) {
??? ??? ??? e.printStackTrace();
??? ??? }
??? }
}

将此类存为c:/workspace/My1stHibernate/src/Test.java文件。


创建Hibernate映射文件

因为这里只有一个Class --- Customer 和一个Table --- CUSTOMER,你只需要建立一个映射文件--- Customer.hbm.xml,来对应Customer类和CUSTOMER表之间的关系。


??? "-//Hibernate/Hibernate Mapping DTD//EN"
??? "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">


???
??? ???
??? ??? ???
??? ???
??? ???
??? ???
???


把此文件存为c:/workspace/My1stHibernate/src/Customer.hbm.xml,和Customer.java放在同一目录下。


编写Ant build.xml文件


你不一定要知道这个build.xml的细节,其实Ant也不是Hibernate所必须的。这里用Ant是为了简化一些任务,比如: 编译、copy、运行,等。





???
???
???
???

???
???????
???????????
???????
???????
???


???
??? ???
???
???
???
???????
??? ???
??? ??? ???
??? ??? ??? ???
??? ??? ???
??? ???
???

???
???????
???

???
???????
???????????
???????
???




配置Hibernate描述文件

Hibernate描述文件可以是一个properties或xml 文件,其中最重要的是定义数据库的连接。我这里列出的是一个XML格式的hibernate.cfg.xml描述文件。


??? PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
??? "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">


???
???
??? ???
??? ??? true
??? ???
??? ??? ??? oracle.jdbc.driver.OracleDriver
??? ???
??? ???
??? ??? ??? jdbc:oracle:oci8:@hibernate_test
??? ???
??? ???
??? ??? ??? 你的数据库用户名
??? ???
??? ???
??? ??? ??? 你的数据库密码
??? ???
??? ???
??? ??? ??? net.sf.hibernate.dialect.Oracle9Dialect
??? ???
??? ???
??? ???
??? ???
???
???


如果你用的不是Oracle 9i,可到C:/dev/ <你的hibernate包所在目录> /src/hibernate.properties文件里找到你的数据库,然后替换以上相对应的值。


开始运行

到c:/workspace/My1stHibernate下,运行ant run。如果你严格依照以上步骤,应该看到

run:
??????? [java] log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).
??????? [java] log4j:WARN Please initialize the log4j system properly.
??????? [java] Hibernate: insert into CUSTOMER (USERNAME, PASSWORD, CID) values (?, ?, ?)
BUILD SUCCESSFUL

到你的hibernate_test数据库看一下,在CUSTMOR表里新添了200条记录,但你没有写任何JDBC code。
以后如果你要更换数据库,只需要改变hibernate.cfg.xml描述文件里相应的值即可。


结论

此文是一篇门槛极低的入门介绍。我给一个完全不懂Hibernate的朋友看,他用了不到30分钟就运行了他的第一个Hibernate程序,从此引起了 他对Hibernate的兴趣。但读者必须认识到这只是一个开始,此文实乃窥Hibernate冰山一角上的一颗小冰晶。千里之行始于足下,你可以把此文 当作迈向Hibernate大道的一个起点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值