<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Topquan's Blog

    分享價(jià)值----成就你我----我的博客----你的家

    Hibernate-----The first Program

    一、準(zhǔn)備工作

          其實(shí)Hibernate本身是個(gè)獨(dú)立的框架,它不需要任何web server或application server的支持。然而,大多數(shù)的Hibernate入門(mén)介紹都加入了很多非Hibernate的東西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。這容易讓人產(chǎn)生Hibernate復(fù)雜難懂的誤解,特別是打擊了初學(xué)者的積極性。

    在這篇文章將不涉及Eclipse, log4j, Struts, Tomcat, XDoclet,和JBoss。本文的目的是演示一下Hibernate的安裝過(guò)程以及最基本的功能,從而給初學(xué)者一個(gè)低得不能再低的入門(mén)門(mén)檻。


    下載文件

    你需要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要根據(jù)你用的database來(lái)定,一般database官方網(wǎng)站上都會(huì)有。Hibernate支持常用的database,比如 MySQL, Oracle, PostgreSQL, 和MS-SQL Server。這些數(shù)據(jù)庫(kù)都有JDBC Driver:

    Oracle JDBC Driver下載地址(下載前必須同意Oracle協(xié)議書(shū))
    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\下(此目錄不重要,你可以換其它任何目錄)。

    配置環(huán)境

    1>、你需要添加一個(gè)新的環(huán)境變量: ANT_HOME,讓它指向c:\dev\<你的ANT包所在目錄>。并在PATH環(huán)境變量里添加%ANT_HOME%\bin。

    2>、你需要添加一個(gè)新的環(huán)境變量: JAVA_HOME,讓它指向你的j2sdk根目錄。并在PATH環(huán)境變量里添加%JAVA_HOME%\bin。

    3>、創(chuàng)建一個(gè)項(xiàng)目目錄,比如c:\workspace\My1stHibernate。

    在項(xiàng)目目錄下,另外創(chuàng)建三個(gè)目錄: src, classes, lib。

    在lib目錄下,創(chuàng)建兩個(gè)目錄: hibernate和db。

    這樣你有了如下的文件結(jié)構(gòu):

    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文件(一般是一個(gè)jar文件)copy到c:\workspace\My1stHibernate\lib\db下。

    二、創(chuàng)建數(shù)據(jù)庫(kù)

    1、用你最喜愛(ài)的database軟件,創(chuàng)建一個(gè)hibernate_test的數(shù)據(jù)庫(kù)。

    2、在此數(shù)據(jù)庫(kù)下,新建一個(gè)table名為CUSTOMER

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

    三、編寫(xiě)Java文件(POJO)

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

    }

    將此類(lèi)存為c:\workspace\My1stHibernate\src\Customer.java文件。

    四、編寫(xiě)Test類(lèi)

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

    將此類(lèi)存為c:\workspace\My1stHibernate\src\Test.java文件。
     

    五、創(chuàng)建Hibernate映射文件

    因?yàn)檫@里只有一個(gè)Class --- Customer 和一個(gè)Table --- CUSTOMER,你只需要建立一個(gè)映射文件--- Customer.hbm.xml,來(lái)對(duì)應(yīng)Customer類(lèi)和CUSTOMER表之間的關(guān)系。

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD//EN"
        "

    <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\My1stHibernate\src\Customer.hbm.xml,和Customer.java放在同一目錄下。


    六、編寫(xiě)Ant build.xml文件

    你不一定要知道這個(gè)build.xml的細(xì)節(jié),其實(shí)Ant也不是Hibernate所必須的。這里用Ant是為了簡(jiǎn)化一些任務(wù),比如: 編譯、copy、運(yùn)行,等。

    <?xml version="1.0" ?>

    <project name="My1stHibernate" 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 classpathref="myclasspath" 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 classpathref="myclasspath" classname="Test" fork="true" />
        </target>

        <target name="clean">
            <delete includeEmptyDirs="true">
                <fileset dir="${build.dir}" />
            </delete>
        </target>

    </project>

    七、配置Hibernate描述文件

    Hibernate描述文件可以是一個(gè)properties或xml 文件,其中最重要的是定義數(shù)據(jù)庫(kù)的連接。我這里列出的是一個(gè)XML格式的hibernate.cfg.xml描述文件。

    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE hibernate-configuration
        PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
        "

    <hibernate-configuration>
       
        <session-factory name="java:/hibernate/HibernateFactory">
           
            <property name="show_sql">true</property>
            <property name="connection.driver_class">
                oracle.jdbc.driver.OracleDriver <!-- 這里是Oracle 9i的JDBC driver class名 -->
            </property>
            <property name="connection.url">
                jdbc:oracle:oci8:@hibernate_test <!-- 這里是Oracle的hibernate_test數(shù)據(jù)庫(kù)URL -->
            </property>
            <property name="connection.username">
                你的數(shù)據(jù)庫(kù)用戶(hù)名
            </property>
            <property name="connection.password">
                你的數(shù)據(jù)庫(kù)密碼
            </property>
            <property name="dialect">
                net.sf.hibernate.dialect.Oracle9Dialect <!-- 這里是Oracle 9i的Dialect -->
            </property>
           
            <mapping resource="Customer.hbm.xml" /> <!-- 指定Customer的映射文件 -->
           
        </session-factory>
       
    </hibernate-configuration>

    如果你用的不是Oracle 9i,可到C:\dev\<你的Hibernate包所在目錄>\src\hibernate.properties文件里找到你的數(shù)據(jù)庫(kù),然后替換以上相對(duì)應(yīng)的值。


    八、開(kāi)始運(yùn)行

    到c:\workspace\My1stHibernate下,運(yùn)行ant run。如果你嚴(yán)格依照以上步驟,應(yīng)該看到

    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數(shù)據(jù)庫(kù)看一下,在CUSTMOR表里新添了200條記錄,但你沒(méi)有寫(xiě)任何JDBC code。
    以后如果你要更換數(shù)據(jù)庫(kù),只需要改變hibernate.cfg.xml描述文件里相應(yīng)的值即可。

     

     

    posted on 2006-08-06 09:05 topquan 閱讀(223) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Hibernate

    主站蜘蛛池模板: 亚洲明星合成图综合区在线| 91视频免费网址| 国产亚洲福利在线视频| 国产亚洲成av片在线观看| 国产一级一片免费播放| 成人免费午夜无码视频| 免费人成毛片动漫在线播放 | 最新黄色免费网站| 国产高清对白在线观看免费91| 亚洲精品国产精品| 亚洲人成伊人成综合网久久| 亚洲AV无码日韩AV无码导航| 亚洲熟女乱综合一区二区| 国产成人高清精品免费鸭子| 国语成本人片免费av无码 | 国产精品亚洲精品青青青| 亚洲综合无码一区二区| 亚洲另类激情综合偷自拍图| 国产成人综合亚洲AV第一页| 亚洲日本va午夜中文字幕久久| 国产精品免费看久久久久| 四虎影视大全免费入口| 色窝窝免费一区二区三区| 99久久国产热无码精品免费| 69精品免费视频| 国产高清不卡免费在线| 2015日韩永久免费视频播放| 最近免费中文字幕大全免费| 中文字幕成人免费视频| 蜜桃成人无码区免费视频网站| 久久精品视频免费看| 一级毛片在线免费观看| 91青青青国产在观免费影视| 91久久成人免费| 在线观看日本免费a∨视频| 国产麻豆视频免费观看| 手机在线免费视频| 日本无吗免费一二区| 国产一区二区三区在线免费观看| 全部免费毛片在线| 亚洲一级黄色视频|