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>
  • 相关阅读:
    Go语言中DateTime知识点
    Go语言中的string知识点
    Go语言中的Iota
    Go语言的通道(2)-缓冲通道
    Go语言的通道(1)-无缓冲通道
    Go语言协程
    设计一个好的通用组件
    Windows服务器【由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作】问题调查
    Go语言的并发
    SCSS 中的 &::before 和 &::after
  • 原文地址:https://www.cnblogs.com/ysit/p/13174253.html
Copyright © 2011-2022 走看看