我有一个使用JDBI(JDBC包装器)访问PostgreSQL数据库的java程序。其中一列是阵列数据类型(mycolumn integer[])
。使用JDBI获取Postgres数组数据
我在mapper类中使用了什么?我认为resultSet.getArray("mycolumn")
是正确的做法,但我不确定如何从返回的java.sql.Array
对象中获取数据。
有关如何做到这一点的任何提示或良好的链接?
我有一个使用JDBI(JDBC包装器)访问PostgreSQL数据库的java程序。其中一列是阵列数据类型(mycolumn integer[])
。使用JDBI获取Postgres数组数据
我在mapper类中使用了什么?我认为resultSet.getArray("mycolumn")
是正确的做法,但我不确定如何从返回的java.sql.Array
对象中获取数据。
有关如何做到这一点的任何提示或良好的链接?
Array array = resultSet.getArray("mycolumn");
return nonNull(array) ? (Integer[])array.getArray() : null ;
如何注册这段代码以便'@ MapResultAsBean'可以使用它? – Jorn
我们不能使用@MapResultAsBean来解决这个问题。我们需要编写一个映射器 – Manikandan
我的意思是我想要一个带'List
提示:http://docs.oracle.com/javase/6/docs/api/java/sql/Array.html,'Array.getArray()'。 –
虽然它返回一个对象...我不知道它是什么类型,并且文档没有使我更清楚。 – Amasuriel
底层数组类型由数据库字段类型决定。您可以从JDBC元数据API中获取详细信息。或者,在对象上使用'getClass()'并以这种方式检查它。 –