pphqq 发表于 2013-2-3 13:36:07

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"?><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"/><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_BULLITSysBullit   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>
页: [1]
查看完整版本: oracle ibatis Spring blob