岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> 新手入门 >> oop面向对象 >> Java正文
Java 应用程序开箱即用的对象持久性
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-22 16:30:28
HSQLDB 中检索对象:

  • Store 对象构造函数。
  • 将对象保存到数据库的 save() 方法。
  • 用于检索对象的一个或多个 find() 方法。

构造函数十分简单;只需将 JDBC 驱动作为第一个参数,将 JDBC URL 作为第二个参数:

Store store = new Store("org.hsqldb.jdbcDriver","jdbc:hsqldb:mem:stockdata");


稍后,Store 对象将用于存储及检索对象。

将对象保存到数据库中也很直接:

StockBean bean = new StockBean(symbol, date, price, volume);

store.save(bean);


只需调用 save() 将对象存储到数据库。任何必要的表都会在幕后创建。

使用用于检索对象的查询语言来查找对象也相当简单:

List results=store.find(query);


有四种不同的 find() 方法:

  • find(String statement)
  • find(String statement, Object[] parameters)
  • findSingle(String statement)
  • findSingle(String statement, Object[] parameters)

带参数的 find() 方法与在 SQL 中时一样:“?” 是参数对象的占位符。findSingle() 方法是自解释的。

定制查询语言

    到现在,您也许注意到了一件事,Simple Persistence for Java 使用定制查询语言来查找对象。查询语法是面向对象的,并且没有了表、索引或其他典型的对象关系型数据库的概念。例如,下列查询在一个 List 中返回所有 StockBean 对象:

find stockbean


    由于作为结果的 List 是惰性的,因而可以不影响应用程序性能或内存消耗即可查询大量对象。所以,即使实际对象是随需检索的,getSize() 方法也会返回一个结果的总数。

查询语法

Simple Persistence for Java 查询由 “find” 开始,第二个元素是要检索的类名。只有当许多类重名但所处包不同时才需要一个完整类名。

Where 子句与在 SQL 中的那些类似。典型的操作符,如 “or”、“and”、“not”、“<”、“>”、“=”、“like” 等等也得到了支持。

下列查询会返回其值介于 USD90 和 USD92.5 之间的所有 StockBean 对象:

find stockbean where price>90 and price6lt;'92.5' and symbolname='IBM'


注意,表示整型值可以不用引号,但双精度值和字符串值则需要引号。

也可以使用 SQL 中常见的 “order by” 语法来对结果进行排序。例如,下列命令指定结果按价格降序排列:

find stockbean where price>90 and price<'92.5' and symbolname='IBM' order by price desc

运行样例

StockData 程序在一个 CSV 文件中搜索证券数据。可下载包 包含编译过的源代码和一个叫做 stockdata.bat 的批处理文件。该程序的语法是 stockdata.bat <symbol name> <csv file name> <find query>。可以使用此语法自己来查询样例应用程序。

下列命令的结果

stockdata.bat IBM ibm_2006.csv "find stockbean where price>90 and price6lt;'92.5' and symbolname='IBM'"

如图 1 所示:


图 1. 查询 StockData 应用程序的输出
查询 StockData 的输出 

 

上一页  [1] [2] [3] [4] 下一页  

额外功能

    StockData 应用程序演示了 Simple Persistence for Java 的基本功能。除此之外, Simple Persistence for Java 库还有一些 StockData 未表现出来的更高级的功能,包括多态性和用户管理事务。

多态性

在 Simple Persistence for Java 中,想要存储到数据库中的 JavaBean 能够从类中扩展。例如:

public class StockBeanExt extends StockBean

{

  private int totalTrades=0;

  public StockBeanExt()

  {

    // no-argument constructor required by Simple Persistence

  }

  public int getTotalTrades()

  {

    return totalTrades;

  }

  public void setTotalTrades(int totalTrades)

  {

    this.totalTrades=totalTrades;

  }

}


   

上一页  [1] [2] [3] [4] 下一页


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:Admin@Syue.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    bet365 传世私服 天龙八部私服 热血江湖私服 英雄合击传奇私服 机战私服 惊天动地私服 天龙八部私服 热血江湖私服 bet365 天龙八部私服 bet365 传世私服 传奇世界私服