六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 43|回复: 0

oracle ibatis Spring blob

[复制链接]

升级  94%

11

主题

11

主题

11

主题

童生

Rank: 1

积分
47
 楼主| 发表于 2013-2-3 13:36:07 | 显示全部楼层 |阅读模式
最近用到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"?><beansxmlns="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 sqlMapPUBLIC "-//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>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表