oracle JDBCType和javaType @requestbody使用实体类接收不到传值
由于没有使用过oracle数据库 增删改查
在mapper.xml 层中 对表数据进行增加
<insert id="addJz" parameterType="java.util.Map"> insert into JZ( DWBH, CALIBRATIONTIME, HCCONCENTRATION, COCONCENTRATION, CO2CONCENTRATION, NOCONCENTRATION, NORELATIVEERROR, HCRELATIVEERROR, CORELATIVEERROR, CO2RELATIVEERROR, CALIBRATIONTYPE )values( #{DWBH,jdbcType=VARCHAR},to_date(#{CalibrationTime,jdbcType=DATE},'yyyy-mm-dd hh24:mi:ss'), #{HCConcentration,jdbcType=NUMERIC},#{COConcentration,jdbcType=NUMERIC}, #{CO2Concentration,jdbcType=NUMERIC},#{NOConcentration,jdbcType=NUMERIC}, #{NORelativeError,jdbcType=NUMERIC},#{HCRelativeError,jdbcType=NUMERIC}, #{CORelativeError,jdbcType=NUMERIC},#{CO2RelativeError,jdbcType=NUMERIC}, #{CalibrationType,jdbcType=INTEGER}) </insert>
没有加上 jdbcType 定义类型,在使用postman插入数据的时候 所有的字段value值都是不能为空的,一直没有找到原因
百度后了解了 mybatise 在插入的数据有空值试,可能为空的字段都要设置jdbcType
javaType="double" jdbcType="NUMERIC
javaType="string" jdbcType="VARCHAR"
javaType="java.sql.Date" jdbcType="DATE"
javaType="int" jdbcType="INTEGER"
javaType="double" jdbcType="DOUBLE"
javaType="long" jdbcType="INTEGER"
javaType="string" jdbcType="CHAR"
javaType="[B" jdbcType="BLOB"
javaType="string" jdbcType="CLOB"
javaType="float" jdbcType="FLOAT"
javaType="java.sql.Timestamp" jdbcType="TIMESTAMP"
controller 层 使用 requestbody 实体类接收数据时 若实体类均为大写 postman传值时key 为大写 有可能接收不到传过来的数据可以加上
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<!-- controller层实体类接收大写 用户注册 -->
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
</bean>
</mvc:message-converters>
</mvc:annotation-driven>