当前位置: 首页 > news >正文

有什么网站建设软件有哪些写文的免费软件

有什么网站建设软件有哪些,写文的免费软件,wordpress 转发 插件,外贸公司网站制作公司需求 需要实现将Excel中的数字类型的单元格像数据库中字符串类型的字段中推送 问题原因 Seatunnel在读取字段类型的时候都是使用强转的形式去获取数据的 假如说数据类型不一样的话直接强转就会报错 修改位置 org/apache/seatunnel/api/table/type/SeaTunnelRow.java org…

需求

需要实现将Excel中的数字类型的单元格像数据库中字符串类型的字段中推送

问题原因

Seatunnel在读取字段类型的时候都是使用强转的形式去获取数据的
假如说数据类型不一样的话直接强转就会报错

修改位置

org/apache/seatunnel/api/table/type/SeaTunnelRow.java
在这里插入图片描述

org/apache/seatunnel/connectors/seatunnel/jdbc/internal/converter/AbstractJdbcRowConverter.java
在这里插入图片描述

修改的代码

    @Overridepublic PreparedStatement toExternal(TableSchema tableSchema, SeaTunnelRow row, PreparedStatement statement)throws SQLException {SeaTunnelRowType rowType = tableSchema.toPhysicalRowDataType();for (int fieldIndex = 0; fieldIndex < rowType.getTotalFields(); fieldIndex++) {SeaTunnelDataType<?> seaTunnelDataType = rowType.getFieldType(fieldIndex);int statementIndex = fieldIndex + 1;Object fieldValue = row.getField(fieldIndex);if (fieldValue == null) {statement.setObject(statementIndex, null);continue;}switch (seaTunnelDataType.getSqlType()) {case STRING://TODO wxt//regiontry{//直接类型强转会出问题  比如double类型就不能转成String// 可以使用下面的toString解决这种类型问题statement.setString(statementIndex, (String) row.getField(fieldIndex));}catch (Exception e){statement.setString(statementIndex,  row.getField(fieldIndex).toString());}//endregionbreak;case BOOLEAN:statement.setBoolean(statementIndex, (Boolean) row.getField(fieldIndex));break;case TINYINT:statement.setByte(statementIndex, (Byte) row.getField(fieldIndex));break;case SMALLINT:statement.setShort(statementIndex, (Short) row.getField(fieldIndex));break;case INT:statement.setInt(statementIndex, (Integer) row.getField(fieldIndex));break;case BIGINT:statement.setLong(statementIndex, (Long) row.getField(fieldIndex));break;case FLOAT:statement.setFloat(statementIndex, (Float) row.getField(fieldIndex));break;case DOUBLE:statement.setDouble(statementIndex, (Double) row.getField(fieldIndex));break;case DECIMAL:statement.setBigDecimal(statementIndex, (BigDecimal) row.getField(fieldIndex));break;case DATE:LocalDate localDate = (LocalDate) row.getField(fieldIndex);statement.setDate(statementIndex, java.sql.Date.valueOf(localDate));break;case TIME:writeTime(statement, statementIndex, (LocalTime) row.getField(fieldIndex));break;case TIMESTAMP:LocalDateTime localDateTime = (LocalDateTime) row.getField(fieldIndex);statement.setTimestamp(statementIndex, java.sql.Timestamp.valueOf(localDateTime));break;case BYTES:statement.setBytes(statementIndex, (byte[]) row.getField(fieldIndex));break;case NULL:statement.setNull(statementIndex, java.sql.Types.NULL);break;case ARRAY:Object[] array = (Object[]) row.getField(fieldIndex);if (array == null) {statement.setNull(statementIndex, java.sql.Types.ARRAY);break;}statement.setObject(statementIndex, array);break;case MAP:case ROW:default:throw new JdbcConnectorException(CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,"Unexpected value: " + seaTunnelDataType);}}return statement;}
    private int getBytesForValue(Object v, SeaTunnelDataType<?> dataType) {if (v == null) {return 0;}SqlType sqlType = dataType.getSqlType();switch (sqlType) {case STRING://region//TODO 避免强转出现问题try{return ((String) v).length();}catch (Exception e){return ( v.toString()).length();}//endregioncase BOOLEAN:case TINYINT:return 1;case SMALLINT:return 2;case INT:case FLOAT:return 4;case BIGINT:case DOUBLE:return 8;case DECIMAL:return 36;case NULL:return 0;case BYTES:return ((byte[]) v).length;case DATE:return 24;case TIME:return 12;case TIMESTAMP:return 48;case ARRAY:return getBytesForArray(v, ((ArrayType) dataType).getElementType());case MAP:int size = 0;MapType<?, ?> mapType = ((MapType<?, ?>) dataType);for (Map.Entry<?, ?> entry : ((Map<?, ?>) v).entrySet()) {size +=getBytesForValue(entry.getKey(), mapType.getKeyType())+ getBytesForValue(entry.getValue(), mapType.getValueType());}return size;case ROW:int rowSize = 0;SeaTunnelRowType rowType = ((SeaTunnelRowType) dataType);SeaTunnelDataType<?>[] types = rowType.getFieldTypes();SeaTunnelRow row = (SeaTunnelRow) v;for (int i = 0; i < types.length; i++) {rowSize += getBytesForValue(row.fields[i], types[i]);}return rowSize;default:throw new UnsupportedOperationException("Unsupported type: " + sqlType);}}

如何源码打包

用maven插件打包就行
打完包的话东西在dist下面 如截图所示
在这里插入图片描述

http://www.hengruixuexiao.com/news/5464.html

相关文章:

  • 做网站北京公司个人建网站需要多少钱
  • html5移动网站开发实践最新百度快速收录技术
  • 旅游订票网站开发淄博新闻头条最新消息
  • 山东建设工程信息网站百度seo推广优化
  • 响应式网站建站汕头网站建设方案优化
  • 百度收录查询工具官网谈谈你对seo概念的理解
  • 室内设计知名网站关键词排名优化易下拉霸屏
  • 做网站图片用什么格式最好网络营销企业网站推广
  • 电脑有固定IP 做网站百度应用中心
  • 南山建设网站百度推广登陆
  • 怎么用php做网站方案网站开发培训
  • b2b性质网站怎么进行推广怎么把网站排名排上去
  • 深圳市住建局造价站成品短视频app源码的优点
  • 上海中高端网站建设如何自己制作网页
  • wordpress 获取id宁波网站推广优化外包
  • 网站做百度推广划算吗广告类的网站
  • 最便宜网站建设在线推广企业网站的方法有哪些
  • 视频网站开发意义怎么样引流加微信
  • 网站等保如何做搜索引擎优化培训班
  • 无锡市网站设计杭州百度推广
  • 做网站首页的图片怎么缩小手机百度app下载安装
  • 合肥网站优化seo谷歌浏览器网页版进入
  • 济宁网站制作制作网页教程
  • 现在石家庄做网站的公司有哪几家正规软件开发培训学校
  • 宁波哪家公司做网站好新闻近期大事件
  • 九江建企业网站整站优化是什么意思
  • 网站内容建设流程沈阳seo关键词排名
  • 酷站欣赏站长之家网站查询
  • 照片做视频的软件 模板下载网站好百度竞价seo排名
  • 怎么做招聘网站的数据分析谷歌seo