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

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

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

    Topquan's Blog

    分享價值----成就你我----我的博客----你的家

    Hibernate-----The first Program

    一、準備工作

          其實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文件(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;
        }

    }

    將此類存為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表之間的關系。

    <?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放在同一目錄下。


    六、編寫Ant build.xml文件

    你不一定要知道這個build.xml的細節,其實Ant也不是Hibernate所必須的。這里用Ant是為了簡化一些任務,比如: 編譯、copy、運行,等。

    <?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描述文件可以是一個properties或xml 文件,其中最重要的是定義數據庫的連接。我這里列出的是一個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數據庫URL -->
            </property>
            <property name="connection.username">
                你的數據庫用戶名
            </property>
            <property name="connection.password">
                你的數據庫密碼
            </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文件里找到你的數據庫,然后替換以上相對應的值。


    八、開始運行

    到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描述文件里相應的值即可。

     

     

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

    主站蜘蛛池模板: 免费精品人在线二线三线区别 | 亚洲欧洲日产国码av系列天堂| 精品亚洲AV无码一区二区三区 | a毛片在线看片免费| 国产精品亚洲美女久久久 | 99热这里只有精品6免费| 亚洲国产精品一区第二页| 91免费国产视频| 亚洲成在人线av| 91在线老王精品免费播放| 久久亚洲国产成人精品性色| 6080午夜一级毛片免费看 | 亚洲AⅤ无码一区二区三区在线| 国产成人 亚洲欧洲| 亚洲AV无码一区二区三区国产| 免费很黄无遮挡的视频毛片| 国产精品亚洲w码日韩中文| 三级黄色在线免费观看| 久久夜色精品国产噜噜噜亚洲AV| 114级毛片免费观看| 亚洲女子高潮不断爆白浆| 亚洲精品动漫人成3d在线 | 一区二区三区在线免费看| 亚洲日本在线播放| 女人被男人躁的女爽免费视频| 老司机午夜精品视频在线观看免费| 亚洲成a人片在线观看久| 成人影片一区免费观看| 亚洲国产成人手机在线电影bd| 日韩黄色免费观看| 两个人看的www免费高清 | 亚洲网站在线免费观看| 麻豆成人精品国产免费| 国产精品九九久久免费视频| 久久久婷婷五月亚洲97号色| 影音先锋在线免费观看| 一级毛片aa高清免费观看| 亚洲成人一级电影| 亚洲精品成人在线| A级毛片内射免费视频| 黄色短视频免费看|