其实Hibernate本身是个独立的框架它不需要任何web server或application server的支持然而大多数的Hibernate入门介绍都加入了很多非Hibernate的东西比如: Tomcat Eclipse LogJStruts XDoclet 甚至JBoss这容易让人产生Hibernate复杂难懂的误解特别是打击了初学者的积极性
在这篇文章将不涉及Eclipse logj Struts Tomcat XDoclet和JBoss本文的目的是演示一下Hibernate的安装过程以及最基本的功能从而给初学者一个低得不能再低的入门门槛
下载文件
你需要Java SDK Hibernate包Ant包和JDBC Driver
Hibernate包下载地址:
_by=date&sort=desc
Ant包下载地址:
antbinzip
JDBC Driver要根据你用的database来定一般database官方网站上都会有Hibernate支持常用的database比如 MySQL Oracle PostgreSQL 和MSSQL Server这些数据库都有JDBC Driver:
Oracle JDBC Driver下载地址(下载前必须同意Oracle协议书)
_jdbc/htdocs/l
MySQL JDBC Driver下载地址
PostgreSQL JDBC Driver下载地址
MSSQL Server JDBC Driver下载地址
x?FamilyID=fbfebdcfcbfbf&displaylang=en
将Hibernate包和Ant包分别解压至c:\dev\下(此目录不重要你可以换其它任何目录)
配置环境
你需要添加一个新的环境变量: ANT_HOME让它指向c:\dev\<你的ANT包所在目录>并在PATH环境变量里添加%ANT_HOME%\bin
你需要添加一个新的环境变量: JAVA_HOME让它指向你的jsdk根目录并在PATH环境变量里添加%JAVA_HOME%\bin
创建一个项目目录比如c:\workspace\MystHibernate
在项目目录下另外创建三个目录: src classes lib
在lib目录下创建两个目录: hibernate和db
这样你有了如下的文件结构:
c:\workspace\MystHibernatec:\workspace\MystHibernate\src
c:\workspace\MystHibernate\classes
c:\workspace\MystHibernate\lib
c:\workspace\MystHibernate\lib\hibernate
c:\workspace\MystHibernate\lib\db
将c:\dev\<你的Hibernate包所在目录>\hibernatejar文件copy到c:\workspace\MystHibernate\lib\hibernate下
将c:\dev\<你的Hibernate包所在目录>\lib\下的所有文件同样copy到c:\workspace\MystHibernate\lib\hibernate下
将你的JDBC Driver文件(一般是一个jar文件)copy到c:\workspace\MystHibernate\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) {
thisid = id;
}
public void setPassword(String password) {
thispassword = password;
}
public void setUsername(String username) {
thisusername = username;
}
}
将此类存为c:\workspace\MystHibernate\src\Customerjava文件
编写Test类
import netsfhibernate*;
import netsfhibernatecfg*;
public class Test {
public static void main(String[] args) {
try {
SessionFactory sf = new Configuration(nfigure()buildSessionFactory();
Session session = sfopenSession();
Transaction tx = sessionbeginTransaction();
for (int i = ; i < ; i++) {
Customer customer = new Customer();
customersetUsername(customer + i);
customersetPassword(customer);
sessionsave(customer);
}
mit();
sessionclose();
} catch (HibernateException e) {
eprintStackTrace();
}
}
}
将此类存为c:\workspace\MystHibernate\src\Testjava文件
创建Hibernate映射文件
因为这里只有一个Class Customer 和一个Table CUSTOMER你只需要建立一个映射文件 Customerhbmxml来对应Customer类和CUSTOMER表之间的关系
<?xml version=?>
<!DOCTYPE hibernatemapping PUBLIC
//Hibernate/Hibernate Mapping DTD//EN
mappingdtd>
<hibernatemapping>
<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>
</hibernatemapping>
把此文件存为c:\workspace\MystHibernate\src\Customerhbmxml和Customerjava放在同一目录下
编写Ant buildxml文件
你不一定要知道这个buildxml的细节其实Ant也不是Hibernate所必须的这里用Ant是为了简化一些任务比如: 编译copy运行等
<?xml version= ?>
<project name=MystHibernate default=build basedir=>
<property name=basedir value= />
<property name=srcdir value=src />
<property name=libdir value=lib />
<property name=builddir value=classes />
<path id=myclasspath>
<fileset dir=${libdir}>
<include name=**/*jar />
</fileset>
<pathelement location=${builddir} />
</path>
<target name=init>
<mkdir dir=${builddir} />
</target>
<target name=build depends=init description=compile the source files>
<javac classpat srcdir=${srcdir} destdir=${builddir} />
<copy todir=${builddir} >
<fileset dir=${srcdir} >
<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=${builddir} />
</delete>
</target>
</project>
配置Hibernate描述文件
Hibernate描述文件可以是一个properties或xml 文件其中最重要的是定义数据库的连接我这里列出的是一个XML格式的hibernatecfgxml描述文件
<?xml version= encoding=utf ?>
<!DOCTYPE hibernateconfiguration
PUBLIC //Hibernate/Hibernate Configuration DTD//EN
configurationdtd>
<hibernateconfiguration>
<sessionfactory name=java:/hibernate/HibernateFactory>
<property name=show_sql>true</property>
<property name=connectiondriver_class>
oraclejdbcdriverOracleDriver <! 这里是Oracle i的JDBC driver class名 >
</property>
<property name=connectionurl>
jdbc:oracle:oci:@hibernate_test <! 这里是Oracle的hibernate_test数据库URL >
</property>
<property name=connectionusername>
你的数据库用户名
</property>
<property name=connect