`

Ibatis读写CLOB数据

 
阅读更多

Ibatis读写CLOB数据

注意:需要更新ORACLE数据库最新的驱动如,我用的11G的数据库,就更新驱动为ojdbc6.jar

如果使用ojdbc14.jar会提示:

java.sql.SQLException: 数据大小超出此类型的最大值

以下转自:http://www.iteye.com/topic/393238

 

由于最近要用ibatis操作Oracle的CLOB字段,结合以前的牛人发布的用ibatis操作clob字段的经验,发现以前的方法如今不再合适,现在操作CLOB字段变得更简单了。下面说下我是如何操作的。

1、jar包  我用的ibatis-2.3.4.726.jar,oracle-11g.jar(oracle11g的jar包,名字自己改了下的)

2、数据结构

 

CREATE TABLE "M_MODEL"  (
   "MODELID"            VARCHAR2(128)                   NOT NULL,
   "MODEL_HTML"         CLOB,
   CONSTRAINT PK_M_MODEL PRIMARY KEY ("MODELID")
);

 

3、sqlMap

<!-- 更新 -->
<update id="updateModelHtml" parameterClass="java.util.Map">
  	update m_model set model_html=#modelHtml# where modelid=#modelId#
</update>

<!-- 查询 -->

<resultMap class="model" id="Model_htmlMap">
         <result property="modelId" column="modelid" javaType="String"/>
         <result property="modelHtml" column="model_html" nullValue="" javaType="java.lang.String" jdbcType="CLOB"/>
  </resultMap>
<select id="getModelById" parameterClass="long" resultMap="Model_htmlMap">
  	SELECT t1.MODELID,t1.model_html
  	FROM M_MODEL t1
                WHERE MODELID=#MODELID#
    	ORDER BY t1.MODELID
  </select>

 

4、DAO的JAVA代码

//更新
public void updateModelHtml(String modelId, String modelHtml) {
	Map<String, String> map = new HashMap<String, String>(2);
	map.put("modelId", modelId);
	map.put("modelHtml", modelHtml);
	this.getSqlMapClientTemplate().update("updateModelHtml", map);

}

//查询
public List<Model> getModelById(long modelId) {
	return this.getSqlMapClientTemplate().queryForList("getModelById", modelId);
}

 

如此,不需要其他的什么OracleClobTypeHandlerCallback 类,也不需要配置ParameterMap,就能达到读写CLOB字段的方法

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics