Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据以字符串形式出现,插入到带有java的postgresql中,什么';分解数据最有效的方法是什么?_Java_Postgresql_Jdbc - Fatal编程技术网

数据以字符串形式出现,插入到带有java的postgresql中,什么';分解数据最有效的方法是什么?

数据以字符串形式出现,插入到带有java的postgresql中,什么';分解数据最有效的方法是什么?,java,postgresql,jdbc,Java,Postgresql,Jdbc,我正在用Java编写一个程序,使用带有Postgresql的JDBC驱动程序。我使用的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数据库中的一列(如

我正在用Java编写一个程序,使用带有Postgresql的JDBC驱动程序。我使用的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,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是您的数据字符串。这将根据等号和名称-值对之间的空格来分隔字符串。假设名称或字符串中的值中没有空格。如果是这样,那么在标记字符串之前,您必须对字符串执行一些正则表达式魔术,这取决于等号的左侧和右侧可能发生的情况


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

是否可以更改API,使其返回结果集、POJO、bean或其他内容,而不是。。。一根绳子?你所拥有的对于日志文件来说很好,但是对于其他任何东西来说都不太好…@corsika我可以重载api的功能。我不确定这些东西是什么,所以请给我一点时间,让我用谷歌看看这是否可行……我希望能有一些postgresql的快速修复,但由于没有,我最终用正则表达式来获取信息。不过我会接受你的答案,因为它的代码比我写的要少。非常感谢。