http://my.oschina.net/zimingforever/blog/81135
问题背景很简单,原先的DO中有一个字段是OutputStream类型,好吧,别问我为什么用这么变态的类型,存的是文件的内容,原先用的mysql(blob)+jdbctemplate一点问题的都没有,系统跑了也半年了。
但是现在改成用ibatis+Oracle(clob)就插入不进去了。网上也有很多的解决方案,比如下面的几个链接,我没仔细看,有兴趣的可以自己参考下
http://www.blogjava.net/zyl/archive/2007/01/13/93667.html
http://developer.51cto.com/art/200907/136668.htm
http://klyuan.iteye.com/blog/74678
这里直接说下我得方案,既然ibtatis支持String,那么我把outputstream的字段新建一个字段用tostring映射一下,然后ibaits引用这个string的字段就可以了
1
2
|
private
OutputStream fileOs;
private
String fileOsString;
//新扩展的属性,其getter未fileOS的tostring方法
|
1
2
3
4
5
6
7
8
9
10
|
INSERT INTO XXXX
(
ID,
FILE_CONTENT
)
VALUES
(
#fileID#,
#fileOsString# //此处是fileOsString,不是fileOs
)
|
总结一下,ibatis的Clob字段可以用一个String来替代。