当Spring遇到了Oracle,该怎么办

文章作者 100test 发表时间 2007:03:14 13:37:21
来源 100Test.Com百考试题网


这次项目,我可以被oralce气伤了。oracle 9i怎么会有那么多问题,驱动怎么会有那么多问题。

好了,说问题吧。

这次的问题集中读写oracle的blob、clob字段上。

1,读写blob需要一个lobhander,虽然defaultlobhander可以用于大多数数据库和大多数oracle的版本,却不能用过oracle 9i。我需要一个oraclelobhander。

以下是spring中的配置。





     

以下是dao中的片段

/**

      * 更新指定的blob

      * @param key

      * @param contentStream

      * @param contentLength

      */

public void 0updateBlog(final String key, final InputStream contentStream,

final int contentLength) {

logger.debug("0update content").

try {

getJdbcTemplate().execute(

"0update table set content = ? where id = ?",

new AbstractLobCreatingPreparedStatementCallback(

this.lobHandler) {

protected void setValues(PreparedStatement ps,

LobCreator lobCreator) throws SQLException {

lobCreator.setBlobAsBinaryStream(ps, 1,

contentStream, contentLength).

ps.setString(2, key).

}

}).

} catch (RuntimeException re) {

                 logger.warn("0update content fail").

                 throw re.

           }

     }

     

     /**

      * 取得指定的blob

      * @param name

      * @param contentStream

      * @throws DataAccessException

      */

     public void getBlobContent(final String id, final OutputStream 

contentStream) throws DataAccessException {

getJdbcTemplate().query(

"SELECT content FROM table WHERE id=?", new String[] {id},

new AbstractLobStreamingResultSetExtractor() {

protected void handleNoRowFound() throws LobRetrievalFailureException {

throw new IncorrectResultSizeDataAccessException(

"Image with id "   id   " not found in database", 1, 0).

}

public void streamData(ResultSet rs) throws SQLException, IOException {

InputStream is = lobHandler.getBlobAsBinaryStream(rs, 1).

if (is != null) {

FileCopyUtils.copy(is, contentStream).

}

}

}

).

     }


相关文章


新的Oracle企业软件“探秘”
Oracle发布Berkeley_DB_Java
Oracle10gR2自动检查点调整的新特性
用Oracle并行查询发挥多CPU的威力(2)
当Spring遇到了Oracle,该怎么办
发财季报告甲骨文公司未来一片光明
在Windows上命令行手工启停Oracle
Oracle非法数据库对象引起的错误及解决,笔记,MBA,EMBA,留学,移名,翻译
应用Oracle组件实现动态Web数据库(3)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