189 8069 5689

@ResponseBody处理Clob数据-创新互联

数据表

创新互联主要从事网站设计、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务遂宁,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
create table test
(
  TASKID        NUMBER(10) not null,
  CONFIG CLOB
)

controller

	@ResponseBody
	@RequestMapping("/getTest")
	public List getTest(HttpServletRequest request, HttpServletResponse response){
		return this.Service.getTest();
	}

sql.xml


		select t.config as config,
		       t.taskid
		from test t
	

1、没有做任何处理情况,程序报错如下

Caused by:
org.codehaus.jackson.map.JsonMappingException: No serializer found for class
oracle.sql.LobDBAccessImpl and no properties discovered to create
BeanSerializer (to avoid exception, disable
SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain:
java.util.ArrayList[0]->java.util.HashMap["CONFIG"]->oracle.sql.CLOB["dbaccess"])

2、在sql.xml中,对CLOB字段Config进行to_char()处理,开始能够解决问题,后面出现数据库报错的情况

sql.xml


		select to_char(t.config) as config,
		       t.taskid
		from test t
	

数据库报错

@ResponseBody处理Clob数据

3、去掉@ResponseBody,将返回的结果打印出来,发现config是一个对象

controller

        //@ResponseBody
	@RequestMapping("/getTest")
	public List getTest(HttpServletRequest request, HttpServletResponse response){
	        System.out.println(this.Service.getTest());
		return this.Service.getTest();
	}

debug

[{CONFIG=oracle.sql.CLOB@16e2b70,TASKID=38}]

4、在Mybatis中采用resultMap处理,程序正常,debug时config为具体内容。

sql.xml

	
		select t.config as config,
		       t.taskid
		from test t
	
	
	
		
		
	

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:@ResponseBody处理Clob数据-创新互联
文章起源:http://jkwzsj.com/article/pdhjp.html

其他资讯