我正在使用Postgres 9.3,我得到的Java数据库驱动程序如下
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
System.err.println("Couldn't load org.postgresql.Driver");
System.exit(1);
}
然后我就做了:
Array urlData = rs.getArray("urls");
String[] urls = (String[]) urlData.getArray();
但由于urlData为null,最后一行出现NullPointerException
错误
为什么这是因为,阵列不支持Postgresql,本教程未说明Mysql不支持
https://docs.oracle.com/javase/tutorial/jdbc/basics/array.html
或者它只是null,因为没有特定行的urls数据?
尝试使用答案中建议的getObject
失败,错误为
Exception in thread "main" java.lang.AbstractMethodError: Method org/postgresql/jdbc4/Jdbc4ResultSet.getObject(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; is abstract
at org.postgresql.jdbc4.Jdbc4ResultSet.getObject(Jdbc4ResultSet.java)
at com.jthink.jthinksearch.index.indexer.discogs.ArtistIndex.documentFromResultSet(ArtistIndex.java:209)
at com.jthink.jthinksearch.index.indexer.discogs.ArtistIndex.indexData(ArtistIndex.java:176)
at com.jthink.jthinksearch.index.indexer.IndexBuilder.buildDatabaseIndex(IndexBuilder.java:226)
at com.jthink.jthinksearch.index.indexer.IndexBuilder.buildIndex(IndexBuilder.java:151)
at com.jthink.jthinksearch.index.indexer.IndexBuilder.main(IndexBuilder.java:119)
发布于 2018-06-14 23:11:57
我想是因为,所以它才是null,因为没有特定字段的urls的数据-
要解决您的问题,您可以使用:
Array urlData = rs.getArray("urls");
String[] urls = urlData != null ? (String[]) urlData.getArray() : null;//or a default value
https://stackoverflow.com/questions/50860641
复制相似问题