在桌面应用中使用JAVA DB(四)

上一篇 / 下一篇  2006-11-04 11:05:00 / 个人分类:学习笔记

      保存一个新的Address数据库记录,该记录有一个新的关键值或记录标识。当我们创建PreparedStatement时,我们可以告诉数据库我们想要知道产生的值。在插入数据后,我们可以通过该值返回一个ResultSetsaveRecord方法返回新创建记录的关键值。

stmtSaveNewRecord = dbConnection.prepareStatement(

    "INSERT INTO APP.ADDRESS " +

    "   (LASTNAME, FIRSTNAME, MIDDLENAME, " +

    "    PHONE, EMAIL, ADDRESS1, ADDRESS2, " +

    "    CITY, STATE, POSTALCODE, COUNTRY) " +

    "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",

    Statement.RETURN_GENERATED_KEYS);

   

...

 

public int saveRecord(Address record) {

    int id = -1;

    try {

        stmtSaveNewRecord.clearParameters();

        stmtSaveNewRecord.setString(1, record.getLastName());

        stmtSaveNewRecord.setString(2, record.getFirstName());

        stmtSaveNewRecord.setString(3, record.getMiddleName());

        stmtSaveNewRecord.setString(4, record.getPhone());

        stmtSaveNewRecord.setString(5, record.getEmail());

        stmtSaveNewRecord.setString(6, record.getAddress1());

        stmtSaveNewRecord.setString(7, record.getAddress2());

        stmtSaveNewRecord.setString(8, record.getCity());

        stmtSaveNewRecord.setString(9, record.getState());

        stmtSaveNewRecord.setString(10, record.getPostalCode());

        stmtSaveNewRecord.setString(11, record.getCountry());

        int rowCount = stmtSaveNewRecord.executeUpdate();

        ResultSet results = stmtSaveNewRecord.getGeneratedKeys();

        if (results.next()) {

            id = results.getInt(1);

        }

    } catch(SQLException sqle) {

        sqle.printStackTrace();

    }

    return id;

}

 

发布你的应用程序

       现在你已经写好了你的应用程序,你必须发布它给用户。Java技术应用程序可以使用多种发布策略。包括Java Web Start软件,Applet和独立的JAR文件。我以独立的JAR文件的形式发布了该应用程序。

       ANT的构建文件build.xml,创建AddressBook.jar文件到dist目录。它也放置数据库JAR文件到lib子目录。该应用程序最终发布的结构如下:

AddressBook.jar

lib/derby.jar

       在很多情况下,应用程序使用例如derby.jar这样的第三方类库时,都需要一个外部的执行脚本。这个脚本通常设置第三方JAR文件的classpath和执行该应用程序的JAR文件。这个方法很麻烦。然而,由于它需要多个脚本,具有代表的一个是支持主机操作系统。例如,如何支持该程序发布到Windows,Solaris和Linux平台,我宁愿为Windows平台创建一个run.bat批处理文件,为Solaris或Linux平台创建一个run.csh脚本。换言之,我们可以避免这些笨拙的执行脚本。

       如果在AddressBook.jar的manifest文件里包含了classpath信息,你可以通过简单的命令行操作执行AddressBook.jar应用程序。在大多数平台,你可以在图形窗口界面中双击该JAR文件来运行该应用程序。在命令行下,你可以使用下面简单的执行命令:

 

java -jar AddressBook.jar

 

       这样简单的发布和执行方案可以创建manifest.mf文件来实现,并成为AddressBook.jar文件的一部分。你可以写入信息到manifest文件里,并告诉Java编程语言解释器那个类包含了main方法和那些JAR文件应该被认为是classpath的一部分。下面的manifest文件做到了以上两点,当构建AddressBook.jar文件时,我们可以把它放在JAR文件里。

 

Manifest-Version: 1.0

Main-Class: com.sun.demo.addressbook.AddressFrame

Class-Path: lib/derby.jar

 

       一旦你构建程序产生先前所显示的发布结构,你可以简单的发布成为一个ZIP文件。使用者可以轻松的解压该文件到任何位置,并能运行AddressBook.jar文件。AddressBook.jar文件将包含之前提到的manifest文件和告诉运行时环境哪个JAR文件应该在classpath里。当然,因为Java DB是嵌入到这个程序里的,它应该能找到lib/derby.jar并能正确运行。

 

概要

       用Java DB工作是简单和有趣的。Java DB让你花最小的代价去创建和发布一个嵌入式数据库。仅仅需要记住几点技巧就能使你成功的使用Java DB工作了:

1.    请将derby.jar文件放在你开发环境的classpath里,以便Java技术编译器和运行时环境能找到该库并能编译和运行应用程序。

2.    设置derby.system.home系统属性去告诉Java DB在那里能找到数据库。你可以通过程序代码或命令行来设置该属性。

3.    创建一个构建程序,请确保将derby.jar文件放在你工程目录的lib子目录下。

4.    通过设置你的应用程序的JAR的manifest文件里的Class-Path属性,添加derby.jar到你的应用程序classpath里。

 

脚注

       术语”Java Virtual Machine”和”JVM”意思是Java平台的虚拟机。

 


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-08-19  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 7167
  • 日志数: 129
  • 建立时间: 2006-11-04
  • 更新时间: 2008-05-03

RSS订阅

Open Toolbar