最简单的Hibernate配置(1)

CSDN上看到一篇史上最简单Hibernate门简

http://blog.csdn.net/doodoofish/archive/2004/07/16/43207.aspx),按照其中的步骤进行配置,不能顺利完成预定功能;原文的评论中也有很多访客反映各种问题。

经过在本地的调试,现将我修正后的配置步骤列举如下:

 

文件

 

你需要Java SDK Hibernate包、Ant包、和JDBC Driver

 

1Hibernate包下地址:

http://prdownloads.sourceforge.net/hibernate/?sort_by=date&sort=desc

(下载地址未经验证。我使用的3.0.1版本)

 

2Ant包下地址:

http://apache.130th.net/ant/binaries/apache-ant-1.6.1-bin.zip

(下载地址未经验证。我使用的1.6.4版本)

 

3JDBC Driver要根据你用的database来定,一般database官方网站上都会有。Hibernate支持常用的database,比如 MySQL, Oracle, PostgreSQL, MS-SQL Server些数据都有JDBC Driver: 我使用的Oracle10JDK1.6

 

Oracle JDBC Driver地址(前必同意Oracle协议书)

http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc101040.html

下载其中的ojdbc14.jar

 

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下,建两个目: hibernatedb

 

这样你有了如下的文件:

 

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文件copyc:\workspace\My1stHibernate\lib\hibernate下。

 

c:\dev\<你的Hibernate包所在目>\lib\下的所有文件同copyc:\workspace\My1stHibernate\lib\hibernate下。

 

将你的JDBC Driver文件(一般是一个jar文件)copyc:\workspace\My1stHibernate\lib\db下。

 

建数据

 

1、用你最喜database件,建一个hibernate_test的数据

 

2、在此数据下,新建一个tableCUSTOMER

 

CREATE TABLE CUSTOMER

(

    CID INTEGER NOT NULL PRIMARY KEY,

    USERNAME VARCHAR(12) NOT NULL,

    PASSWORD VARCHAR(12)

);

 

 

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\My1stHibernate\src\Customer.java文件。

 

Test

 

import org.hibernate.*;

import org.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映射文件,并保存到c:\workspace\My1stHibernate\src\

 

为这里只有一个Class --- Customer 和一个Table --- CUSTOMER,你只需要建立一个映射文件--- Customer.hbm.xml,来对应CustomerCUSTOMER表之系。

 

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD//EN"

    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.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\My1stHibernate\src\Customer.hbm.xml,和Customer.java放在同一目下。

 

 

Ant build.xml文件保存到C:\workspace\My1stHibernate\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>

 

你可能感兴趣的:(oracle,C++,Hibernate,ant,C#)