Ibatis读写CLOB数据
时间:2010-10-08 来源:风中绝响
由于最近要用ibatis操作Oracle的CLOB字段,结合以前的牛人发布的用ibatis操作clob字段的经验,发现以前的方法如今不再合适,现在操作CLOB字段变得更简单了。下面说下我是如何操作的。
1、jar包 我用的ibatis-2.3.4.726.jar,oracle-11g.jar(oracle11g的jar包,名字自己改了下的)
2、数据结构
Sql代码- CREATE TABLE "M_MODEL" (
- "MODELID" VARCHAR2(128) NOT NULL,
- "MODEL_HTML" CLOB,
- CONSTRAINT PK_M_MODEL PRIMARY KEY ("MODELID")
- );
CREATE TABLE "M_MODEL" ( "MODELID" VARCHAR2(128) NOT NULL, "MODEL_HTML" CLOB, CONSTRAINT PK_M_MODEL PRIMARY KEY ("MODELID") );
3、sqlMap
Xml代码- <!-- 更新 -->
- <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>
<!-- 更新 --> <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代码
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);
- }
//更新 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字段的方法。我测试的字符数是12000左右
相关阅读 更多 +