熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Java開源項目Hibernate快速入門

2013-11-23 20:38:28  來源: Java開源技術 

  其實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
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28817.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.