Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > [原创]Pro Hibernate 3笔记和小结(7)之第三章创建简单应用
【标  题】:[原创]Pro Hibernate 3笔记和小结(7)之第三章创建简单应用
【关键字】:Pro,Hibernate
【来  源】:http://blog.csdn.net/caiyi0903/archive/2006/07/06/882152.aspx

[原创]Pro Hibernate 3笔记和小结(7)之第三章创建简单应用

Your Ad Here  /**
作者:Willpower
来源:Rifoo Technology(
http://www.rifoo.com
时间:2006-07
备注:转载请保留以上声明
**/

本章开始做一个比较详细的应用程序,请大家跟我一起学习本书的内容。我们的范例名称叫Message of the day,本章中,有时我们会简单称为Motd。它源于UNIX上的一个程序,可以在用户登录系统时发送当前的一些通知消息。

安装工具

假设你已经安装了JDK1.3或以上版本,那么还需要Hibernate包和一个数据库的支持。当然,还可以装一个ANT构建工具。

Hibernate3

从官方网站下载最新的版本,解压到本地任何一个目录,本书的例子中的存放目录为C:\home\hibernate-3.0,解压后的文件包括Hibernate源文件以及jar包,还有Hibernate所需要的第三方类库lib。

HSQL 1.7.3.3

本例中的数据库采用HSQL,它是JAVA编写的开源数据库。大家可以去它的主页
http://hsqldb.sourceforge.net/下载最新的程序。下载后解压到本地任何一个目录,本例的存放目录为C:\home\hsqldb\。接着我们将使用一个名称叫Hibernate的数据库。首先创建一个包含Hibernate文件的目录,比如C:\home\hsqldb\hibernate\。然后,新建一个server.properties文件,将它放到该目录中。

Listing 3-1. Hibernate范例数据库的配置文件
CODE:

# Filename: C:\home\hsqldb\server.properties
#
# Hibernate examples database - create a
# database on the default port.
# Specifies the path to the database
# files – note that the trailing slash
# IS required.
server.database.0=file:/home/hsqldb/hibernate/
# Specifies the name of the database
server.dbname.0=hibernate


在命令行中手动输入以下命令来启动数据库:
java -classpath ..\lib\hsqldb.jar org.hsqldb.Server

关闭数据库可以直接关命令行窗口,但是如果想用另一种优雅的方式来关闭,我们需要编写简单的JAVA程序来完成(需要hsqldb.jar在CLASSPATH中能找到)

Listing 3-2. Simple Shutdown Logic for the HSQL Server
CODE:

    import java.sql.*;
    public class Shutdown {
        public static void main(String[] argv) throws Exception{
            Class.forName("org.hsqldb.jdbcDriver" );
            Connection c =DriverManager.getConnection(
                        "jdbc:hsqldb:hsql://localhost/hibernate",
                        "sa",
                        "");
            Statement s = c.createStatement();
            s.execute("SHUTDOWN");
            c.close();
        }
  }


在实际情况中,我们如果要连接不同的数据库,我们只需要更改以下内容:
• Hibernate的方言类(dialect)
• JDBC驱动
• 数据库连接URL
• 数据库用户名
• 数据库密码

这些将在后面章节中讲到。

Ant 1.6.2

ANT是可选安装的,当然我们推荐安装,因为它可以方便的构建一个JAVA应用。可以到ANT的主页http://ant.apache.org/上下载最新安装程序。我们假设你熟悉ANT,所以后面我们不解释build.xml文件的详细含义。本书的例子是用ANT1.6.2构建。
下面的清单提供了构建本范例的ANT脚本,注意:我们的ANT TASK中包含有一个名为schema的任务,它使用hibernate工具直接将mapping映射文件生成数据库schema,也就是自动创建数据库。

Listing 3-3.构建第三章范例的ANT脚本
CODE:

