文档章节

IBATIS 写BLOB字段遇到的问题

echo-neo
 echo-neo
发布于 09/26 19:12
字数 368
阅读 2
收藏 0

1、 首先遇到的配置问题,通过设置typeHandler 来支持写入。接下来由此引出了事务的问题。

<typeHandler jdbcType="BLOB" javaType="[B" callback="org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler" />

2、引入了typeHandler 之后,随之而来的是事务处理机制。

<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" lazy-init="true"/>

<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">

<property name="nativeJdbcExtractor">

<ref bean="nativeJdbcExtractor"></ref>

</property>

</bean>

<bean id="*SqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

<property name="dataSource">

<ref bean="epbpDataSource"/>

</property>

<property name="configLocation">

<value>classpath:config/*-iBatisConfig.xml</value>

</property>

<property name="lobHandler">

<ref local="oracleLobHandler"></ref>

</property>

</bean>

引入了这些。在配置事务的时候,从网上查了多种方式都不可行。最后判断可能与公司框架有关系。因为这个项目是在原先有一套数据源的基础上新增加了一套数据源。

3、那么我的目标是写入BLOB不考虑事务处理。我最终调整了typeHandler 终实现了。

<typeHandler jdbcType="BLOB" javaType="[B" callback="com.ibatis.sqlmap.engine.type.BlobTypeHandlerCallback" />

在这里使用了isEmpty 与 isNotEmpty 遇到一个问题是

java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 17

初步判断 是因为如果clob字段为空会导致数据项缺失。

<insert id="#######" parameterClass="*">

INSERT INTO ******

(ID, XH, FJMC, FJSM, BLCDM, FJNR, CJR, CJSJ, XGR, XGSJ, SHR, SHRQ, SHZT, JGDM)

VALUES(#id#, #xh#, #fjmc#, #fjsm#, #blcdm#,

<isEmpty property="fjnr">

null,

</isEmpty>

<isNotEmpty property="fjnr">

#fjnr:BLOB#,

</isNotEmpty>

#cjr#, to_date(#cjsj#,'yyyy-mm-dd'), #xgr#,

to_date(#xgsj#,'yyyy-mm-dd'), #shr#, to_date(#shrq#,'yyyy-mm-dd'), #shzt#, #jgdm#)

</insert>













 

© 著作权归作者所有

共有 人打赏支持
echo-neo
粉丝 2
博文 3
码字总数 554
作品 0
东营
高级程序员
iBatis SqlMap的配备总结

iBatis SqlMap的配置总结 核心提示:SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间: sqlMap namespace=Account,在此空间外要引用此空间的元素...

mjZhang
2014/04/30
0
1
ibatis sqlMap 使用

SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间: 在此空间外要引用此空间的元素,则需要加上命名空间名。 2、实体的别名: 如果有用到的全名的地...

为了美好的明天
04/27
0
0
【转】我为什么选择 iBatis 而不是 Hibernate(对于正在选型的人的建议)

我在最初的选型的时候是打算选择 Hibernate 的,在研究的过程中发现了 iBatis,经过 分析比较之后我选择了 iBatis。现在我已经使用 iBatis 完成了一个中小型的项目。这个 项目在性能、可维护...

mj4738
2012/02/18
0
3
关于ibatis简单使用的想法

ibatis 是一个成熟的框架,现在已经是改名字叫mybatis了,框架的配置比较烦,如xml,dao的书写,还有每个表还要对应于javabean,没有的话,map 也成,一直在想怎么能通过一些方式使其更好地接入,...

国民
2013/07/01
0
1
00fly/springmvc_ibatis_plus

#springmvcibatisplus ** 针对ibatis框架的代码生成器项目不再维护了,sorry。。。 ** 说明:如果数据库表中oracle无blob,clob字段,mysql中无text,blob字段请使用 noSupportBCLOB 分支代码...

00fly
06/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
59分钟前
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
9
0
vm GC 日志 配置及查看

-XX:+PrintGCDetails 打印 gc 日志 -XX:+PrintTenuringDistribution 监控晋升分布 -XX:+PrintGCTimeStamps 包含时间戳 -XX:+printGCDateStamps 包含时间 -Xloggc:<filename> 可以将数据保存为......

Canaan_
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部