如何使用Mybatis将sql类型映射到java类型

如何使用Mybatis将sql类型映射到java类型,java,sql,mybatis,Java,Sql,Mybatis,因此,我的java向SQL发送一个查询,该查询返回多个字段。一些字段将作为DOUBLE返回给java,因为它们在SQL中的类型是FLOAT/NUMERIC。这会导致精度问题。我希望mybatis将DOUBLE直接映射到BIGDECIMAL。怎样才能做到这一点 我的Mybatis结果图: <resultMap id="newResultMap" type="java.util.HashMap" autoMapping="true&qu

因此,我的java向SQL发送一个查询,该查询返回多个字段。一些字段将作为
DOUBLE
返回给java,因为它们在SQL中的类型是
FLOAT
/
NUMERIC
。这会导致精度问题。我希望mybatis将
DOUBLE
直接映射到
BIGDECIMAL
。怎样才能做到这一点

我的Mybatis结果图:

    <resultMap id="newResultMap" type="java.util.HashMap" autoMapping="true">
        <association property="someObject" resultMap="someObjectMap" />
    </resultMap>


请解释如何重现“精度问题”。我阅读并测试了您的,但无法再现问题,即,如果列为
双精度
,且其值为
-42295.8451869851
,查询返回的HashMap包含
java.lang.Double
of
-42295.8451869851
。我是否正确理解了
精度问题
指的是
数值
值的有效位数超过16位的情况(java中
Double
的最大有效位数)?会在resultMap帮助中
jdbcType=BIGDECIMAL
?这将强制使用
新的BigDecimal(值)
创建结果。或者可以使用实际对象,而不是BigDecimal类型的映射。如果这不起作用,您需要编写自己的自定义处理程序。