package org.iplantc.phyloviewer.viewer.server; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.imageio.ImageIO; import javax.sql.DataSource; import org.iplantc.phyloviewer.viewer.server.db.ConnectionUtil; public class DatabaseOverviewImage implements IOverviewImageData { private DataSource pool; public DatabaseOverviewImage(DataSource pool) { this.pool = pool; } @Override public BufferedImage getOverviewImage(int treeId, String layoutId) { BufferedImage image = null; Connection connection = null; PreparedStatement statement = null; ResultSet rs = null; try { connection = pool.getConnection(); String sql = "Select * from overview_images where tree_id=?"; statement = connection.prepareCall(sql); statement.setInt(1, treeId); rs = statement.executeQuery(); if(rs.next()) { String path = rs.getString("image_path"); image = ImageIO.read(new File(path)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { ConnectionUtil.close(connection); ConnectionUtil.close(statement); ConnectionUtil.close(rs); } return image; } }