package org.myeslib.util.jdbi; import java.io.IOException; import java.sql.Clob; import java.sql.ResultSet; import java.sql.SQLException; import org.skife.jdbi.v2.util.TypedMapper; import com.google.common.io.CharStreams; public class ClobToStringMapper extends TypedMapper<String> { public ClobToStringMapper(){ super(); } public ClobToStringMapper(int index) { super(index); } public ClobToStringMapper(String name) { super(name); } @Override protected String extractByName(ResultSet r, String name) throws SQLException { Clob clob = r.getClob(name); try { return CharStreams.toString(clob.getCharacterStream()); } catch (IOException e) { e.printStackTrace(); } finally { clob.free(); } return null; } @Override protected String extractByIndex(ResultSet r, int index) throws SQLException { Clob clob = r.getClob(index); try { return CharStreams.toString(clob.getCharacterStream()); } catch (IOException e) { e.printStackTrace(); } finally { clob.free(); } return null; } public static final ClobToStringMapper FIRST = new ClobToStringMapper(); }