0

我正在用 Java 编写一个程序,它将 JDBC 驱动程序与 Postgresql 一起使用。我正在使用一个 API,当调用它时,它会以这样的字符串返回数据:

id=-870229851 date = finished-20130501  15:13:07-20130502  15:13:07 open=-1.0 high=-1.0 low=-1.0 close=-1.0 volume=-1 count=-1 WAP=-1.0 hasGaps=false

这些名称中的大多数是我的 Postgresql 数据库中的一列(如有必要,我可以将它们全部设为一列),但我想知道将其插入 Postgresql 的最有效方法是什么?

在我编写一个函数来解析每个标题/值之前,我希望 Postgresql 有一些方法可以有效地处理这样的数据。

有人可以阐明一下吗?

我的 Postgresql 版本是 9.2,我的 Java 是 1.7

4

1 回答 1

0

Postrgre 没有办法在本地执行此操作(无论如何我都知道),但是,您可以像这样使用 Java 的字符串标记器:

StringTokenizer st = new StringTokenizer(sourceString, "= ");

while(st.hasMoreTokens()) {

  String key = st.nextToken();
  String valuse = st.nextToken();

  // Do something with the keys and values (i.e. build and execute insert statements.
} 

sourceString 是您的数据字符串。这将基于等号和名称值对之间的空格来分隔字符串。假设字符串中的名称或值中没有空格。如果他们这样做了,那么您将不得不在对字符串进行标记之前对字符串执行一些正则表达式魔术,这取决于等号的左侧和右侧可能发生的情况。

然后您可以生成要由数据库引擎执行的插入语句字符串。

于 2013-05-03T01:26:49.580 回答