0
私は、3つの列、imageID、username、imageを持つSQLという名前のテーブルを持っています。特定のユーザーの写真をすべて1つの配列にまとめることを試みていますが、なんらかの理由で正しく動作しません。私は何が間違っているのか分からない。画像はlistOfImages配列に行くとイメージの名前がimagenameの配列に入る:SQLデータベースからデータを読み取る際に問題が発生しました。
ArrayList<BufferedImage> listOfImages = new ArrayList<BufferedImage>();
ArrayList<String> imageName = new ArrayList<String>();
try {
myConn = connection
String sql = "SELECT * FROM images WHERE username=?";
PreparedStatement statement = myConn.prepareStatement(sql);
statement.setString(1, username);
ResultSet result = statement.executeQuery();
while (result.next()) {
String getImageName = result.getString("imageID");
Blob blob = result.getBlob("image");
listOfImages.add(javax.imageio.ImageIO.read(blob.getBinaryStream()));
imageName.add(getImageName);
}
myConn.close();
} catch (SQLException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
System.out.println(imageName);
エラーメッセージ:
Stack trace:Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
listOfImages.add(javax.imageio.ImageIO.read(blob.getBinaryStream()));
問題は、私が間違ってバッファリングされたイメージにBLOBを変換したことがあります。それを行う正しい方法は何ですか?
*どうして*うまくいかないのですか?エラーが発生していますか?予期しない動作をしていますか?もしそうなら、あなたのプログラムは何をすべきでしょうか?それは実際に何をしていますか?理想的には[mcve]を提供する必要がありますが、少なくともあなたの問題を詳細に記述する必要があります。 – azurefrog
私はあなたの質問を読むことから何がうまくいかないのか分かりませんが、中のIf文はそこに属していません。 – isaace
スレッド「AWT-EventQueue-0」のjava.lang.NullPointerExceptionで例外が発生しました。私はそれをトレースしようとしましたが、エラーの原因がどこから来ているのか理解していません – yuin265