<project default="all">
    <property name="hibernate" location="/home/hibernate-3.0" />
    <property name="jdbc" location="/home/hsqldb/hsqldb.jar" />
    <property name="src" location="src" />
    <property name="config" location="." />
    <property name="dist" location="dist" />
    <property name="bin" location="${dist}/bin" />
    <property name="lib" location="${dist}/lib" />
    <property name="name" value="chapter03" />

    <path id="classpath.base">
        <pathelement location="." />
        <pathelement location="${bin}" />
        <pathelement location="${hibernate}/hibernate3.jar" />
        <fileset dir="${hibernate}/lib" includes="**/*.jar" />
        <pathelement location="${jdbc}" />
  </path>

  <target name="init">
        <mkdir dir="${dist}" />
        <mkdir dir="${bin}" />
        <mkdir dir="${lib}" />
  </target>

<target name="schema">
  <taskdef
      name="schemaexport"
      classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
      classpathref="classpath.base" />

  <schemaexport
      properties="hibernate.properties"
      quiet="no"
      text="yes"
      drop="no"
      output="export.sql">
            <fileset dir="${src}">
                <include name="**/*.hbm.xml"/>
            </fileset>
    </schemaexport>

</target>

<target name="compile" depends="init">
    <javac srcdir="${src}" destdir="${bin}">
          <classpath refid="classpath.base" />
    </javac>
</target>

<target name="dist" depends="compile">
    <jar
        destfile="${lib}/${name}.jar"
        basedir="."
        includes="build.xml,src/**,cfg/**,bin/**"
        excludes=".classpath,.project,.cvsignore" />
</target>

<target name="clean">
    <delete dir="${dist}" />
    <delete dir="${bin}" />
    <delete file="${lib}/${name}.jar" />
</target>

<target name="all" depends="dist" />

</project>


Hibernate配置文件

Hibernate需要知道它所连接的数据库,以及一些相关的映射方式。

Listing 3-4. “Message of the day” 应用的映射文件
CODE:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
  PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
  "[url]http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd[/url]">

<hibernate-configuration>
  <session-factory>
      <property name="connection.driver_class">
          org.hsqldb.jdbcDriver
      </property>
      <property name="connection.url">
          jdbc:hsqldb:hsql://localhost/hibernate
      </property>
      <property name="connection.username">sa</property>
      <property name="connection.password"> </property>
      <property name="pool_size">5</property>
      <property name="show_sql">false</property>
      <property name="dialect">
        org.hibernate.dialect.HSQLDialect
      </property>

    <mapping resource=" Motd.hbm.xml"/>

  </session-factory>
</hibernate-configuration>


show_sql本例中设置为false,但是如果在调试时可以将它设置为true,很方便的可以看到后台打印的SQL语句。dialect属性也需要设置一下,最好不要设置为大多数数据库都可以接受的一种SQL子集GenericDialect,因为不是很方便扩展。Hibernate使用dialect类来决定可选的SQL语句用来创建和查询数据库。

注意:该文件需要放置在CLASSPATH中
[原创]Pro Hibernate 3笔记和小结(8)之第三章创建简单应用:【上一篇】
使用.bat文件在Windows下运行Java程序时怎样避免DOS窗口:【下一篇】
【相关文章】
  • [原创]Pro Hibernate 3笔记和小结(8)之第三章创建简单应用
  • 不同于hibernate,利用通用持久类实现数据增、删、改、查,可极大提高开发效率
  • 使用Hibernate3.2的问题(2)
  • 使用Hibernate3.2的问题(3)
  • web开发:通用持久类代替hibernate的持久类、通用动态formBean类代替struts的formBean类
  • Hibernate 3.2 SQL函数返回类型从Integer变为Long
  • Project Server FTP下载
  • Hibernate之deleted object would be re-saved by cascade 异常的解决
  • Programming Structure and Style
  • 使用Hibernate 和Spring AOP 构建泛型类型安全的DAO
  • 【随机文章】
  • imp/exp命令行选项
  • 分析模式 之 (责任)Accountability
  • ASP.NET中的数据绑定:哪个更快?
  • 在Enterprise Library for .NET Framework 2.0中使用外部的配置元数据的文件(my.config)
  • 11.6. Customizing Existing Modes
  • WAP中图像列表的设计
  • :net快速入门
  • ASP.NET中使用IFRAME建立类Modal窗口
  • 从SQL备份文件中导入现存数据库中
  • 深圳市ip 城域网组网方案(18)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.