zoukankan      html  css  js  c++  java
  • 保存报错:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'Infinity' in 'field list'

    18:04:27.576 [nioEventLoopGroup-3-2] WARN io.netty.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'Infinity' in 'field list'
            at sun.reflect.GeneratedConstructorAccessor9.newInstance(Unknown Source)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
            at com.mysql.jdbc.Util.getInstance(Util.java:408)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869)
            at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)
            at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675)
            at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
            at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1912)
            at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2133)
            at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2067)
            at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5175)
            at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2052)
            at com.iotest.nettyservice.service.NettyDiscardHandler2.channelRead(NettyDiscardHandler2.java:223)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
            at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
            at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:326)
            at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:313)
            at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:427)
            at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:281)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
            at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
            at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
            at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
            at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931)
            at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
            at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:700)
            at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:635)
            at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:552)
            at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:514)
            at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050)
            at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
            at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
            at java.lang.Thread.run(Thread.java:748)

    问题描述:我在研究netty时,对传入的字节数组进行接收、转换、处理后,存入mysql,在保存时报的错。奇怪的是,有时报错,有时不报错。

    分析过程:首先查看百度上各种解释,无非2种情况,1)sql写错,如缺少字段,使用系统自带占用词  2)sql传入类型和数据库类型不匹配

    但是不能解决问题,后来这个问题主要是通过Infinity这个词来分析解决的,该词代表无限,后来发现我要存的是mysql的float类型,但是我接到的是

    byte[] Flow_Total2 = {(byte)0x00,(byte)0x00,(byte)0x80,(byte)0x7F};
    这个4字节十六进制数组经过转换后的float值为Infinity,然后未经处理传入到sql所以存不进去。
    所以需要加入一个判断,填加后不再报错
    1 if(f2==Float.POSITIVE_INFINITY){
    2     f2=0.00f;
    3 }
  • 相关阅读:
    父子进程 signal 出现 Interrupted system call 问题
    一个测试文章
    《淘宝客户端 for Android》项目实战 html webkit android css3
    Django 中的 ForeignKey ContentType GenericForeignKey 对应的数据库结构
    coreseek 出现段错误和Unigram dictionary load Error 新情况(Gentoo)
    一个 PAM dbus 例子
    漫画统计学 T分数
    解决 paramiko 安装问题 Unable to find vcvarsall.bat
    20141202
    js
  • 原文地址:https://www.cnblogs.com/Python5421/p/12196504.html
Copyright © 2011-2022 走看看