其實Hibernate本身是個獨立的框架
它不需要任何web server或application server的支持
然而
大多數的Hibernate入門介紹都加入了很多非Hibernate的東西
比如: Tomcat
Eclipse
Log
J
Struts
XDoclet
甚至JBoss
這容易讓人產生Hibernate復雜難懂的誤解
特別是打擊了初學者的積極性
在這篇文章將不涉及Eclipse
log
j
Struts
Tomcat
XDoclet
和JBoss
本文的目的是演示一下Hibernate的安裝過程以及最基本的功能
從而給初學者一個低得不能再低的入門門檻
下載文件 你需要Java SDK
Hibernate包
Ant包
和JDBC Driver
Hibernate包下載地址:
_by=date&sort=desc
Ant包下載地址:
ant
bin
zip
JDBC Driver要根據你用的database來定
一般database官方網站上都會有
Hibernate支持常用的database
比如 MySQL
Oracle
PostgreSQL
和MS
SQL Server
這些數據庫都有JDBC Driver:
Oracle JDBC Driver下載地址(下載前必須同意Oracle協議書)
_jdbc/htdocs/l
MySQL JDBC Driver下載地址
PostgreSQL JDBC Driver下載地址
MS
SQL Server JDBC Driver下載地址
x?FamilyID=
f
b
f
e
bd
c
fc
bf
bf
&displaylang=en
將Hibernate包和Ant包分別解壓至c:\dev\下(此目錄不重要
你可以換其它任何目錄)
配置環境 你需要添加一個新的環境變量: ANT_HOME
讓它指向c:\dev\<你的ANT包所在目錄>
並在PATH環境變量裡添加%ANT_HOME%\bin
你需要添加一個新的環境變量: JAVA_HOME
讓它指向你的j
sdk根目錄
並在PATH環境變量裡添加%JAVA_HOME%\bin
創建一個項目目錄
比如c:\workspace\My
stHibernate
在項目目錄下
另外創建三個目錄: src
classes
lib
在lib目錄下
創建兩個目錄: hibernate和db
這樣你有了如下的文件結構:
c:\workspace\My
stHibernatec:\workspace\My
stHibernate\src
c:\workspace\My
stHibernate\classes
c:\workspace\My
stHibernate\lib
c:\workspace\My
stHibernate\lib\hibernate
c:\workspace\My
stHibernate\lib\db
將c:\dev\<你的Hibernate包所在目錄>\hibernate
jar文件copy到c:\workspace\My
stHibernate\lib\hibernate下
將c:\dev\<你的Hibernate包所在目錄>\lib\下的所有文件同樣copy到c:\workspace\My
stHibernate\lib\hibernate下
將你的JDBC Driver文件(一般是一個jar文件)copy到c:\workspace\My
stHibernate\lib\db下
創建數據庫 用你最喜愛的database軟件
創建一個hibernate_test的數據庫
在此數據庫下
新建一個table名為CUSTOMER
CREATE TABLE CUSTOMER
(
CID INTEGER NOT NULL PRIMARY KEY
USERNAME VARCHAR(
) NOT NULL
PASSWORD VARCHAR(
)
);
編寫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\My
stHibernate\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(nfigure()
buildSessionFactory();
Session session = sf
openSession();
Transaction tx = session
beginTransaction();
for (int i =
; i <
; i++) {
Customer customer = new Customer();
customer
setUsername(
customer
+ i);
customer
setPassword(
customer
);
session
save(customer);
}
mit();
session
close();
} catch (HibernateException e) {
e
printStackTrace();
}
}
}
將此類存為c:\workspace\My
stHibernate\src\Test
java文件
創建Hibernate映射文件 因為這裡只有一個Class
Customer 和一個Table
CUSTOMER
你只需要建立一個映射文件
Customer
hbm
xml
來對應Customer類和CUSTOMER表之間的關系
<?xml version=
?>
<!DOCTYPE hibernate
mapping PUBLIC
//Hibernate/Hibernate Mapping DTD//EN
mapping
dtd
>
<hibernate
mapping>
<class name=
Customer
table=
CUSTOMER
>
<id name=
id
column=
CID
>
<generator class=
increment
/>
</id>
<property name=
username
column=
USERNAME
/>
<property name=
password
column=
PASSWORD
/>
</class>
</hibernate
mapping>
把此文件存為c:\workspace\My
stHibernate\src\Customer
hbm
xml
和Customer
java放在同一目錄下
編寫Ant buildxml文件 你不一定要知道這個build
xml的細節
其實Ant也不是Hibernate所必須的
這裡用Ant是為了簡化一些任務
比如: 編譯
copy
運行
等
<?xml version=
?>
<project name=
My
stHibernate
default=
build
basedir=
>
<property name=
base
dir
value=
/>
<property name=
src
dir
value=
src
/>
<property name=
lib
dir
value=
lib
/>
<property name=
build
dir
value=
classes
/>
<path id=
myclasspath
>
<fileset dir=
${lib
dir}
>
<include name=
**/*
jar
/>
</fileset>
<pathelement location=
${build
dir}
/>
</path>
<target name=
init
>
<mkdir dir=
${build
dir}
/>
</target>
<target name=
build
depends=
init
description=
compile the source files
>
<javac classpat srcdir=
${src
dir}
destdir=
${build
dir}
/>
<copy todir=
${build
dir}
>
<fileset dir=
${src
dir}
>
<exclude name=
**/*
java
/>
</fileset>
</copy>
</target>
<target name=
run
depends=
build
>
<java classpat classname=
Test
fork=
true
/>
</target>
<target name=
clean
>
<delete includeEmptyDirs=
true
>
<fileset dir=
${build
dir}
/>
</delete>
</target>
</project>
配置Hibernate描述文件 Hibernate描述文件可以是一個properties或xml 文件
其中最重要的是定義數據庫的連接
我這裡列出的是一個XML格式的hibernate
cfg
xml描述文件
<?xml version=
encoding=
utf
?>
<!DOCTYPE hibernate
configuration
PUBLIC
//Hibernate/Hibernate Configuration DTD//EN
configuration
dtd
>
<hibernate
configuration>
<session
factory name=
java:/hibernate/HibernateFactory
>
<property name=
show_sql
>true</property>
<property name=
connection
driver_class
>
oracle
jdbc
driver
OracleDriver <!
這裡是Oracle
i的JDBC driver class名
>
</property>
<property name=
connection
url
>
jdbc:oracle:oci
:@hibernate_test <!
這裡是Oracle的hibernate_test數據庫URL
>
</property>
<property name=
connection
username
>
你的數據庫用戶名
</property>
<property name=
connect
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28817.html