calData.remove(0);
// store beans to database
for (Object _data : historicalData)
{
String[] data = ((String) _data).split(",");
StockBean bean = new StockBean(symbol, data[0],
Double.parseDouble(data[4]), Double.parseDouble(data[5]));
//save stock bean to database
store.save(bean);
}
// find beans that match query
List results=store.find(query);
// print beans that matched
System.out.println("Total results: "+results.size());
for (Object object : results)
{
StockBean bean=(StockBean)object;
System.out.println(bean.toString());
}
}
catch (Exception e)
{
log.error(e.getMessage(), e);
System.out
.println("Usage: java sample.StockData " +
"<symbol name> <historical prices file> <query>");
}
}
}
StockData 应用程序使用 Apache Commons IO 包将 CSV 文件读入 List。然后,for 循环解析文本行并创建 StockBean 对象,该对象被存入数据库中。CSV 文件的格式如下:
Date,Open,High,Low,Close,Volume,Adj. Close* 29-Dec-06,97.00,97.88,96.83,97.15,4455900,97.15 28-Dec-06,97.11,97.40,96.87,96.97,4501700,96.97 27-Dec-06,96.30,97.23,96.27,97.20,4571600,97.20
可下载演示包 中提供了一个样例 CSV 文件。
将所有对象存入数据库后,会执行一个简单的 find 查询(在命令行中指定)并返回一份相匹配结果的 List。结果打印到 System.out。请注意,Simple Persistence for Java 实现 LazyList,对象可在 LazyList 中随需检索。这确保了内存中最终不会出现成千上万的对象。
StockBean 对象
清单 2 展示了 StockBean Java 对象的源代码,该代码用于存储 StockData 中的信息。StockBean 有四个字段:symbol name、date、price 和 volume。
清单 2. StockBean 对象
public class StockBean
{
private String symbolName = "";
private String date = null;
private double price = 0.0;
private double volume = 0.0;
public StockBean()
{
// no-argument constructor required by Simple Persistence
}
public String toString()
{
StringBuffer sb=new StringBuffer();
sb.append(symbolName);
sb.append(',');
sb.append(date);
sb.append(',');
sb.append(price);
sb.append(',');
sb.append(volume);
return sb.toString();
}
public StockBean(String symbolName, String date, double price, double volume)
{
this.symbolName = symbolName;
this.date = date;
this.price = price;
this.volume = volume;
}
public String getDate()
{
return date;
}
public void setDate(String date)
{
this.date = date;
}
public double getPrice()
{
return price;
}
public void setPrice(double price)
{
this.price = price;
}
public String getSymbolName()
{
return symbolName;
}
public void setSymbolName(String symbolName)
{
this.symbolName = symbolName;
}
public double getVolume()
{
return volume;
}
public void setVolume(double volume)
{
this.volume = volume;
}
}
上一页 [1] [2] [3] [4] 下一页
简单元素
正如能在 清单 1 的 StockData 源码中看到的那样,Simple Persistence for Java 真正简化了对象关系型持久性。基本上只需三行代码就可将持久性添加到您的 Java 应用程序中并从 上一页 [1] [2] [3] [4] 下一页
|