oracle ibatis Spring blob

最近用到blob类型的字段,在网上看了看,大部分都没成功。自己试验些时间,整理个可以运行的,以便将来用的时候不用在到网上搜来搜去的了!

闲话少说,只将关键代码贴出来
1.表

create table TBL_SYS_BULLIT (
TPI_ID VARCHAR2(10) not null,
TPI_TITLE VARCHAR2(200) not null,
TPI_CONTENT_URL BLOB )


2.实体BulletinVo.java

public class BulletinVo {

private String tpiId;
private String tpiTitle;
private byte[] tpiContentUrl;

public BulletinVo() {

}

public String getTpiId() {
return tpiId;
}

public void setTpiId(String tpiId) {
this.tpiId = tpiId;
}

public String getTpiTitle() {
return tpiTitle;
}

public void setTpiTitle(String tpiTitle) {
this.tpiTitle = tpiTitle;
}

public byte[] getTpiContentUrl() {
return tpiContentUrl;
}

public void setTpiContentUrl(byte[] tpiContentUrl) {
this.tpiContentUrl = tpiContentUrl;
}

}


3.sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>

<!-- 使用命名空间 用于区分重名问题 -->
<settings useStatementNamespaces="true" />

typeHandler jdbcType="BLOB" javaType="[B"
callback="org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler" />
<typeHandler jdbcType="CLOB" javaType="java.lang.String"
callback="org.springframework.orm.ibatis.support.ClobStringTypeHandler" />
</sqlMapConfig>


4.applicationContext-dao.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<!-- Transaction manager -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>

<!-- LobHandler for Oracle JDBC drivers -->
<!-- (refers to the NativeJdbcExtractor above to get access to native OracleConnections) -->
<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor"
lazy-init="true" />
<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">
<property name="nativeJdbcExtractor">
<ref local="nativeJdbcExtractor" />
</property>
</bean>

<!-- Spring提供的iBatis的SqlMap配置-->
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:sqlMapConfig.xml"/>
<property name="dataSource" ref="dataSource"/>
[color=red]<property name="lobHandler">
<ref local="oracleLobHandler" />
</property>
</bean>

</beans>


5.bulletin.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="sysBullit">
<typeAlias alias="BulletinVo" type="包名.BulletinVo" />
<typeAlias alias="iCriteria" type="包名.IbatisCeteria" />

<select id="selectBulletin" parameterClass="iCriteria" resultClass="BulletinVo">
select
SysBullit.TPI_ID as tpiId,
SysBullit.TPI_TITLE as tpiTitle,
SysBullit.TPI_CONTENT_URL as tpiContentUrl
from TBL_SYS_BULLIT SysBullit
where 1=1
</select>

<update id="updateBulletin" parameterClass="BulletinVo">
update TBL_SYS_BULLIT
set
<isNotNull property="tpiId" prepend=",">TPI_ID = #tpiId# </isNotNull>
<isNotNull property="tpiTitle" prepend=",">TPI_TITLE = #tpiTitle# </isNotNull>
<isNotNull property="tpiContentUrl" prepend=",">TPI_CONTENT_URL = #tpiContentUrl:BLOB# </isNotNull>
where TBL_SYS_BULLIT.TPI_ID = #tpiId#
</update>

<insert id="insertBulletin" parameterClass="BulletinVo">
insert into TBL_SYS_BULLIT (
<isNotNull property="tpiId" prepend=",">TPI_ID</isNotNull>
<isNotNull property="tpiTitle" prepend=",">TPI_TITLE</isNotNull>
<isNotNull property="tpiContentUrl" prepend=",">TPI_CONTENT_URL </isNotNull>
)
values (
<isNotNull property="tpiId" prepend=",">#tpiId#</isNotNull>
<isNotNull property="tpiTitle" prepend=",">#tpiTitle#</isNotNull>
<isNotNull property="tpiApprDate" prepend=",">#tpiApprDate#</isNotNull>
<isNotNull property="tpiContentUrl" prepend=",">#tpiContentUrl:BLOB# </isNotNull>
)
</insert>

</sqlMap>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值