zoukankan      html  css  js  c++  java
  • mybatis存取oracle长数据clob方法

    1.重写mybatis的sql执行器

    package com.ai.gridoperation;
    
    import org.apache.ibatis.type.JdbcType;
    import org.apache.ibatis.type.TypeHandler;
    
    import java.sql.*;
    
    
    /**
     * 解决保存数据字段超过4000 char 问题
     * @author yuans
     * @create 2020-06-02-14:38
     */
    public class OracleClobTypeHandler implements TypeHandler<Object> {
    
        @Override
        public void setParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException {
            Clob clob = ps.getConnection().createClob();
            clob.setString(1, (String) parameter);
            ps.setClob(i, clob);
        }
    
        @Override
        public Object getResult(ResultSet rs, String columnName) throws SQLException {
            Clob clob =  rs.getClob(columnName);
            return (clob == null || clob.length() == 0) ? null : clob.getSubString((long) 1, (int) clob.length());
        }
    
        @Override
        public Object getResult(ResultSet rs, int columnIndex) throws SQLException {
            return null;
        }
    
        @Override
        public Object getResult(CallableStatement cs, int columnIndex) throws SQLException {
            return null;
        }
    }
    

    2.保存使用

      INSERT INTO 
        GR_MICROGRID(example)
        VALUES(
          <if test=" shape !=null and shape !='' ">
               #{shape,typeHandler=com.ai.gridoperation.OracleClobTypeHandler}
          </if>)
    

    3.查询使用

     <resultMap id="microFormatsBorderId" type="java.util.HashMap">
            <result  column="polygon" property="polygon" 		       typeHandler="com.ai.gridoperation.OracleClobTypeHandler"/>
     </resultMap>
    
     <select id="microFormatsBorderQuery" parameterType="java.util.Map" resultMap="microFormatsBorderId">
            select polygon from table
     </select>
  • 相关阅读:
    BZOJ 1899: [Zjoi2004]Lunch 午餐
    BZOJ3670: [Noi2014]动物园
    BZOJ3712: [PA2014]Fiolki
    BZOJ1057: [ZJOI2007]棋盘制作
    BZOJ4326: NOIP2015 运输计划
    BZOJ4721: [Noip2016]蚯蚓
    BZOJ1131: [POI2008]Sta
    BZOJ1856: [Scoi2010]字符串
    BZOJ4003: [JLOI2015]城池攻占
    [AH2017/HNOI2017]单旋
  • 原文地址:https://www.cnblogs.com/ysit/p/13174253.html
Copyright © 2011-2022 走看看