文档章节

IBATIS 写BLOB字段遇到的问题

echo-neo
 echo-neo
发布于 09/26 19:12
字数 368
阅读 7
收藏 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
博文 5
码字总数 1516
作品 0
东营
高级程序员
私信 提问
iBatis SqlMap的配备总结

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

mjZhang
2014/04/30
0
1
【转】我为什么选择 iBatis 而不是 Hibernate(对于正在选型的人的建议)

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

mj4738
2012/02/18
0
3
ibatis sqlMap 使用

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

为了美好的明天
04/27
0
0
关于ibatis简单使用的想法

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

国民
2013/07/01
0
1
使用 ibatis 处理复杂对象数据关系的实例

ibatis 基本介绍 起源于 2001 年的开放源代码项目 ibatis,是一个基于 Java 的持久层框架。与 Hibernate, Toplink 等持久化框架不同,ibatis 是一个 “半自动化”的 ORM 实现。ibatis 没有对...

红薯
2010/09/05
1K
4

没有更多内容

加载失败,请刷新页面

加载更多

mac 下 mysql 8.0.13 安装并记录遇到的问题 以便以后查看

安装 官网mysql 下载地址 安装过程 省去 安装好之后 下载navicat 错误1 链接 遇到 mysql 2003 - Can't connect to MySQL server 错误, 解决方案 重启mysql 服务 #错误2 ERROR 1045: Acces...

杭州-IT攻城狮
24分钟前
3
0

中国龙-扬科
27分钟前
1
0
[Spring4.x]基于spring4.x纯注解的Web工程搭建

在前文中已经说明了如何基于 Spring4.x+ 版本开发纯注解的非web项目,链接如下: https://my.oschina.net/morpheusWB/blog/2985600 本文则主要说明,如何在Web项目中,"基于spring纯注解方式...

morpheusWB
56分钟前
13
0
基础编程题目集-7-13 日K蜡烛图

股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线、按周的周K线、按月的月K线等。以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开...

niithub
今天
5
0
Jenkins window 下的安装使用

1.下载:https://jenkins.io/download/ 双击安装完毕,将自动打开浏览器: http://localhost:8080 打开对应位置的文件,将初始密钥粘贴至输入框。 第一个是 安装默认的软件;第二个是 自定义...

狼王黄师傅
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部