MySQL Double列NULL值在Java及wpDataTables中返回0.0问题排查
问题原因与解决方案
表创建语句和查询语句均无问题,该现象是应用层的取值/处理逻辑导致的,分两种场景说明:
一、Java代码场景
ResultSet.getDouble()方法本身存在特性:当数据库字段值为NULL时,该方法会返回基本数据类型double的默认值0.0——因为基本数据类型无法存储NULL。
解决方法有两种:
- 先用
getDouble()取值,再通过wasNull()判断是否为数据库NULL:
while (rs.next()) { double test1 = rs.getDouble("Test1"); if (rs.wasNull()) { System.out.println("NULL"); } else { System.out.println(test1); } }
- 使用
getObject()获取包装类型Double,直接接收NULL:
while (rs.next()) { Double test1 = (Double) rs.getObject("Test1"); System.out.println(test1); // 数据库为NULL时,输出null }
二、WordPress wpDataTables插件场景
wpDataTables默认会将数值型字段的NULL值自动替换为0.0,需要手动调整插件设置:
- 进入wpDataTables的表格编辑页面
- 找到对应
Test1列的设置选项 - 开启“保留NULL值”或类似选项(具体名称可能随插件版本略有不同),设置为显示
NULL或空文本,而非0.0
内容的提问来源于stack exchange,提问作者user3689706
相关产品推荐
相关产品推荐

