Spring+ibatis处理CLOB和BLOB

阅读更多

 

公司更改项目框架时,处理CLOB字段曾经出过一个问题。今天抽时间整理个大概出来。以下是老框架的配置。

Ibatis配置文件:


	
	
	
	

	
maps_xml_generate
	


map映射文件中:
  
    
    
  

 

spring配置文件:

 

	
	
		
			
				classpath:/META-INF/sql-map-config.xml
				classpath:/META-INF/sql-map-config-front.xml
			
		
		
		
		
	

	
	
	
		
	

 看过一些介绍,说的是OracleLobHandler能处理oracle9i及其以上版本的CLOB字段。但是在新框架中同样的配置,查询时没有问题,插入CLOB字段时却失败,这里由于是很久前出的问题,没有错误日志可贴。后来解决办法如下:

	
	
	
                
		
	

 

这样就解决了blob和clob字段的插入问题。但是对于为什么不能用OracleLobHandler并没有找到原因。最后总结可能是Spring版本问题(新框架版本为4.0.3,老框架2.5.5),但是目前为止没有找到相关说明。这里注意必须在事务下操作clob字段。原因不明。。

springAPI文档中DefaultLobHandler介绍为:This does not apply to Oracle 9i, and only to a limited degree to Oracle 10g!

OracleLobHandler介绍为:Note that this LobHandler requires Oracle JDBC driver 9i or higher!

Spring内置提供的NativeJdbcExtractor转换器有:
          C3P0NativeJdbcExtractor
          CommonsDbcpNativeJdbcExtractor
          JBossNativeJdbcExtractor
          NativeJdbcExtractor
          NativeJdbcExtractorAdapter
          SimpleNativeJdbcExtractor
          WebLogicNativeJdbcExtractor
          WebSphereNativeJdbcExtractor
          XAPoolNativeJdbcExtractor

 

 

你可能感兴趣的:(Spring,CLOB,BLOB,IBATIS)