数据以字符串形式出现,插入到带有java的postgresql中,什么';分解数据最有效的方法是什么?
我正在用Java编写一个程序,使用带有Postgresql的JDBC驱动程序。我使用的API在调用时以字符串形式返回数据,如下所示:数据以字符串形式出现,插入到带有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数据库中的一列(如
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的快速修复,但由于没有,我最终用正则表达式来获取信息。不过我会接受你的答案,因为它的代码比我写的要少。非常感谢。