是否可以将clob数据转换为mybatissqlmapperxml中的字符串?

tktrz96b  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(312)

我想接收的clob数据 CONTENT 列组件 java.lang.String 仅使用sqlMap器定义的值。
selectquery是这样的。

<select id="selectById">
        <![CDATA[
        SELECT 
            ID            -- // NUMBER
            , TITLE       -- // VARCHAR2(2000)
            , CONTENT     -- // CLOB
        FROM FAQ
        WHERE ID = #{id}
        ]]>
    </select>

有可能吗?我搜索了一个多小时才发现 <resultMap /> 可能是解决办法。但是,我想不出来了。请帮帮我。

evrscar2

evrscar21#

我给你介绍两种方法。
第一种解决方法是使用 <resultMap /> .
你只需要指定 javaType 对于 CONTENT 列。

<resultMap type="map" id="faqRM">
  <id property="ID" column="ID" />
  <result property="TITLE" column="TITLE" />
  <result property="CONTENT" column="CONTENT" javaType="string" />
</resultMap>

并具体说明 resultMap<select /> .

<select id="selectById" resultMap="faqRM">

第二种方法是指定 CLOBObject 在配置中全局转换。

<typeHandlers>
  <typeHandler javaType="java.lang.Object" jdbcType="CLOB"
    handler="org.apache.ibatis.type.StringTypeHandler" />
</typeHandlers>

然后您可以简单地指定 resultType="map" 而不是定义 <resultMap /> .

<select id="selectById" resultType="map">

我还应该提到这一点 java.lang.String 容量小于 CLOB ( 2GB - 14GB - 1 上次我查过)。

相关问题