package org.nutz.dao.impl.jdbc; import java.io.File; import java.sql.Clob; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; import org.nutz.dao.util.blob.SimpleClob; import org.nutz.filepool.FilePool; import org.nutz.lang.Streams; public class ClobValueAdaptor extends AbstractFileValueAdaptor { public ClobValueAdaptor(FilePool pool) { super(pool); suffix = ".clob"; } public Object get(ResultSet rs, String colName) throws SQLException { Clob clob = rs.getClob(colName); if (clob == null) return null; File f = this.createTempFile(); Streams.writeAndClose(Streams.fileOutw(f), clob.getCharacterStream()); return new SimpleClob(f); } public void set(PreparedStatement stat, Object obj, int i) throws SQLException { if (null == obj) { stat.setNull(i, Types.CLOB); } else { Clob clob = (Clob) obj; stat.setClob(i, clob); } } }