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

公司做企业网站的必要性网站优化推广是什么

公司做企业网站的必要性,网站优化推广是什么,网站域名的选择方法,营销推广ppt在 MyBatis 中遇到 “操作数类型冲突: varbinary 与 float 不兼容” 错误,通常是因为当字段值为 null 时,MyBatis 无法正确推断其 JDBC 类型,导致向数据库传递 null 值时类型不匹配。以下是原因分析和解决方案: 问题原因 未指定 j…

在 MyBatis 中遇到 “操作数类型冲突: varbinary 与 float 不兼容” 错误,通常是因为当字段值为 null 时,MyBatis 无法正确推断其 JDBC 类型,导致向数据库传递 null 值时类型不匹配。以下是原因分析和解决方案:


问题原因

  1. 未指定 jdbcType
    当字段值为 null 时,MyBatis 默认尝试推断 JDBC 类型,但可能错误推断为 OTHER 或 VARBINARY,而数据库期望的是 FLOAT/DOUBLE,导致类型冲突。

  2. 数据库字段类型不兼容
    数据库表字段 Mi_Price 的类型如果是 FLOAT 或 DOUBLE,但 MyBatis 未显式告知 JDBC 类型,可能传递了错误的类型(如 VARBINARY)。


解决方案

1. 在 SQL 映射中显式指定 jdbcType

为 price 参数添加 jdbcType 属性,明确告知 MyBatis 应使用的 JDBC 类型:

xml

复制

下载

运行

<insert id="insertMaterialInfo">INSERT INTO MaterialInfo(Mi_ID, Mi_Name, Mi_Spec, Mi_Unit, Mi_Price, Mi_Valid)VALUES (#{materialNo},#{materialName},#{materialSpec},#{materialUnit},#{price, jdbcType=DOUBLE},  <!-- 指定 jdbcType -->#{valid})
</insert>
2. 全局配置 jdbcTypeForNull

在 MyBatis 配置文件(如 mybatis-config.xml)中设置 jdbcTypeForNull,将所有 null 值的默认 JDBC 类型设为 NULL

xml

复制

下载

运行

<configuration><settings><setting name="jdbcTypeForNull" value="NULL"/></settings>
</configuration>

验证数据库表结构

确保数据库表字段 Mi_Price 的类型和是否允许 NULL 值与业务逻辑一致:

sql

复制

下载

-- 检查字段类型和是否允许 NULL
DESC MaterialInfo;-- 如果字段不允许 NULL,但业务需要允许 NULL,需修改表结构:
ALTER TABLE MaterialInfo MODIFY Mi_Price DOUBLE NULL;

深入分析

步骤说明
1. MyBatis 推断类型失败当 price 为 null 时,MyBatis 无法通过 Java 类型推断 JDBC 类型。
2. 默认行为未指定 jdbcType 时,MyBatis 可能将 null 映射为 VARBINARY
3. 数据库类型不匹配数据库期望 FLOAT/DOUBLE,但收到 VARBINARY,导致类型冲突。

其他注意事项

  • 动态 SQL 处理
    如果业务允许 price 为 null 时不插入该字段,可使用 <if> 标签动态跳过:

xml

复制

下载

运行

<insert id="insertMaterialInfo">INSERT INTO MaterialInfo(Mi_ID, Mi_Name, Mi_Spec, Mi_Unit,<if test="price != null">Mi_Price,</if>Mi_Valid)VALUES (#{materialNo}, #{materialName}, #{materialSpec}, #{materialUnit},<if test="price != null">#{price},</if>#{valid})
</insert>
  • TypeHandler 自定义
    如需将 null 映射为默认值(如 0.0),可自定义 TypeHandler(但需谨慎使用,可能覆盖业务逻辑)。


总结

通过显式指定 jdbcType=DOUBLE 或全局配置 jdbcTypeForNull,确保 MyBatis 将 null 值以正确的 JDBC 类型传递到数据库,即可解决类型冲突问题。同时需检查数据库表字段设计是否符合业务需求。

http://www.dtcms.com/wzjs/173005.html

相关文章:

  • 网站开发公司可行报告免费网站流量
  • 做海报图片的网站产品推广的渠道
  • 龙岗网站制作重庆seo教程博客
  • 公司注册地址和办公地址不一样百度seo排名优化
  • qq音乐如何做mp3下载网站推广哪个app最挣钱
  • 网站建设与网页设计专业的友妙招链接怎么弄
  • 有没有帮忙做问卷调查的网站福州seo关键字推广
  • 做网站主要栏目内经典广告推广词
  • 哈尔滨如何快速建站谷歌关键词工具
  • 吉首网站制作广告公司网站
  • 如何用织梦cms做网站个人免费开发网站
  • 做微商网站发帖免费教程一个自己的网站
  • wordpress 单页面翻页专业的seo排名优化
  • 郑州哪里可以做网站网站技术外包公司
  • 泰州网站建设济南网络营销外包
  • 北京专业做网站互联网营销外包公司
  • 网站对比专业全网优化
  • 自己做网站吗西安seo培训机构
  • 360推广和百度推广哪个好北京自动seo
  • 望城区网站建设发外链平台
  • 长治做网站多少钱郑州seo外包服务
  • 如何做彩票网站的源码seo好学吗入门怎么学
  • 茶社网站开发与设计的开题报告满十八岁可以申请abc认证吗
  • 建个私人网站怎么做企业网站建设需要多少钱
  • 网站难做seo排名影响因素主要有
  • 网站建设培训中心广告公司起名大全最新
  • 杭州网站的制作seo快速排名案例
  • 旅游网站后台html模板免费网站推广群发软件
  • 顺德公益网站制作惠州seo网站管理
  • 网站后期的维护semester怎么读