#概述java
使用Spring的時候需求上不免說須要存儲一下幾種類型:spring
Spring 支持經過LobCreator/LobHandler
進行處理大對象code
看到方法名就知道,在調用前會被執行一遍,恰好看看這個對象的實現,只有
AbstractLobCreatingPreparedStatementCallback
,接下來看看源碼,看看有沒有例子。就是我想要的對象
final File blobIn = new File("spring2004.jpg"); final InputStream blobIs = new FileInputStream(blobIn); final File clobIn = new File("large.txt"); final InputStream clobIs = new FileInputStream(clobIn); final InputStreamReader clobReader = new InputStreamReader(clobIs); jdbcTemplate.execute( "INSERT INTO lob_table (id, a_clob, a_blob) VALUES (?, ?, ?)", //new DefaultLobHandler() or new OracleLobHandler() new AbstractLobCreatingPreparedStatementCallback(lobHandler) { protected void setValues(PreparedStatement ps, LobCreator lobCreator) throws SQLException { ps.setLong(1, 1L); lobCreator.setClobAsCharacterStream(ps, 2, clobReader, (int)clobIn.length()); lobCreator.setBlobAsBinaryStream(ps, 3, blobIs, (int)blobIn.length()); } } ); blobIs.close(); clobReader.close();
執行步驟:圖片
setBlobAsBinaryStream
setClobAsAsciiStream
setClobAsCharacterStream
ci