哪个Java库可以将PostgreSQL数组文本映射到Java数组或列表?
有什么第三方Java类库可以将PostgreSQL array literal字符串映射到Java数组或字符串列表
例如,假设我希望转换PostgreSQL数组文本字符串,例如
{ A, B, C }
转换为包含{ "A", "B", "C" }
的等价Java List<String>
或Array<String>
。PostgreSQL JDBC driver是否有类方法来执行此转换
你可以在下面搜索框中键入要查询的问题!
有什么第三方Java类库可以将PostgreSQL array literal字符串映射到Java数组或字符串列表
例如,假设我希望转换PostgreSQL数组文本字符串,例如
{ A, B, C }
转换为包含{ "A", "B", "C" }
的等价Java List<String>
或Array<String>
。PostgreSQL JDBC driver是否有类方法来执行此转换
# 1 楼答案
当您可以从PgJDBC获取一个
java.sql.Array
并对其调用getArray()
以直接获取本机Java数组时,为什么要在Java中解析数组字符串文本在Java中解析数组文本似乎是一种不必要的复杂方法
由于您是从
hstore
以数组文本的形式获取值,所以我认为您有一点数据模型设计问题,因为hstore实际上只存储字符串值,所以存储数组文本有点难看。我可以理解,在某些情况下,它可能是可取的,但至少在Pg得到改进json
支持之前在这种情况下,我会让PostgreSQL为您解析数组文本。给定设置:
您可以让Pg通过以下方式展开并解析数组文本:
您可能需要更多或更少复杂的变量,这取决于您是只获取一个hstore字段还是多个字段,您的所有值是否都是相同类型的数组,等等。在某些情况下,您需要执行单独的SQL调用来解压缩值
# 2 楼答案
是的,有。看看:http://www.postgresql.org/message-id/49107A7D.3050206@gmail.com。还有一篇有趣的文章here。那篇文章有一条评论链接到GitHub(sproc spring mapper)上一个有趣的项目
# 3 楼答案
对于需要从逻辑复制(pgoutput)解析阵列值的用户: 在这种情况下,在Craig Ringer的答案中使用sql方式是非常好/熟悉/高性能的,所以我写了一个Class来解析它